; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/none @ 0x41a0d0 */ | #include | ; (fcn) sym.void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_long_long__double__bsl::basic_string_char__std::__1::char_traits_char___bsl::allocator_char_____BloombergLP::bdlt::DatetimeTz__bsl::vector_char__bsl::allocator_char_______::doApply_BloombergLP::bdlb::Variant_CopyAssignVisitor__BloombergLP::bdlb::Variant_CopyAssignVisitor__int__const () | int64_t void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_long_long_double_bsl::basic_string_char_std::_1::char_traits_char_bsl::allocator_char_BloombergLP::bdlt::DatetimeTz_bsl::vector_char_bsl::allocator_char_::doApply_BloombergLP::bdlb::Variant_CopyAssignVisitor_BloombergLP::bdlb::Variant_CopyAssignVisitor_int_const (uint32_t arg3, int64_t arg2, int64_t arg1) { | char * var_8h; | char * var_10h; | int64_t var_18h; | char * var_20h; | int64_t var_28h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdlb::VariantImp, bsl::allocator >, BloombergLP::bdlt::DatetimeTz, bsl::vector > > >::doApply(BloombergLP::bdlb::Variant_CopyAssignVisitor&, int) const */ 0x0041a0d0 push r15 | 0x0041a0d2 push r14 | 0x0041a0d4 push rbx | 0x0041a0d5 sub rsp, 0x30 | 0x0041a0d9 dec edx | edx--; 0x0041a0db cmp edx, 4 | | if (edx > 4) { 0x0041a0de ja 0x41a15b | goto label_0; | } 0x0041a0e0 mov rbx, rdi | rbx = rdi; | /* switch table (5 cases) at 0x447e80 */ 0x0041a0e3 jmp qword [rdx*8 + 0x447e80] | 0x0041a0ea mov rax, qword [rbx] | rax = *(rbx); 0x0041a0ed mov rcx, qword [rsi] | rcx = *(rsi); 0x0041a0f0 mov qword [rcx], rax | *(rcx) = rax; 0x0041a0f3 jmp 0x41a15b | goto label_0; 0x0041a0f5 movsd xmm0, qword [rbx] | xmm0 = *(rbx); 0x0041a0f9 mov rax, qword [rsi] | rax = *(rsi); 0x0041a0fc movsd qword [rax], xmm0 | *(rax) = xmm0; 0x0041a100 jmp 0x41a15b | goto label_0; 0x0041a102 mov r14, qword [rsi] | r14 = *(rsi); 0x0041a105 cmp r14, rbx | | if (r14 == rbx) { 0x0041a108 je 0x41a15b | goto label_0; | } 0x0041a10a mov rdx, qword [rbx + 0x18] | rdx = *((rbx + 0x18)); 0x0041a10e cmp qword [rbx + 0x20], 0x17 | | if (*((rbx + 0x20)) != 0x17) { 0x0041a113 je 0x41a118 | 0x0041a115 mov rbx, qword [rbx] | rbx = *(rbx); | } 0x0041a118 mov r15, qword [r14 + 0x18] | r15 = *((r14 + 0x18)); 0x0041a11c mov qword [r14 + 0x18], 0 | *((r14 + 0x18)) = 0; 0x0041a124 mov ecx, 0x447e41 | 0x0041a129 mov rdi, r14 | 0x0041a12c mov rsi, rbx | 0x0041a12f call 0x423140 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r14, rbx, rdx, "string<...>::operator=(const string&...): string too long"); 0x0041a134 jmp 0x41a15b | goto label_0; 0x0041a136 mov r14, qword [rsi] | r14 = *(rsi); 0x0041a139 mov rax, qword [rbx] | rax = *(rbx); 0x0041a13c mov qword [r14], rax | *(r14) = rax; 0x0041a13f test rax, rax | 0x0041a142 jns 0x41a165 | | while (1) { 0x0041a144 mov qword [r14], rax | *(r14) = rax; 0x0041a147 mov eax, dword [rbx + 8] | eax = *((rbx + 8)); 0x0041a14a mov dword [r14 + 8], eax | *((r14 + 8)) = eax; 0x0041a14e jmp 0x41a15b | goto label_0; 0x0041a150 mov rdi, qword [rsi] | 0x0041a153 mov rsi, rbx | 0x0041a156 call 0x42ec70 | bsl::vector>::operator=(bsl::vector>const&) (*(rsi), rbx); | label_0: 0x0041a15b add rsp, 0x30 | 0x0041a15f pop rbx | 0x0041a160 pop r14 | 0x0041a162 pop r15 | 0x0041a164 ret | return rax; 0x0041a165 mov edi, 0x67aba0 | 0x0041a16a call 0x420d60 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x0041a16f mov qword [rsp + 8], 0x447d89 | *((rsp + 8)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x0041a178 mov qword [rsp + 0x10], 0x447dbf | *((rsp + 0x10)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x0041a181 mov dword [rsp + 0x18], 0x466 | *((rsp + 0x18)) = 0x466; 0x0041a189 mov qword [rsp + 0x20], 0x45f9b1 | *((rsp + 0x20)) = "R-INV"; 0x0041a192 mov dword [rsp + 0x28], eax | *((rsp + 0x28)) = eax; 0x0041a196 lea rdi, [rsp + 8] | rdi = rsp + 8; 0x0041a19b call 0x420d80 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x0041a1a0 mov rax, qword [r14] | rax = *(r14); 0x0041a1a3 mov rcx, rax | rcx = *(r14); 0x0041a1a6 shr rcx, 0x20 | rcx >>= 0x20; 0x0041a1aa shl rax, 0x25 | rax <<= 0x25; 0x0041a1ae movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x0041a1b8 add rdx, rax | rdx += rax; 0x0041a1bb imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x0041a1c2 movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x0041a1cc or rax, rdx | rax |= rdx; 0x0041a1cf or rax, rcx | rax |= rcx; 0x0041a1d2 jmp 0x41a144 | | } | }