; assembly | /* r2dec pseudo code output */ | /* baltzo_localtimeoffsetutil.t/none @ 0x412dc0 */ | #include | ; (fcn) method.BloombergLP::baltzo::TimeZoneUtil.initLocalTime_BloombergLP::baltzo::LocalDatetime__BloombergLP::baltzo::LocalTimeValidity::Enum__BloombergLP::bdlt::Datetime_const__char_const__BloombergLP::baltzo::DstPolicy::Enum_ () | int64_t method_BloombergLP::baltzo::TimeZoneUtil_initLocalTime_BloombergLP::baltzo::LocalDatetime_BloombergLP::baltzo::LocalTimeValidity::Enum_BloombergLP::bdlt::Datetime_const_char_const_BloombergLP::baltzo::DstPolicy::Enum_ (int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_4h; | int64_t var_8h; | int64_t var_10h; | char * var_18h; | char * var_20h; | int64_t var_28h; | char * var_30h; | int64_t var_38h; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::baltzo::TimeZoneUtil::initLocalTime(BloombergLP::baltzo::LocalDatetime*, BloombergLP::baltzo::LocalTimeValidity::Enum*, BloombergLP::bdlt::Datetime const&, char const*, BloombergLP::baltzo::DstPolicy::Enum) */ 0x00412dc0 push rbp | 0x00412dc1 push r15 | 0x00412dc3 push r14 | 0x00412dc5 push r12 | 0x00412dc7 push rbx | 0x00412dc8 sub rsp, 0x40 | 0x00412dcc mov ebp, r8d | 0x00412dcf mov r15, rcx | r15 = rcx; 0x00412dd2 mov rbx, rdx | rbx = rdx; 0x00412dd5 mov r14, rsi | r14 = rsi; 0x00412dd8 mov r12, rdi | r12 = rdi; 0x00412ddb movabs rax, 0x800000141dd76000 | rax = 0x800000141dd76000; 0x00412de5 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x00412dea mov dword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x00412df2 call 0x40f1e0 | rax = BloombergLP::baltzo::DefaultZoneinfoCache::instance() (); 0x00412df7 lea rdi, [rsp + 8] | 0x00412dfc lea rsi, [rsp + 4] | 0x00412e01 mov rdx, rbx | 0x00412e04 mov rcx, r15 | 0x00412e07 mov r8d, ebp | 0x00412e0a mov r9, rax | 0x00412e0d call 0x413740 | eax = BloombergLP::baltzo::TimeZoneUtilImp::initLocalTime(BloombergLP::bdlt::DatetimeTz*,BloombergLP::baltzo::LocalTimeValidity::Enum*,BloombergLP::bdlt::Datetimeconst&,char const*,BloombergLP::baltzo::DstPolicy::Enum,BloombergLP::baltzo::ZoneinfoCache*) (rsp + 8, rsp + 4, rbx, r15, ebp, rax); 0x00412e12 mov ebp, eax | 0x00412e14 test eax, eax | | if (eax != 0) { 0x00412e16 jne 0x412e45 | goto label_0; | } 0x00412e18 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x00412e1d mov qword [r12], rax | *(r12) = rax; 0x00412e21 test rax, rax | 0x00412e24 jns 0x412e54 | | while (1) { 0x00412e26 mov qword [r12], rax | *(r12) = rax; 0x00412e2a mov eax, dword [rsp + 0x10] | eax = *((rsp + 0x10)); 0x00412e2e mov dword [r12 + 8], eax | *((r12 + 8)) = eax; 0x00412e33 mov rdi, r12 | 0x00412e36 mov rsi, r15 | 0x00412e39 call 0x4135e0 | BloombergLP::baltzo::LocalDatetime::setTimeZoneId(char const*) (r12, r15); 0x00412e3e mov eax, dword [rsp + 4] | eax = *((rsp + 4)); 0x00412e42 mov dword [r14], eax | *(r14) = eax; | label_0: 0x00412e45 mov eax, ebp | eax = ebp; 0x00412e47 add rsp, 0x40 | 0x00412e4b pop rbx | 0x00412e4c pop r12 | 0x00412e4e pop r14 | 0x00412e50 pop r15 | 0x00412e52 pop rbp | 0x00412e53 ret | return rax; 0x00412e54 mov edi, 0x695844 | 0x00412e59 call 0x432b20 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x00412e5e mov qword [rsp + 0x18], 0x45a109 | *((rsp + 0x18)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x00412e67 mov qword [rsp + 0x20], 0x45a13f | *((rsp + 0x20)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x00412e70 mov dword [rsp + 0x28], 0x466 | *((rsp + 0x28)) = 0x466; 0x00412e78 mov qword [rsp + 0x30], 0x475a8a | *((rsp + 0x30)) = "R-INV"; 0x00412e81 mov dword [rsp + 0x38], eax | *((rsp + 0x38)) = eax; 0x00412e85 lea rdi, [rsp + 0x18] | rdi = rsp + 0x18; 0x00412e8a call 0x432b40 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x00412e8f mov rax, qword [r12] | rax = *(r12); 0x00412e93 mov rcx, rax | rcx = *(r12); 0x00412e96 shr rcx, 0x20 | rcx >>= 0x20; 0x00412e9a shl rax, 0x25 | rax <<= 0x25; 0x00412e9e movabs rdx, 0x7fffffe000000000 | rdx = 0x7fffffe000000000; 0x00412ea8 add rdx, rax | rdx += rax; 0x00412eab imul rcx, rcx, 0x3e8 | rcx *= 0x3e8; 0x00412eb2 movabs rax, 0x8000000000000000 | rax = 0x8000000000000000; 0x00412ebc or rax, rdx | rax |= rdx; 0x00412ebf or rax, rcx | rax |= rcx; 0x00412ec2 jmp 0x412e26 | | } | }