; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x421600 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.DatetimeTz__int__int__int__int__BloombergLP::bdlt::DatetimeTz_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_DatetimeTz_int_int_int_int_BloombergLP::bdlt::DatetimeTz_const_BloombergLP::baljsn::EncoderOptions_const_bool_ (uint32_t arg_340h, int64_t arg6, 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_ch; | int64_t var_10h; | size_t var_18h; | uint32_t var_28h; | uint32_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_58h; | uint32_t var_60h; | int64_t var_68h; | int64_t var_70h; | int64_t var_78h; | int64_t var_80h; | int64_t var_88h; | uint32_t var_90h; | int64_t var_94h; | int64_t var_98h; | int64_t var_a0h; | int64_t var_c0h; | int64_t var_c8h; | int64_t var_d0h; | int64_t var_110h; | int64_t var_128h; | uint32_t var_130h; | int64_t var_138h; | int64_t var_150h; | int64_t var_1d8h; | int64_t var_1e0h; | int64_t var_1e8h; | int64_t var_1f0h; | int64_t var_230h; | int64_t var_248h; | uint32_t var_250h; | int64_t var_258h; | int64_t var_270h; | int64_t var_2f8h; | int64_t var_300h; | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void testPutValue(int, int, int, int, BloombergLP::bdlt::DatetimeTz const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x00421600 push rbp | 0x00421601 push r15 | 0x00421603 push r14 | 0x00421605 push r13 | 0x00421607 push r12 | 0x00421609 push rbx | 0x0042160a sub rsp, 0x308 | 0x00421611 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x00421619 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0042161e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x00421622 mov r15d, esi | r15d = esi; 0x00421625 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x00421629 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0042162e lea eax, [rdx + 1] | eax = rdx + 1; 0x00421631 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x00421635 xor ebx, ebx | ebx = 0; 0x00421637 mov r13b, 1 | r13b = 1; 0x0042163a lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x0042163f jmp 0x421686 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x00421650 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0042165c mov rdi, rbx | rdi = rbx; 0x0042165f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00421664 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0042166c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00421671 mov ebx, 1 | ebx = 1; 0x00421676 test r13b, 1 | 0x0042167a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x00421680 je 0x421f01 | goto label_1; | } 0x00421686 mov rax, qword [rip + 0x2b28d3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042168d test rax, rax | | if (rax == 0) { 0x00421690 jne 0x421697 | 0x00421692 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00421697 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0042169f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x004216ab lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x004216b3 mov rdi, rbp | 0x004216b6 mov esi, 0x10 | 0x004216bb lea rdx, [rsp + 0xc8] | 0x004216c3 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x004216c8 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x004216d4 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x004216e0 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x004216e8 mov rsi, rbp | rsi = rbp; 0x004216eb call 0x403f90 | std::_1::ios_base::init(void*) (); 0x004216f0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x004216fc mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00421707 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x00421713 mov qword [rsp + 0x270], 0x48dd88 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48dd88; 0x0042171f mov rax, qword [rip + 0x2b283a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00421726 test rax, rax | | if (rax == 0) { 0x00421729 jne 0x421730 | 0x0042172b call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00421730 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00421738 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00421744 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0042174c mov rdi, rbp | 0x0042174f mov esi, 0x10 | 0x00421754 lea rdx, [rsp + 0x88] | 0x0042175c call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x00421761 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0042176d mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x00421779 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x00421781 mov rsi, rbp | rsi = rbp; 0x00421784 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00421789 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x00421795 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x004217a0 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004217ac mov qword [rsp + 0x150], 0x48dd88 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48dd88; 0x004217b8 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x004217c0 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x004217c8 mov edx, r15d | edx = r15d; 0x004217cb mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x004217d0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x004217d5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00421807 cmp r15d, 1 | | if (r15d != 1) { 0x0042180b jne 0x4218aa | goto label_2; | } 0x00421811 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x00421816 mov edx, 1 | 0x0042181b lea rdi, [rsp + 0xc8] | 0x00421823 mov rsi, r12 | 0x00421826 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0042182b jmp 0x4218aa | | } else { 0x00421830 lea rdi, [rsp + 0x88] | 0x00421838 xor esi, esi | 0x0042183a call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0042183f cmp r15d, 1 | | if (r15d == 1) { 0x00421843 jne 0x42185b | 0x00421845 lea rdi, [rsp + 0xc8] | 0x0042184d mov rsi, qword [rsp + 0x70] | 0x00421852 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00421856 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0042185b mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x00421860 mov edx, 1 | 0x00421865 lea rdi, [rsp + 0xc8] | 0x0042186d mov rsi, r12 | 0x00421870 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00421875 cmp r15d, 1 | | if (r15d != 1) { 0x00421879 jne 0x4218aa | goto label_2; | } 0x0042187b mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x00421880 mov edx, 1 | 0x00421885 lea rdi, [rsp + 0xc8] | 0x0042188d mov rsi, r12 | 0x00421890 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00421895 lea rdi, [rsp + 0xc8] | 0x0042189d mov esi, dword [rsp + 0xc] | 0x004218a1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004218a5 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x004218aa cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x004218b2 je 0x4218f3 | 0x004218b4 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x004218bc mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x004218c4 dec rcx | rcx--; 0x004218c7 mov rdx, rcx | rdx = rcx; 0x004218ca shr rdx, 6 | rdx >>= 6; 0x004218ce mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x004218d2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x004218d6 jae 0x4218f3 | goto label_3; | } 0x004218d8 mov rdi, qword [rsp + 0x88] | 0x004218e0 mov esi, dword [rsp + 0x94] | 0x004218e7 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x004218ee call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x004218f3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x004218fb mov dword [rsp], 3 | *(rsp) = 3; 0x00421902 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0042190a test rax, rax | | if (rax != 0) { 0x0042190d je 0x421920 | 0x0042190f mov esi, dword [rax + 8] | 0x00421912 mov rdi, rsp | 0x00421915 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0042191a jmp 0x42192d | | } else { 0x00421920 mov rdi, rsp | 0x00421923 mov esi, 3 | 0x00421928 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0042192d mov rdi, r12 | 0x00421930 mov esi, 0x27 | 0x00421935 mov rdx, qword [rsp + 0x78] | 0x0042193a mov rcx, rsp | 0x0042193d call 0x438870 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00421942 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x00421947 mov rdi, r12 | 0x0042194a call 0x404000 | rax = strlen (r12); 0x0042194f mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00421954 mov rdi, rbp | 0x00421957 lea rsi, [rsp + 0x10] | 0x0042195c call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x00421961 mov r14d, eax | r14d = eax; 0x00421964 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0042196c je 0x421a40 | 0x00421972 test r14d, r14d | | if (r14d != 0) { 0x00421975 je 0x421a14 | 0x0042197b mov edi, 0x6d3df0 | 0x00421980 mov esi, 0x48dcc6 | 0x00421985 mov edx, 4 | 0x0042198a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x0042198f mov esi, 0x48d80d | 0x00421994 mov edx, 2 | 0x00421999 mov rdi, rax | 0x0042199c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004219a1 mov rdi, rax | rdi = rax; 0x004219a4 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004219a8 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004219ad mov esi, 0x48d63d | 0x004219b2 mov edx, 1 | 0x004219b7 mov rdi, rax | 0x004219ba call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x004219bf mov esi, 0x48dcdb | 0x004219c4 mov edx, 2 | 0x004219c9 mov rdi, rax | 0x004219cc call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x004219d1 mov esi, 0x48d80d | 0x004219d6 mov edx, 2 | 0x004219db mov rdi, rax | 0x004219de call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004219e3 mov rdi, rax | rdi = rax; 0x004219e6 mov esi, r14d | esi = r14d; 0x004219e9 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004219ee mov esi, 0x48dae6 | 0x004219f3 mov edx, 1 | 0x004219f8 mov rdi, rax | 0x004219fb call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00421a00 mov esi, 0x48daa9 | esi = "0 == rc"; 0x00421a05 mov edi, 1 | edi = 1; 0x00421a0a mov edx, 0xcc | edx = 0xcc; 0x00421a0f call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00421a14 mov dword [rsp], 3 | *(rsp) = 3; 0x00421a1b mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00421a23 test rax, rax | | if (rax != 0) { 0x00421a26 je 0x421ae6 | 0x00421a2c mov esi, dword [rax + 8] | 0x00421a2f mov rdi, rsp | 0x00421a32 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00421a37 jmp 0x421af3 | | } else { 0x00421a40 test r14d, r14d | | if (r14d != 0) { 0x00421a43 jne 0x421e16 | goto label_4; | } 0x00421a49 mov edi, 0x6d3df0 | 0x00421a4e mov esi, 0x48dcc6 | 0x00421a53 mov edx, 4 | 0x00421a58 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421a5d mov esi, 0x48d80d | 0x00421a62 mov edx, 2 | 0x00421a67 mov rdi, rax | 0x00421a6a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421a6f mov rdi, rax | rdi = rax; 0x00421a72 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421a76 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421a7b mov esi, 0x48d63d | 0x00421a80 mov edx, 1 | 0x00421a85 mov rdi, rax | 0x00421a88 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421a8d mov esi, 0x48dcdb | 0x00421a92 mov edx, 2 | 0x00421a97 mov rdi, rax | 0x00421a9a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x00421a9f mov esi, 0x48d80d | 0x00421aa4 mov edx, 2 | 0x00421aa9 mov rdi, rax | 0x00421aac call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421ab1 mov rdi, rax | rdi = rax; 0x00421ab4 xor esi, esi | esi = 0; 0x00421ab6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421abb mov esi, 0x48dae6 | 0x00421ac0 mov edx, 1 | 0x00421ac5 mov rdi, rax | 0x00421ac8 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00421acd mov esi, 0x48dcd6 | esi = "0 != rc"; 0x00421ad2 mov edi, 1 | edi = 1; 0x00421ad7 mov edx, 0xd4 | edx = 0xd4; 0x00421adc call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00421ae1 jmp 0x421e16 | goto label_4; | } 0x00421ae6 mov rdi, rsp | 0x00421ae9 mov esi, 3 | 0x00421aee call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00421af3 mov rdi, r12 | 0x00421af6 mov esi, 0x27 | 0x00421afb mov rdx, qword [rsp + 0x78] | 0x00421b00 mov rcx, rsp | 0x00421b03 call 0x438870 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00421b08 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x00421b0d mov rdi, r12 | 0x00421b10 call 0x404000 | rax = strlen (r12); 0x00421b15 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00421b1a lea rdi, [rsp + 0xc8] | 0x00421b22 lea rsi, [rsp + 0x10] | 0x00421b27 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x00421b2c mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00421b34 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00421b38 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x00421b40 je 0x421bde | 0x00421b46 mov edi, 0x6d3df0 | 0x00421b4b mov esi, 0x48dcc6 | 0x00421b50 mov edx, 4 | 0x00421b55 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421b5a mov esi, 0x48d80d | 0x00421b5f mov edx, 2 | 0x00421b64 mov rdi, rax | 0x00421b67 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421b6c mov rdi, rax | rdi = rax; 0x00421b6f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421b73 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421b78 mov esi, 0x48d63d | 0x00421b7d mov edx, 1 | 0x00421b82 mov rdi, rax | 0x00421b85 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421b8a mov esi, 0x4aa3d2 | 0x00421b8f mov edx, 1 | 0x00421b94 mov rdi, rax | 0x00421b97 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x00421b9c mov esi, 0x48d80d | 0x00421ba1 mov edx, 2 | 0x00421ba6 mov rdi, rax | 0x00421ba9 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421bae mov rdi, rax | rdi = rax; 0x00421bb1 mov esi, ebx | esi = ebx; 0x00421bb3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421bb8 mov esi, 0x48dae6 | 0x00421bbd mov edx, 1 | 0x00421bc2 mov rdi, rax | 0x00421bc5 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00421bca mov esi, 0x48dccb | esi = "exp.good()"; 0x00421bcf mov edi, 1 | edi = 1; 0x00421bd4 mov edx, 0xcf | edx = 0xcf; 0x00421bd9 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00421bde mov rdi, r12 | 0x00421be1 lea rsi, [rsp + 0x1f0] | 0x00421be9 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x00421bee lea rdi, [rsp + 0x10] | 0x00421bf3 lea rsi, [rsp + 0xd0] | 0x00421bfb call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x00421c00 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x00421c05 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x00421c0a jne 0x421c50 | 0x00421c0c test rdx, rdx | | if (rdx != 0) { 0x00421c0f je 0x421c5c | 0x00421c11 cmp qword [rsp + 0x30], 0x17 | 0x00421c17 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x00421c1c je 0x421c23 | 0x00421c1e mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x00421c23 cmp qword [rsp + 0x60], 0x17 | 0x00421c29 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x00421c2c je 0x421c33 | 0x00421c2e mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x00421c33 call 0x404130 | eax = bcmp (); 0x00421c38 test eax, eax | 0x00421c3a sete bpl | bpl = (eax == 0) ? 1 : 0; 0x00421c3e cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x00421c44 jne 0x421c70 | 0x00421c46 jmp 0x421c80 | | } else { 0x00421c50 xor ebp, ebp | ebp = 0; 0x00421c52 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421c58 jne 0x421c70 | goto label_5; | } 0x00421c5a jmp 0x421c80 | | } else { 0x00421c5c mov bpl, 1 | bpl = 1; 0x00421c5f cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x00421c65 je 0x421c80 | goto label_6; | } 0x00421c67 nop word [rax + rax] | | label_5: 0x00421c70 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00421c75 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421c7a mov rax, qword [rdi] | rax = *(rdi); 0x00421c7d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x00421c80 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421c86 je 0x421c98 | 0x00421c88 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421c8d mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00421c92 mov rax, qword [rdi] | rax = *(rdi); 0x00421c95 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421c98 test bpl, bpl | | if (bpl == 0) { 0x00421c9b jne 0x421e16 | 0x00421ca1 mov edi, 0x6d3df0 | 0x00421ca6 mov esi, 0x48dcc6 | 0x00421cab mov edx, 4 | 0x00421cb0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421cb5 mov esi, 0x48d80d | 0x00421cba mov edx, 2 | 0x00421cbf mov rdi, rax | 0x00421cc2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421cc7 mov rdi, rax | rdi = rax; 0x00421cca mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421cce call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421cd3 mov esi, 0x48d63d | 0x00421cd8 mov edx, 1 | 0x00421cdd mov rdi, rax | 0x00421ce0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421ce5 mov esi, 0x4aa3d2 | 0x00421cea mov edx, 1 | 0x00421cef mov rdi, rax | 0x00421cf2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x00421cf7 mov esi, 0x48d80d | 0x00421cfc mov edx, 2 | 0x00421d01 mov rdi, rax | 0x00421d04 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421d09 mov rdi, rax | rdi = rax; 0x00421d0c mov esi, ebx | esi = ebx; 0x00421d0e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421d13 mov esi, 0x48d63d | 0x00421d18 mov edx, 1 | 0x00421d1d mov rdi, rax | 0x00421d20 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421d25 mov esi, 0x48d5f7 | 0x00421d2a mov edx, 8 | 0x00421d2f mov rdi, rax | 0x00421d32 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x00421d37 mov esi, 0x48d80d | 0x00421d3c mov edx, 2 | 0x00421d41 mov rdi, rax | 0x00421d44 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421d49 mov rbx, rax | rbx = rax; 0x00421d4c mov rdi, r12 | 0x00421d4f lea rsi, [rsp + 0x1f0] | 0x00421d57 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x00421d5c mov rdi, rbx | 0x00421d5f mov rsi, r12 | 0x00421d62 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x00421d67 mov esi, 0x48d63d | 0x00421d6c mov edx, 1 | 0x00421d71 mov rdi, rax | 0x00421d74 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421d79 mov esi, 0x48d7cd | 0x00421d7e mov edx, 9 | 0x00421d83 mov rdi, rax | 0x00421d86 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x00421d8b mov esi, 0x48d80d | 0x00421d90 mov edx, 2 | 0x00421d95 mov rdi, rax | 0x00421d98 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421d9d mov rbx, rax | rbx = rax; 0x00421da0 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x00421da5 mov rdi, rbp | 0x00421da8 lea rsi, [rsp + 0xd0] | 0x00421db0 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00421db5 mov rdi, rbx | 0x00421db8 mov rsi, rbp | 0x00421dbb call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x00421dc0 mov esi, 0x48dae6 | 0x00421dc5 mov edx, 1 | 0x00421dca mov rdi, rax | 0x00421dcd call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00421dd2 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421dd8 je 0x421dea | 0x00421dda mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00421ddf mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421de4 mov rax, qword [rdi] | rax = *(rdi); 0x00421de7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421dea cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421df0 je 0x421e02 | 0x00421df2 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421df7 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00421dfc mov rax, qword [rdi] | rax = *(rdi); 0x00421dff call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421e02 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x00421e07 mov edi, 1 | edi = 1; 0x00421e0c mov edx, 0xd1 | edx = 0xd1; 0x00421e11 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x00421e16 test r13b, 1 | | if ((r13b & 1) != 0) { 0x00421e1a je 0x421e30 | 0x00421e1c lea rdi, [rsp + 0x88] | 0x00421e24 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x00421e29 jmp 0x421e3f | | } else { 0x00421e30 lea rdi, [rsp + 0x88] | 0x00421e38 xor esi, esi | esi = 0; 0x00421e3a call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x00421e3f lea rdi, [rsp + 0xa0] | 0x00421e47 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x00421e4c mov esi, 0x48dda0 | esi = 0x48dda0; 0x00421e51 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x00421e59 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00421e5e mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x00421e6a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x00421e73 je 0x421e8b | 0x00421e75 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x00421e7d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x00421e85 mov rax, qword [rdi] | rax = *(rdi); 0x00421e88 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421e8b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x00421e97 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x00421e9f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00421ea4 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x00421eac call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00421eb1 mov esi, 0x48dda0 | esi = 0x48dda0; 0x00421eb6 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x00421ebe call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00421ec3 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x00421ecf cmp qword [rsp + 0x250], 0x17 | 0x00421ed8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x00421ee0 je 0x421650 | | } 0x00421ee6 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x00421eee mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x00421ef6 mov rax, qword [rdi] | rax = *(rdi); 0x00421ef9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x00421efc jmp 0x421650 | goto label_0; | label_1: 0x00421f01 add rsp, 0x308 | 0x00421f08 pop rbx | 0x00421f09 pop r12 | 0x00421f0b pop r13 | 0x00421f0d pop r14 | 0x00421f0f pop r15 | 0x00421f11 pop rbp | 0x00421f12 ret | return rax; | }