; assembly | /* r2dec pseudo code output */ | /* ball_userfieldvalue.t/none @ 0x423610 */ | #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_MoveAssignVisitor__BloombergLP::bdlb::Variant_MoveAssignVisitor__int_ () | 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_MoveAssignVisitor_BloombergLP::bdlb::Variant_MoveAssignVisitor_int_ (uint32_t arg3, int64_t arg2, int64_t arg1) { | char * var_8h; | int64_t var_10h; | char * var_18h; | int64_t var_20h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdlb::VariantImp, bsl::allocator >, BloombergLP::bdlt::DatetimeTz, bsl::vector > > >::doApply(BloombergLP::bdlb::Variant_MoveAssignVisitor&, int) */ 0x00423610 push r14 | 0x00423612 push rbx | 0x00423613 sub rsp, 0x28 | 0x00423617 dec edx | edx--; 0x00423619 cmp edx, 4 | | if (edx > 4) { 0x0042361c ja 0x423672 | goto label_0; | } 0x0042361e mov rbx, rdi | rbx = rdi; | /* switch table (5 cases) at 0x44efe0 */ 0x00423621 jmp qword [rdx*8 + 0x44efe0] | 0x00423628 mov rax, qword [rbx] | rax = *(rbx); 0x0042362b mov rcx, qword [rsi] | rcx = *(rsi); 0x0042362e mov qword [rcx], rax | *(rcx) = rax; 0x00423631 jmp 0x423672 | goto label_0; 0x00423633 movsd xmm0, qword [rbx] | xmm0 = *(rbx); 0x00423637 mov rax, qword [rsi] | rax = *(rsi); 0x0042363a movsd qword [rax], xmm0 | *(rax) = xmm0; 0x0042363e jmp 0x423672 | goto label_0; 0x00423640 mov rdi, qword [rsi] | 0x00423643 mov rsi, rbx | 0x00423646 call 0x42caf0 | bsl::basic_string,bsl::allocator>::operator=(bsl::basic_string,bsl::allocator>&&) (*(rsi), rbx); 0x0042364b jmp 0x423672 | goto label_0; 0x0042364d mov r14, qword [rsi] | r14 = *(rsi); 0x00423650 mov rax, qword [rbx] | rax = *(rbx); 0x00423653 mov qword [r14], rax | *(r14) = rax; 0x00423656 test rax, rax | 0x00423659 jns 0x42367a | | while (1) { 0x0042365b mov qword [r14], rax | *(r14) = rax; 0x0042365e mov eax, dword [rbx + 8] | eax = *((rbx + 8)); 0x00423661 mov dword [r14 + 8], eax | *((r14 + 8)) = eax; 0x00423665 jmp 0x423672 | goto label_0; 0x00423667 mov rdi, qword [rsi] | 0x0042366a mov rsi, rbx | 0x0042366d call 0x4370e0 | bsl::vector>::operator=(bsl::vector>&&) (*(rsi), rbx); | label_0: 0x00423672 add rsp, 0x28 | 0x00423676 pop rbx | 0x00423677 pop r14 | 0x00423679 ret | return rax; 0x0042367a mov edi, 0x682c00 | 0x0042367f call 0x429310 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x00423684 mov qword [rsp], 0x450d0d | *(rsp) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x0042368c mov qword [rsp + 8], 0x450d43 | *((rsp + 8)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x00423695 mov dword [rsp + 0x10], 0x466 | *((rsp + 0x10)) = 0x466; 0x0042369d mov qword [rsp + 0x18], 0x46923a | *((rsp + 0x18)) = "R-INV"; 0x004236a6 mov dword [rsp + 0x20], eax | *((rsp + 0x20)) = eax; 0x004236aa mov rdi, rsp | rdi = rsp; 0x004236ad call 0x429330 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x004236b2 mov rax, qword [r14] | rax = *(r14); 0x004236b5 mov rcx, rax | rcx = *(r14); 0x004236b8 shr rcx, 0x20 | rcx >>= 0x20; 0x004236bc shl rax, 0x25 | rax <<= 0x25; 0x004236c0 movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x004236ca add rdx, rax | rdx += rax; 0x004236cd imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x004236d4 movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x004236de or rax, rdx | rax |= rdx; 0x004236e1 or rax, rcx | rax |= rcx; 0x004236e4 jmp 0x42365b | | } | }