; assembly | /* r2dec pseudo code output */ | /* bdld_datum.t/none @ 0x45c6d0 */ | #include | ; (fcn) method.void_BloombergLP::bdld.hashAppend_MockAccumulatingHashingAlgorithm__MockAccumulatingHashingAlgorithm__BloombergLP::bdld::Datum_const_ () | int64_t method_void_BloombergLP::bdld_hashAppend_MockAccumulatingHashingAlgorithm_MockAccumulatingHashingAlgorithm_BloombergLP::bdld::Datum_const_ (int64_t arg_8h, int64_t arg_9h, int64_t arg_10h, int64_t arg_18h, char * arg_20h, char * arg_28h, int64_t arg_30h, char * arg_38h, int64_t arg_40h, int64_t arg_48h, int64_t arg_4ch, int64_t arg_50h, char * arg2, char * arg1) { | int64_t var_8h; | int64_t var_ch; | int64_t var_10h; | char * var_18h; | int64_t var_20h; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdld::hashAppend(MockAccumulatingHashingAlgorithm&, BloombergLP::bdld::Datum const&) */ | label_1: 0x0045c6d0 push rbp | 0x0045c6d1 push r15 | 0x0045c6d3 push r14 | 0x0045c6d5 push r13 | 0x0045c6d7 push r12 | 0x0045c6d9 push rbx | 0x0045c6da sub rsp, 0x58 | 0x0045c6de mov r13, rsi | r13 = rsi; 0x0045c6e1 movsx rax, word [rsi + 0xe] | rax = *((rsi + 0xe)); 0x0045c6e6 mov eax, eax | 0x0045c6e8 mov eax, dword [rax*4 + 0x4cca00] | eax = *((rax*4 + method.BloombergLP::bdld::Datum.type___const::convert)); 0x0045c6ef mov dword [rsp + 8], eax | *((rsp + 8)) = eax; 0x0045c6f3 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045c6f8 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045c6fd lea rbp, [rsp + 0xc] | rbp = rsp + 0xc; 0x0045c702 mov qword [rsp + 0x10], rbp | *((rsp + 0x10)) = rbp; 0x0045c707 lea rsi, [rsp + 0x20] | 0x0045c70c lea rdx, [rsp + 0x10] | 0x0045c711 mov qword [rsp + 0x18], rdi | *((rsp + 0x18)) = rdi; 0x0045c716 call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (rdi, rsp + 0x20, rsp + 0x10); 0x0045c71b movsx rax, word [r13 + 0xe] | rax = *((r13 + 0xe)); 0x0045c720 mov ecx, eax | ecx = eax; 0x0045c722 mov ecx, dword [rcx*4 + 0x4cca00] | ecx = *((rcx*4 + method.BloombergLP::bdld::Datum.type___const::convert)); 0x0045c729 dec ecx | ecx--; 0x0045c72b cmp ecx, 0xf | | if (ecx > 0xf) { 0x0045c72e ja 0x45ca4b | goto label_0; | } | /* switch table (16 cases) at 0x4c6038 */ 0x0045c734 jmp qword [rcx*8 + 0x4c6038] | 0x0045c73b mov eax, dword [r13 + 8] | eax = *((r13 + 8)); 0x0045c73f jmp 0x45c7c9 | goto label_11; 0x0045c744 movsd xmm0, qword [r13] | xmm0 = *(r13); 0x0045c74a xorpd xmm1, xmm1 | __asm ("xorpd xmm1, xmm1"); 0x0045c74e cmpeqsd xmm1, xmm0 | __asm ("cmpeqsd xmm1, xmm0"); 0x0045c753 andnpd xmm1, xmm0 | __asm ("andnpd xmm1, xmm0"); 0x0045c757 movlpd qword [rsp + 8], xmm1 | __asm ("movlpd qword [rsp + 8], xmm1"); 0x0045c75d jmp 0x45c960 | goto label_12; 0x0045c762 cmp eax, 0xe | | if (eax != 0xe) { 0x0045c765 je 0x45c99d | 0x0045c76b cmp eax, 5 | | if (eax == 5) { 0x0045c76e je 0x45c99d | goto label_13; | } 0x0045c774 xor ecx, ecx | ecx = 0; 0x0045c776 mov ebx, 0 | ebx = 0; 0x0045c77b cmp eax, 4 | | if (eax != 4) { 0x0045c77e jne 0x45c9a5 | goto label_14; | } 0x0045c784 movsx rbx, byte [r13] | rbx = *(r13); 0x0045c789 inc r13 | r13++; 0x0045c78c mov rcx, r13 | rcx = r13; 0x0045c78f jmp 0x45c9a5 | goto label_14; 0x0045c794 cmp dword [r13 + 8], 0 | 0x0045c799 setne byte [rsp + 8] | rsp + 8 = (*((r13 + 8)) != 0) ? 1 : 0; 0x0045c79e lea rax, [rsp + 8] | rax = rsp + 8; 0x0045c7a3 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045c7a8 lea rax, [rsp + 9] | rax = rsp + 9; 0x0045c7ad jmp 0x45c96f | goto label_15; 0x0045c7b2 cmp ax, 0x13 | | if (ax != 0x13) { 0x0045c7b6 jne 0x45c9b4 | goto label_16; | } 0x0045c7bc mov eax, dword [r13] | eax = *(r13); 0x0045c7c0 jmp 0x45c9ba | goto label_17; 0x0045c7c5 mov eax, dword [r13] | eax = *(r13); | label_11: 0x0045c7c9 mov dword [rsp + 8], eax | *((rsp + 8)) = eax; 0x0045c7cd lea rax, [rsp + 8] | rax = rsp + 8; 0x0045c7d2 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045c7d7 mov qword [rsp + 0x10], rbp | *((rsp + 0x10)) = rbp; 0x0045c7dc jmp 0x45c974 | goto label_7; 0x0045c7e1 movabs rbx, 0xffffffbfffffffff | rbx = 0xffffffbfffffffff; 0x0045c7eb movabs rbp, 0x4000000000 | 0x0045c7f5 mov rax, qword [r13] | rax = *(r13); 0x0045c7f9 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0045c7fe cmp rax, rbp | | if (rax < rbp) { 0x0045c801 jl 0x45cd3d | goto label_18; | } 0x0045c807 and rax, rbx | rax &= rbx; | label_8: 0x0045c80a mov rcx, rax | rcx = rax; 0x0045c80d or rcx, rbp | rcx |= rbp; 0x0045c810 mov qword [rsp + 0x48], rcx | *((rsp + 0x48)) = rcx; 0x0045c815 cmp rcx, rbp | | if (rcx < rbp) { 0x0045c818 jl 0x45cd4c | goto label_19; | } 0x0045c81e and rax, rbx | rax &= rbx; 0x0045c821 jmp 0x45c95b | goto label_9; 0x0045c826 mov rbx, qword [r13] | rbx = *(r13); 0x0045c82a test rbx, rbx | | if (rbx >= 0) { 0x0045c82d jns 0x45cd5b | goto label_20; | } | label_10: 0x0045c833 mov qword [rsp + 8], rbx | *((rsp + 8)) = rbx; 0x0045c838 jmp 0x45c960 | goto label_12; 0x0045c83d mov esi, dword [r13 + 8] | 0x0045c841 mov rax, qword [r13] | rax = *(r13); 0x0045c845 mov qword [rsp], rax | *(rsp) = rax; 0x0045c849 lea rdi, [rsp + 0x20] | 0x0045c84e xor edx, edx | 0x0045c850 xor ecx, ecx | 0x0045c852 xor r8d, r8d | 0x0045c855 xor r9d, r9d | 0x0045c858 call 0x46e700 | BloombergLP::bdlt::DatetimeInterval::setInterval(int,long long,long long,long long,long long,long long) (rsp + 0x20, *((r13 + 8)), 0, 0, 0, 0); 0x0045c85d mov eax, dword [rsp + 0x20] | eax = *((rsp + 0x20)); 0x0045c861 mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x0045c865 lea rbx, [rsp + 0x48] | rbx = rsp + 0x48; 0x0045c86a mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0045c86f lea rax, [rsp + 0x4c] | rax = rsp + 0x4c; 0x0045c874 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045c879 lea rsi, [rsp + 0x10] | 0x0045c87e lea rdx, [rsp + 8] | 0x0045c883 mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x0045c888 mov rdi, r14 | 0x0045c88b call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x10, rsp + 8); 0x0045c890 mov rax, qword [rsp + 0x28] | rax = *((rsp + 0x28)); 0x0045c895 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0045c89a mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0045c89f lea rax, [rsp + 0x50] | rax = rsp + 0x50; 0x0045c8a4 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045c8a9 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; 0x0045c8ae lea rdx, [rsp + 8] | rdx = rsp + 8; 0x0045c8b3 jmp 0x45ca43 | goto label_21; 0x0045c8b8 mov rax, qword [r13] | rax = *(r13); 0x0045c8bc jmp 0x45c95b | goto label_9; 0x0045c8c1 mov eax, dword [r13 + 8] | eax = *((r13 + 8)); 0x0045c8c5 mov dword [rsp + 8], eax | *((rsp + 8)) = eax; 0x0045c8c9 lea rbx, [rsp + 8] | rbx = rsp + 8; 0x0045c8ce mov qword [rsp + 0x20], rbx | *((rsp + 0x20)) = rbx; 0x0045c8d3 mov qword [rsp + 0x10], rbp | *((rsp + 0x10)) = rbp; 0x0045c8d8 lea rsi, [rsp + 0x20] | 0x0045c8dd lea rdx, [rsp + 0x10] | 0x0045c8e2 mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x0045c8e7 mov rdi, r14 | 0x0045c8ea call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045c8ef mov rax, qword [r13] | rax = *(r13); 0x0045c8f3 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045c8f8 mov qword [rsp + 0x20], rbx | *((rsp + 0x20)) = rbx; 0x0045c8fd jmp 0x45ca2f | goto label_22; 0x0045c902 cmp ax, 0xd | | if (ax != 0xd) { 0x0045c906 jne 0x45ca5a | goto label_23; | } 0x0045c90c mov rax, qword [r13] | rax = *(r13); 0x0045c910 test rax, rax | | if (rax == 0) { 0x0045c913 je 0x45cc87 | goto label_24; | } 0x0045c919 mov rax, qword [rax] | rax = *(rax); 0x0045c91c jmp 0x45cc89 | goto label_25; 0x0045c921 mov rax, qword [r13] | rax = *(r13); 0x0045c925 test rax, rax | | if (rax == 0) { 0x0045c928 je 0x45ca63 | goto label_26; | } 0x0045c92e mov rax, qword [rax] | rax = *(rax); 0x0045c931 jmp 0x45ca65 | goto label_27; 0x0045c936 cmp eax, 0x16 | | if (eax == 0x16) { 0x0045c939 je 0x45cc05 | goto label_28; | } 0x0045c93f cmp eax, 0x15 | | if (eax != 0x15) { 0x0045c942 jne 0x45cc0b | goto label_29; | } 0x0045c948 movsx rax, byte [r13 + 0xd] | rax = *((r13 + 0xd)); 0x0045c94d jmp 0x45cc0d | goto label_30; 0x0045c952 mov rdi, qword [r13] | 0x0045c956 call 0x46aae0 | rax = BloombergLP::bdldfp::DecimalImpUtil::normalize(BloombergLP::bdldfp::DecimalImpUtil_IntelDfp::ValueType64) (*(r13)); | label_9: 0x0045c95b mov qword [rsp + 8], rax | *((rsp + 8)) = rax; | label_12: 0x0045c960 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045c965 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045c96a lea rax, [rsp + 0x10] | rax = rsp + 0x10; | label_15: 0x0045c96f mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; | label_7: 0x0045c974 lea rsi, [rsp + 0x20] | rsi = rsp + 0x20; 0x0045c979 lea rdx, [rsp + 0x10] | rdx = rsp + 0x10; 0x0045c97e mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0045c983 jmp 0x45ca46 | goto label_31; 0x0045c988 mov rax, qword [r13] | rax = *(r13); 0x0045c98c test rax, rax | | if (rax == 0) { 0x0045c98f je 0x45cb50 | goto label_32; | } 0x0045c995 mov rax, qword [rax] | rax = *(rax); 0x0045c998 jmp 0x45cb52 | goto label_33; | } | label_13: 0x0045c99d mov rcx, qword [r13] | rcx = *(r13); 0x0045c9a1 movsxd rbx, dword [r13 + 8] | rbx = *((r13 + 8)); | label_14: 0x0045c9a5 mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0045c9aa add rcx, rbx | rcx += rbx; 0x0045c9ad mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0045c9b2 jmp 0x45ca09 | goto label_34; | label_16: 0x0045c9b4 mov rax, qword [r13] | rax = *(r13); 0x0045c9b8 mov eax, dword [rax] | eax = *(rax); | label_17: 0x0045c9ba mov dword [rsp + 8], eax | *((rsp + 8)) = eax; 0x0045c9be lea rax, [rsp + 8] | rax = rsp + 8; 0x0045c9c3 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045c9c8 mov qword [rsp + 0x10], rbp | *((rsp + 0x10)) = rbp; 0x0045c9cd lea rsi, [rsp + 0x20] | 0x0045c9d2 lea rdx, [rsp + 0x10] | 0x0045c9d7 mov rdi, qword [rsp + 0x18] | 0x0045c9dc call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045c9e1 xor ebx, ebx | ebx = 0; 0x0045c9e3 cmp word [r13 + 0xe], 0x13 | 0x0045c9e9 mov eax, 0 | eax = 0; | if (*((r13 + 0xe)) != 0x13) { 0x0045c9ee je 0x45c9fc | 0x0045c9f0 mov rax, qword [r13] | rax = *(r13); 0x0045c9f4 movsxd rbx, dword [rax + 4] | rbx = *((rax + 4)); 0x0045c9f8 add rax, 8 | rax += 8; | } 0x0045c9fc mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045ca01 add rax, rbx | rax += rbx; 0x0045ca04 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; | label_34: 0x0045ca09 lea rsi, [rsp + 0x20] | 0x0045ca0e lea rdx, [rsp + 0x10] | 0x0045ca13 mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x0045ca18 mov rdi, r14 | 0x0045ca1b call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045ca20 mov qword [rsp + 8], rbx | *((rsp + 8)) = rbx; 0x0045ca25 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045ca2a mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; | label_22: 0x0045ca2f lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045ca34 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045ca39 lea rsi, [rsp + 0x20] | 0x0045ca3e lea rdx, [rsp + 0x10] | | label_21: 0x0045ca43 mov rdi, r14 | | label_31: 0x0045ca46 call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (r14, rsp + 0x20, rsp + 0x10); | do { | label_0: 0x0045ca4b add rsp, 0x58 | 0x0045ca4f pop rbx | 0x0045ca50 pop r12 | 0x0045ca52 pop r13 | 0x0045ca54 pop r14 | 0x0045ca56 pop r15 | 0x0045ca58 pop rbp | 0x0045ca59 ret | return rax; | label_23: 0x0045ca5a movsxd rax, dword [r13 + 8] | rax = *((r13 + 8)); 0x0045ca5e jmp 0x45cc89 | goto label_25; | label_26: 0x0045ca63 xor eax, eax | eax = 0; | label_27: 0x0045ca65 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045ca6a lea rax, [rsp + 8] | rax = rsp + 8; 0x0045ca6f mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045ca74 lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045ca79 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045ca7e lea rsi, [rsp + 0x20] | 0x0045ca83 lea rdx, [rsp + 0x10] | 0x0045ca88 mov rdi, qword [rsp + 0x18] | 0x0045ca8d call 0x45d6d0 | rax = bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045ca92 mov r15, qword [r13] | r15 = *(r13); 0x0045ca96 test r15, r15 | 0x0045ca99 je 0x45ca4b | | } while (r15 == 0); 0x0045ca9b mov ebx, 0x28 | ebx = 0x28; 0x0045caa0 mov rbp, 0xffffffffffffffff | 0x0045caa7 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x0045caac nop dword [rax] | | label_2: 0x0045cab0 inc rbp | rbp++; 0x0045cab3 cmp rbp, qword [r15] | | if (rbp >= *(r15)) { 0x0045cab6 jae 0x45ca4b | goto label_0; | } 0x0045cab8 lea rax, [rbx + 0x20] | rax = rbx + 0x20; 0x0045cabc mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x0045cac1 mov rax, qword [r15 + rbx - 8] | rax = *((r15 + rbx - 8)); 0x0045cac6 mov rcx, qword [r15 + rbx] | rcx = *((r15 + rbx)); 0x0045caca add rcx, rax | rcx += rax; 0x0045cacd mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cad2 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0045cad7 mov rdi, r12 | 0x0045cada lea rsi, [rsp + 0x20] | 0x0045cadf mov r14, r13 | r14 = r13; 0x0045cae2 lea r13, [rsp + 0x10] | r13 = rsp + 0x10; 0x0045cae7 mov rdx, r13 | 0x0045caea call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (r12, rsp + 0x20, r13); 0x0045caef mov rax, qword [r15 + rbx] | rax = *((r15 + rbx)); 0x0045caf3 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045caf8 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045cafd mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cb02 lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045cb07 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045cb0c mov rdi, r12 | 0x0045cb0f lea rsi, [rsp + 0x20] | 0x0045cb14 mov rdx, r13 | 0x0045cb17 mov r13, r14 | r13 = r14; 0x0045cb1a call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (r12, rsp + 0x20, r13); 0x0045cb1f mov rax, qword [r14] | rax = *(r14); 0x0045cb22 lea rcx, [rax + 0x20] | rcx = rax + 0x20; 0x0045cb26 test rax, rax | | if (rax == 0) { 0x0045cb29 cmove rcx, rax | rcx = rax; | } 0x0045cb2d lea rsi, [rcx + rbx - 0x18] | 0x0045cb32 mov rdi, r12 | 0x0045cb35 call 0x45c6d0 | eax = voidBloombergLP::bdld::hashAppend(MockAccumulatingHashingAlgorithm&,BloombergLP::bdld::Datumconst&) (r12, rcx + rbx - 0x18, rdx, rcx, r8, r9); | goto label_1; 0x0045cb3a mov r15, qword [r14] | r15 = *(r14); 0x0045cb3d mov rbx, qword [rsp + 0x50] | rbx = *((rsp + 0x50)); 0x0045cb42 test r15, r15 | | if (r15 != 0) { 0x0045cb45 jne 0x45cab0 | goto label_2; | } 0x0045cb4b jmp 0x45ca4b | goto label_0; | label_32: 0x0045cb50 xor eax, eax | eax = 0; | label_33: 0x0045cb52 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045cb57 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045cb5c mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cb61 lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045cb66 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045cb6b lea rsi, [rsp + 0x20] | 0x0045cb70 lea rdx, [rsp + 0x10] | 0x0045cb75 mov rdi, qword [rsp + 0x18] | 0x0045cb7a call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045cb7f mov rax, qword [r13] | rax = *(r13); 0x0045cb83 test rax, rax | | if (rax == 0) { 0x0045cb86 je 0x45ca4b | goto label_0; | } 0x0045cb8c mov r15d, 0x10 | r15d = 0x10; 0x0045cb92 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x0045cb99 mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x0045cb9e nop | | label_3: 0x0045cba0 inc rbx | rbx++; 0x0045cba3 cmp rbx, qword [rax] | | if (rbx >= *(rax)) { 0x0045cba6 jae 0x45ca4b | goto label_0; | } 0x0045cbac lea r12, [r15 + 0x20] | r12 = r15 + 0x20; 0x0045cbb0 mov eax, dword [rax + r15 + 0x10] | eax = *((rax + r15 + 0x10)); 0x0045cbb5 mov dword [rsp + 8], eax | *((rsp + 8)) = eax; 0x0045cbb9 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045cbbe mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cbc3 mov qword [rsp + 0x10], rbp | *((rsp + 0x10)) = rbp; 0x0045cbc8 mov rdi, r14 | 0x0045cbcb lea rsi, [rsp + 0x20] | 0x0045cbd0 lea rdx, [rsp + 0x10] | 0x0045cbd5 call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (r14, rsp + 0x20, rsp + 0x10); 0x0045cbda mov rsi, qword [r13] | rsi = *(r13); 0x0045cbde lea rax, [rsi + 0x20] | rax = rsi + 0x20; 0x0045cbe2 test rsi, rsi | | if (rsi != 0) { 0x0045cbe5 cmovne rsi, rax | rsi = rax; | } 0x0045cbe9 add rsi, r15 | rsi += r15; 0x0045cbec mov rdi, r14 | 0x0045cbef call 0x45c6d0 | voidBloombergLP::bdld::hashAppend(MockAccumulatingHashingAlgorithm&,BloombergLP::bdld::Datumconst&) (r14, rsi, rdx, rcx, r8, r9); | goto label_1; 0x0045cbf4 mov rax, qword [r13] | rax = *(r13); 0x0045cbf8 mov r15, r12 | r15 = r12; 0x0045cbfb test rax, rax | | if (rax != 0) { 0x0045cbfe jne 0x45cba0 | goto label_3; | } 0x0045cc00 jmp 0x45ca4b | goto label_0; | label_28: 0x0045cc05 movsxd rax, dword [r13 + 8] | rax = *((r13 + 8)); 0x0045cc09 jmp 0x45cc0d | goto label_30; | label_29: 0x0045cc0b xor eax, eax | eax = 0; | label_30: 0x0045cc0d mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045cc12 lea rax, [rsp + 8] | rax = rsp + 8; 0x0045cc17 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cc1c lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045cc21 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045cc26 lea rsi, [rsp + 0x20] | 0x0045cc2b lea rdx, [rsp + 0x10] | 0x0045cc30 mov rdi, qword [rsp + 0x18] | 0x0045cc35 call 0x45d6d0 | bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045cc3a movsx eax, word [r13 + 0xe] | eax = *((r13 + 0xe)); 0x0045cc3f cmp eax, 0x16 | | if (eax == 0x16) { 0x0045cc42 je 0x45cc54 | goto label_35; | } 0x0045cc44 cmp eax, 0x15 | | if (eax != 0x15) { 0x0045cc47 jne 0x45ca4b | goto label_0; | } 0x0045cc4d movsx rcx, byte [r13 + 0xd] | rcx = *((r13 + 0xd)); 0x0045cc52 jmp 0x45cc58 | goto label_36; | label_35: 0x0045cc54 movsxd rcx, dword [r13 + 8] | rcx = *((r13 + 8)); | label_36: 0x0045cc58 test rcx, rcx | | if (rcx == 0) { 0x0045cc5b je 0x45ca4b | goto label_0; | } 0x0045cc61 cmp eax, 0x16 | | if (eax == 0x16) { 0x0045cc64 je 0x45cd23 | goto label_37; | } 0x0045cc6a xor ecx, ecx | ecx = 0; 0x0045cc6c mov edx, 0 | edx = 0; 0x0045cc71 cmp eax, 0x15 | | if (eax != 0x15) { 0x0045cc74 jne 0x45cd2b | goto label_38; | } 0x0045cc7a movsx rdx, byte [r13 + 0xd] | rdx = *((r13 + 0xd)); 0x0045cc7f mov rcx, r13 | rcx = r13; 0x0045cc82 jmp 0x45cd2b | goto label_38; | label_24: 0x0045cc87 xor eax, eax | eax = 0; | label_25: 0x0045cc89 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0045cc8e lea rax, [rsp + 8] | rax = rsp + 8; 0x0045cc93 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0045cc98 lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0045cc9d mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0045cca2 lea rsi, [rsp + 0x20] | 0x0045cca7 lea rdx, [rsp + 0x10] | 0x0045ccac mov rdi, qword [rsp + 0x18] | 0x0045ccb1 call 0x45d6d0 | rax = bsl::vector>&bsl::vector>,bsl::allocator>>>::emplace_back(unsignedchar const*&,unsignedchar const*&&) (*((rsp + 0x18)), rsp + 0x20, rsp + 0x10); 0x0045ccb6 xor ebp, ebp | ebp = 0; 0x0045ccb8 xor ebx, ebx | ebx = 0; 0x0045ccba jmp 0x45cce6 | goto label_39; | label_4: 0x0045ccbc xor ecx, ecx | ecx = 0; 0x0045ccbe cmp rbx, rcx | | if (rbx >= rcx) { 0x0045ccc1 jae 0x45ca4b | goto label_0; | } | label_5: 0x0045ccc7 lea rsi, [rax + 0x10] | rsi = rax + 0x10; 0x0045cccb test rax, rax | | if (rax == 0) { 0x0045ccce cmove rsi, rax | rsi = rax; | } | label_6: 0x0045ccd2 add rsi, rbp | rsi += rbp; 0x0045ccd5 mov rdi, qword [rsp + 0x18] | 0x0045ccda call 0x45c6d0 | voidBloombergLP::bdld::hashAppend(MockAccumulatingHashingAlgorithm&,BloombergLP::bdld::Datumconst&) (*((rsp + 0x18)), rsi, rdx, rcx, r8, r9); | goto label_1; 0x0045ccdf inc rbx | rbx++; 0x0045cce2 add rbp, 0x10 | rbp += 0x10; | label_39: 0x0045cce6 cmp word [r13 + 0xe], 0xd | | if (*((r13 + 0xe)) != 0xd) { 0x0045ccec jne 0x45cd10 | goto label_40; | } 0x0045ccee mov rax, qword [r13] | rax = *(r13); 0x0045ccf2 test rax, rax | | if (rax == 0) { 0x0045ccf5 je 0x45ccbc | goto label_4; | } 0x0045ccf7 mov rcx, qword [rax] | rcx = *(rax); 0x0045ccfa cmp rbx, rcx | | if (rbx < rcx) { 0x0045ccfd jb 0x45ccc7 | goto label_5; | } 0x0045ccff jmp 0x45ca4b | goto label_0; | label_40: 0x0045cd10 movsxd rax, dword [r13 + 8] | rax = *((r13 + 8)); 0x0045cd14 cmp rbx, rax | | if (rbx >= rax) { 0x0045cd17 jae 0x45ca4b | goto label_0; | } 0x0045cd1d mov rsi, qword [r13] | rsi = *(r13); 0x0045cd21 jmp 0x45ccd2 | goto label_6; | label_37: 0x0045cd23 mov rcx, qword [r13] | rcx = *(r13); 0x0045cd27 movsxd rdx, dword [r13 + 8] | rdx = *((r13 + 8)); | label_38: 0x0045cd2b mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0045cd30 add rdx, rcx | rdx += rcx; 0x0045cd33 mov qword [rsp + 0x10], rdx | *((rsp + 0x10)) = rdx; 0x0045cd38 jmp 0x45c974 | goto label_7; | label_18: 0x0045cd3d lea rdi, [rsp + 0x48] | 0x0045cd42 call 0x46fcf0 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (rsp + 0x48); 0x0045cd47 jmp 0x45c80a | goto label_8; | label_19: 0x0045cd4c lea rdi, [rsp + 0x48] | 0x0045cd51 call 0x46fcf0 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (rsp + 0x48); 0x0045cd56 jmp 0x45c95b | goto label_9; | label_20: 0x0045cd5b mov edi, 0x8ee75c | 0x0045cd60 call 0x476eb0 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x0045cd65 mov qword [rsp + 0x20], 0x4cc6a8 | *((rsp + 0x20)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x0045cd6e mov qword [rsp + 0x28], 0x4cc6de | *((rsp + 0x28)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x0045cd77 mov dword [rsp + 0x30], 0x466 | *((rsp + 0x30)) = 0x466; 0x0045cd7f mov qword [rsp + 0x38], 0x4e560a | *((rsp + 0x38)) = "R-INV"; 0x0045cd88 mov dword [rsp + 0x40], eax | *((rsp + 0x40)) = eax; 0x0045cd8c lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x0045cd91 call 0x476ed0 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x0045cd96 mov rax, rbx | rax = rbx; 0x0045cd99 shr rax, 0x20 | rax >>= 0x20; 0x0045cd9d shl rbx, 0x25 | rbx <<= 0x25; 0x0045cda1 movabs rcx, 0x7fffffe000000000 | rcx = 0x7fffffe000000000; 0x0045cdab add rcx, rbx | rcx += rbx; 0x0045cdae imul rax, rax, 0x3e8 | rax *= 0x3e8; 0x0045cdb5 movabs rbx, 0x8000000000000000 | rbx = 0x8000000000000000; 0x0045cdbf or rbx, rcx | rbx |= rcx; 0x0045cdc2 or rbx, rax | rbx |= rax; 0x0045cdc5 jmp 0x45c833 | goto label_10; | }