; assembly | /* r2dec pseudo code output */ | /* balxml_formatter.t/none @ 0x4242f0 */ | #include | ; (fcn) method.std::__1::basic_ostream_char__std::__1::char_traits_char____BloombergLP::balxml::TypesPrintUtil::print_BloombergLP::bdlt.DatetimeTz__std::__1::basic_ostream_char__std::__1::char_traits_char_____BloombergLP::bdlt::DatetimeTz_const__int__Bloomber () | int64_t method_std::_1::basic_ostream_char_std::_1::char_traits_char_BloombergLP::balxml::TypesPrintUtil::print_BloombergLP::bdlt_DatetimeTz_std::_1::basic_ostream_char_std::_1::char_traits_char_BloombergLP::bdlt::DatetimeTz_const_int_Bloomber (int64_t arg4, uint32_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* std::__1::basic_ostream >& BloombergLP::balxml::TypesPrintUtil::print(std::__1::basic_ostream >&, BloombergLP::bdlt::DatetimeTz const&, int, BloombergLP::balxml::EncoderOptions const*) */ 0x004242f0 push r15 | 0x004242f2 push r14 | 0x004242f4 push r12 | 0x004242f6 push rbx | 0x004242f7 sub rsp, 0x38 | 0x004242fb mov rbx, rdi | rbx = rdi; 0x004242fe test edx, 0x100000 | | if ((edx & 0x100000) == 0) { 0x00424304 jne 0x424315 | 0x00424306 and edx, 7 | edx &= 7; 0x00424309 cmp edx, 4 | | if (edx > 4) { 0x0042430c ja 0x424315 | goto label_0; | } | /* switch table (5 cases) at 0x493ee0 */ 0x0042430e jmp qword [rdx*8 + 0x493ee0] | | } | label_0: 0x00424315 mov rax, qword [rbx] | rax = *(rbx); 0x00424318 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0042431c lea rdi, [rbx + rax] | rdi = rbx + rax; 0x00424320 mov esi, dword [rbx + rax + 0x20] | esi = *((rbx + rax + 0x20)); 0x00424324 or esi, 4 | esi |= 4; 0x00424327 call 0x403c40 | std::_1::ios_base::clear(unsignedint) (); | do { 0x0042432c mov rax, rbx | rax = rbx; 0x0042432f add rsp, 0x38 | 0x00424333 pop rbx | 0x00424334 pop r12 | 0x00424336 pop r14 | 0x00424338 pop r15 | 0x0042433a ret | return rax; 0x0042433b mov r15, rcx | r15 = rcx; 0x0042433e mov r14, rsi | r14 = rsi; 0x00424341 mov dword [rsp + 8], 3 | *((rsp + 8)) = 3; 0x00424349 test rcx, rcx | | if (rcx != 0) { 0x0042434c je 0x42436c | 0x0042434e mov esi, dword [r15 + 0xa0] | 0x00424355 lea rdi, [rsp + 8] | 0x0042435a call 0x432e90 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp + 8, *((r15 + 0xa0))); 0x0042435f cmp byte [r15 + 0xc3], 0 | 0x00424367 setne al | al = (*((r15 + 0xc3)) != 0) ? 1 : 0; 0x0042436a jmp 0x42437d | | } else { 0x0042436c lea rdi, [rsp + 8] | 0x00424371 mov esi, 6 | 0x00424376 call 0x432e90 | eax = BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp + 8, 6); 0x0042437b xor eax, eax | eax = 0; | } 0x0042437d movzx esi, al | esi = (int32_t) al; 0x00424380 lea r15, [rsp + 8] | r15 = rsp + 8; 0x00424385 mov rdi, r15 | 0x00424388 call 0x432eb0 | BloombergLP::bdlt::Iso8601UtilConfiguration::setUseZAbbreviationForUtc(bool) (r15, rsi); 0x0042438d lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x00424392 mov rdi, r12 | 0x00424395 mov esi, 0x20 | 0x0042439a mov rdx, r14 | 0x0042439d mov rcx, r15 | 0x004243a0 call 0x430eb0 | eax = BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x20, r14, r15); 0x004243a5 movsxd rdx, eax | rdx = (int64_t) eax; 0x004243a8 mov rdi, rbx | rdi = rbx; 0x004243ab mov rsi, r12 | rsi = r12; 0x004243ae call 0x403cb0 | rax = std::_1::basic_ostream>::write(char const*,long) (); 0x004243b3 mov rbx, rax | rbx = rax; 0x004243b6 jmp 0x42432c | | } while (1); | }