; assembly | /* r2dec pseudo code output */ | /* baltzo_localtimeoffsetutil.t/none @ 0x413c90 */ | #include | ; (fcn) method.BloombergLP::baltzo::TimeZoneUtilImp.loadLocalTimePeriodForUtc_BloombergLP::baltzo::LocalTimePeriod__char_const__BloombergLP::bdlt::Datetime_const__BloombergLP::baltzo::ZoneinfoCache_ () | uint64_t method_BloombergLP::baltzo::TimeZoneUtilImp_loadLocalTimePeriodForUtc_BloombergLP::baltzo::LocalTimePeriod_char_const_BloombergLP::bdlt::Datetime_const_BloombergLP::baltzo::ZoneinfoCache_ (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_4h; | int64_t var_8h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::baltzo::TimeZoneUtilImp::loadLocalTimePeriodForUtc(BloombergLP::baltzo::LocalTimePeriod*, char const*, BloombergLP::bdlt::Datetime const&, BloombergLP::baltzo::ZoneinfoCache*) */ 0x00413c90 push rbp | 0x00413c91 push r15 | 0x00413c93 push r14 | 0x00413c95 push r12 | 0x00413c97 push rbx | 0x00413c98 sub rsp, 0x10 | 0x00413c9c mov r15, rdx | r15 = rdx; 0x00413c9f mov r12, rsi | r12 = rsi; 0x00413ca2 mov r14, rdi | r14 = rdi; 0x00413ca5 mov dword [rsp + 4], 0 | *((rsp + 4)) = 0; 0x00413cad lea rsi, [rsp + 4] | 0x00413cb2 mov rdi, rcx | 0x00413cb5 mov rdx, r12 | 0x00413cb8 call 0x41a150 | rax = BloombergLP::baltzo::ZoneinfoCache::getZoneinfo(int*,char const*) (rcx, rsp + 4, r12); 0x00413cbd mov rbx, rax | rbx = rax; 0x00413cc0 test rax, rax | | if (rax == 0) { 0x00413cc3 jne 0x413cf3 | 0x00413cc5 mov eax, dword [rip + 0x28168d] | eax = BloombergLP::bsls::Log::s_severityThreshold; 0x00413ccb cmp eax, 3 | | if (eax < 3) { 0x00413cce jl 0x413cf3 | goto label_0; | } 0x00413cd0 mov r9d, dword [rsp + 4] | 0x00413cd5 mov esi, 0x45a739 | 0x00413cda mov ecx, 0x45a799 | 0x00413cdf mov edi, 3 | 0x00413ce4 mov edx, 0x34 | 0x00413ce9 mov r8, r12 | 0x00413cec xor eax, eax | eax = 0; 0x00413cee call 0x432780 | BloombergLP::bsls::Log::logFormattedMessage(BloombergLP::bsls::LogSeverity::Enum,char const*,int,char const*,_) (3, "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bal/baltzo/baltzo_timezoneutilimp.cpp", 0x34, "No data found for time zone '%s' (rc = %d).", r12, *((rsp + 4))); | } | label_0: 0x00413cf3 mov ebp, dword [rsp + 4] | ebp = *((rsp + 4)); 0x00413cf7 test ebp, ebp | | if (ebp == 0) { 0x00413cf9 jne 0x413d1b | 0x00413cfb mov rdi, rbx | 0x00413cfe mov rsi, r15 | 0x00413d01 call 0x415260 | rax = BloombergLP::baltzo::Zoneinfo::findTransitionForUtcTime(BloombergLP::bdlt::Datetimeconst&)const (rbx, r15); 0x00413d06 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x00413d0b lea rsi, [rsp + 8] | 0x00413d10 mov rdi, r14 | 0x00413d13 mov rdx, rbx | 0x00413d16 call 0x413d30 | BloombergLP::baltzo::TimeZoneUtilImp::createLocalTimePeriod(BloombergLP::baltzo::LocalTimePeriod*,BloombergLP::baltzo::ZoneinfoTransitionconst*const&,BloombergLP::baltzo::Zoneinfoconst&) (r14, rsp + 8, rbx, rcx); | } 0x00413d1b mov eax, ebp | eax = ebp; 0x00413d1d add rsp, 0x10 | 0x00413d21 pop rbx | 0x00413d22 pop r12 | 0x00413d24 pop r14 | 0x00413d26 pop r15 | 0x00413d28 pop rbp | 0x00413d29 ret | return rax; | }