; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x421650 */ | #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; | int64_t var_28h; | uint32_t var_30h; | int64_t var_38h; | int64_t var_40h; | size_t var_48h; | uint32_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) */ 0x00421650 push rbp | 0x00421651 push r15 | 0x00421653 push r14 | 0x00421655 push r13 | 0x00421657 push r12 | 0x00421659 push rbx | 0x0042165a sub rsp, 0x308 | 0x00421661 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x00421669 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0042166e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x00421672 mov r15d, esi | r15d = esi; 0x00421675 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x00421679 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0042167e lea eax, [rdx + 1] | eax = rdx + 1; 0x00421681 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x00421685 xor ebx, ebx | ebx = 0; 0x00421687 mov r13b, 1 | r13b = 1; 0x0042168a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0042168f jmp 0x4216d6 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x004216a0 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x004216ac mov rdi, rbx | rdi = rbx; 0x004216af call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x004216b4 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x004216bc call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x004216c1 mov ebx, 1 | ebx = 1; 0x004216c6 test r13b, 1 | 0x004216ca mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x004216d0 je 0x421f61 | goto label_1; | } 0x004216d6 mov rax, qword [rip + 0x2b2883] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004216dd test rax, rax | | if (rax == 0) { 0x004216e0 jne 0x4216e7 | 0x004216e2 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004216e7 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x004216ef mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x004216fb lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x00421703 mov rdi, rbp | 0x00421706 mov esi, 0x10 | 0x0042170b lea rdx, [rsp + 0xc8] | 0x00421713 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x00421718 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x00421724 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x00421730 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00421738 mov rsi, rbp | rsi = rbp; 0x0042173b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00421740 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0042174c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00421757 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x00421763 mov qword [rsp + 0x270], 0x48d3e8 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48d3e8; 0x0042176f mov rax, qword [rip + 0x2b27ea] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00421776 test rax, rax | | if (rax == 0) { 0x00421779 jne 0x421780 | 0x0042177b call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00421780 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00421788 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00421794 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0042179c mov rdi, rbp | 0x0042179f mov esi, 0x10 | 0x004217a4 lea rdx, [rsp + 0x88] | 0x004217ac call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x004217b1 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x004217bd mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x004217c9 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x004217d1 mov rsi, rbp | rsi = rbp; 0x004217d4 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x004217d9 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x004217e5 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x004217f0 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004217fc mov qword [rsp + 0x150], 0x48d3e8 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48d3e8; 0x00421808 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x00421810 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x00421818 mov edx, r15d | edx = r15d; 0x0042181b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x00421820 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x00421825 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00421857 cmp r15d, 1 | | if (r15d != 1) { 0x0042185b jne 0x4218fa | goto label_2; | } 0x00421861 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x00421866 mov edx, 1 | 0x0042186b lea rdi, [rsp + 0xc8] | 0x00421873 mov rsi, r12 | 0x00421876 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0042187b jmp 0x4218fa | | } else { 0x00421880 lea rdi, [rsp + 0x88] | 0x00421888 xor esi, esi | 0x0042188a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0042188f cmp r15d, 1 | | if (r15d == 1) { 0x00421893 jne 0x4218ab | 0x00421895 lea rdi, [rsp + 0xc8] | 0x0042189d mov rsi, qword [rsp + 0x70] | 0x004218a2 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004218a6 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x004218ab mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x004218b0 mov edx, 1 | 0x004218b5 lea rdi, [rsp + 0xc8] | 0x004218bd mov rsi, r12 | 0x004218c0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x004218c5 cmp r15d, 1 | | if (r15d != 1) { 0x004218c9 jne 0x4218fa | goto label_2; | } 0x004218cb mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x004218d0 mov edx, 1 | 0x004218d5 lea rdi, [rsp + 0xc8] | 0x004218dd mov rsi, r12 | 0x004218e0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x004218e5 lea rdi, [rsp + 0xc8] | 0x004218ed mov esi, dword [rsp + 0xc] | 0x004218f1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004218f5 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x004218fa cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x00421902 je 0x421943 | 0x00421904 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0042190c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x00421914 dec rcx | rcx--; 0x00421917 mov rdx, rcx | rdx = rcx; 0x0042191a shr rdx, 6 | rdx >>= 6; 0x0042191e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x00421922 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x00421926 jae 0x421943 | goto label_3; | } 0x00421928 mov rdi, qword [rsp + 0x88] | 0x00421930 mov esi, dword [rsp + 0x94] | 0x00421937 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0042193e call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x00421943 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0042194b mov dword [rsp], 3 | *(rsp) = 3; 0x00421952 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0042195a test rax, rax | | if (rax != 0) { 0x0042195d je 0x421970 | 0x0042195f mov esi, dword [rax + 8] | 0x00421962 mov rdi, rsp | 0x00421965 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0042196a jmp 0x42197d | | } else { 0x00421970 mov rdi, rsp | 0x00421973 mov esi, 3 | 0x00421978 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0042197d mov rdi, r12 | 0x00421980 mov esi, 0x27 | 0x00421985 mov rdx, qword [rsp + 0x78] | 0x0042198a mov rcx, rsp | 0x0042198d call 0x438020 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00421992 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x00421997 mov rdi, r12 | 0x0042199a call 0x404000 | rax = strlen (r12); 0x0042199f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004219a4 mov rdi, rbp | 0x004219a7 lea rsi, [rsp + 0x40] | 0x004219ac call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x004219b1 mov r14d, eax | r14d = eax; 0x004219b4 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x004219bc je 0x421aa0 | 0x004219c2 test r14d, r14d | 0x004219c5 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x004219ca je 0x421a69 | 0x004219d0 mov edi, 0x6d3df0 | 0x004219d5 mov esi, 0x48d32c | 0x004219da mov edx, 4 | 0x004219df call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x004219e4 mov esi, 0x48ce6f | 0x004219e9 mov edx, 2 | 0x004219ee mov rdi, rax | 0x004219f1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004219f6 mov rdi, rax | rdi = rax; 0x004219f9 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004219fd call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421a02 mov esi, 0x48cc9f | 0x00421a07 mov edx, 1 | 0x00421a0c mov rdi, rax | 0x00421a0f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421a14 mov esi, 0x48d341 | 0x00421a19 mov edx, 2 | 0x00421a1e mov rdi, rax | 0x00421a21 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x00421a26 mov esi, 0x48ce6f | 0x00421a2b mov edx, 2 | 0x00421a30 mov rdi, rax | 0x00421a33 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421a38 mov rdi, rax | rdi = rax; 0x00421a3b mov esi, r14d | esi = r14d; 0x00421a3e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421a43 mov esi, 0x48d148 | 0x00421a48 mov edx, 1 | 0x00421a4d mov rdi, rax | 0x00421a50 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00421a55 mov esi, 0x48d10b | esi = "0 == rc"; 0x00421a5a mov edi, 1 | edi = 1; 0x00421a5f mov edx, 0xcc | edx = 0xcc; 0x00421a64 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00421a69 mov dword [rsp], 3 | *(rsp) = 3; 0x00421a70 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00421a78 test rax, rax | | if (rax != 0) { 0x00421a7b je 0x421b46 | 0x00421a81 mov esi, dword [rax + 8] | 0x00421a84 mov rdi, rsp | 0x00421a87 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00421a8c jmp 0x421b53 | | } else { 0x00421aa0 test r14d, r14d | | if (r14d != 0) { 0x00421aa3 jne 0x421e76 | goto label_4; | } 0x00421aa9 mov edi, 0x6d3df0 | 0x00421aae mov esi, 0x48d32c | 0x00421ab3 mov edx, 4 | 0x00421ab8 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421abd mov esi, 0x48ce6f | 0x00421ac2 mov edx, 2 | 0x00421ac7 mov rdi, rax | 0x00421aca call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421acf mov rdi, rax | rdi = rax; 0x00421ad2 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421ad6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421adb mov esi, 0x48cc9f | 0x00421ae0 mov edx, 1 | 0x00421ae5 mov rdi, rax | 0x00421ae8 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421aed mov esi, 0x48d341 | 0x00421af2 mov edx, 2 | 0x00421af7 mov rdi, rax | 0x00421afa call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x00421aff mov esi, 0x48ce6f | 0x00421b04 mov edx, 2 | 0x00421b09 mov rdi, rax | 0x00421b0c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421b11 mov rdi, rax | rdi = rax; 0x00421b14 xor esi, esi | esi = 0; 0x00421b16 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421b1b mov esi, 0x48d148 | 0x00421b20 mov edx, 1 | 0x00421b25 mov rdi, rax | 0x00421b28 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00421b2d mov esi, 0x48d33c | esi = "0 != rc"; 0x00421b32 mov edi, 1 | edi = 1; 0x00421b37 mov edx, 0xd4 | edx = 0xd4; 0x00421b3c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00421b41 jmp 0x421e76 | goto label_4; | } 0x00421b46 mov rdi, rsp | 0x00421b49 mov esi, 3 | 0x00421b4e call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00421b53 mov rdi, r12 | 0x00421b56 mov esi, 0x27 | 0x00421b5b mov rdx, qword [rsp + 0x78] | 0x00421b60 mov rcx, rsp | 0x00421b63 call 0x438020 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DatetimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00421b68 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x00421b6d mov rdi, r12 | 0x00421b70 call 0x404000 | rax = strlen (r12); 0x00421b75 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x00421b7a lea rdi, [rsp + 0xc8] | 0x00421b82 mov rsi, rbp | 0x00421b85 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x00421b8a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00421b92 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00421b96 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x00421b9e je 0x421c3c | 0x00421ba4 mov edi, 0x6d3df0 | 0x00421ba9 mov esi, 0x48d32c | 0x00421bae mov edx, 4 | 0x00421bb3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421bb8 mov esi, 0x48ce6f | 0x00421bbd mov edx, 2 | 0x00421bc2 mov rdi, rax | 0x00421bc5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421bca mov rdi, rax | rdi = rax; 0x00421bcd mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421bd1 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421bd6 mov esi, 0x48cc9f | 0x00421bdb mov edx, 1 | 0x00421be0 mov rdi, rax | 0x00421be3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421be8 mov esi, 0x4a9942 | 0x00421bed mov edx, 1 | 0x00421bf2 mov rdi, rax | 0x00421bf5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x00421bfa mov esi, 0x48ce6f | 0x00421bff mov edx, 2 | 0x00421c04 mov rdi, rax | 0x00421c07 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421c0c mov rdi, rax | rdi = rax; 0x00421c0f mov esi, ebx | esi = ebx; 0x00421c11 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421c16 mov esi, 0x48d148 | 0x00421c1b mov edx, 1 | 0x00421c20 mov rdi, rax | 0x00421c23 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00421c28 mov esi, 0x48d331 | esi = "exp.good()"; 0x00421c2d mov edi, 1 | edi = 1; 0x00421c32 mov edx, 0xcf | edx = 0xcf; 0x00421c37 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00421c3c mov rdi, r12 | 0x00421c3f lea rsi, [rsp + 0x1f0] | 0x00421c47 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x00421c4c mov rdi, rbp | 0x00421c4f lea rsi, [rsp + 0xd0] | 0x00421c57 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00421c5c mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x00421c61 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x00421c66 jne 0x421cb0 | 0x00421c68 test rdx, rdx | | if (rdx != 0) { 0x00421c6b je 0x421cbc | 0x00421c6d cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421c73 je 0x421c7a | 0x00421c75 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x00421c7a cmp qword [rsp + 0x30], 0x17 | 0x00421c80 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x00421c83 je 0x421c8a | 0x00421c85 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x00421c8a mov rsi, rbp | rsi = rbp; 0x00421c8d call 0x404130 | eax = bcmp (); 0x00421c92 test eax, eax | 0x00421c94 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x00421c98 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x00421c9e jne 0x421cd0 | 0x00421ca0 jmp 0x421ce0 | | } else { 0x00421cb0 xor ebp, ebp | ebp = 0; 0x00421cb2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421cb8 jne 0x421cd0 | goto label_5; | } 0x00421cba jmp 0x421ce0 | | } else { 0x00421cbc mov bpl, 1 | bpl = 1; 0x00421cbf cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x00421cc5 je 0x421ce0 | goto label_6; | } 0x00421cc7 nop word [rax + rax] | | label_5: 0x00421cd0 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421cd5 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00421cda mov rax, qword [rdi] | rax = *(rdi); 0x00421cdd call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x00421ce0 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421ce6 je 0x421cf8 | 0x00421ce8 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00421ced mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421cf2 mov rax, qword [rdi] | rax = *(rdi); 0x00421cf5 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421cf8 test bpl, bpl | 0x00421cfb lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x00421d00 jne 0x421e76 | 0x00421d06 mov edi, 0x6d3df0 | 0x00421d0b mov esi, 0x48d32c | 0x00421d10 mov edx, 4 | 0x00421d15 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x00421d1a mov esi, 0x48ce6f | 0x00421d1f mov edx, 2 | 0x00421d24 mov rdi, rax | 0x00421d27 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421d2c mov rdi, rax | rdi = rax; 0x00421d2f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421d33 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421d38 mov esi, 0x48cc9f | 0x00421d3d mov edx, 1 | 0x00421d42 mov rdi, rax | 0x00421d45 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421d4a mov esi, 0x4a9942 | 0x00421d4f mov edx, 1 | 0x00421d54 mov rdi, rax | 0x00421d57 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x00421d5c mov esi, 0x48ce6f | 0x00421d61 mov edx, 2 | 0x00421d66 mov rdi, rax | 0x00421d69 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421d6e mov rdi, rax | rdi = rax; 0x00421d71 mov esi, ebx | esi = ebx; 0x00421d73 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421d78 mov esi, 0x48cc9f | 0x00421d7d mov edx, 1 | 0x00421d82 mov rdi, rax | 0x00421d85 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421d8a mov esi, 0x48cc59 | 0x00421d8f mov edx, 8 | 0x00421d94 mov rdi, rax | 0x00421d97 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x00421d9c mov esi, 0x48ce6f | 0x00421da1 mov edx, 2 | 0x00421da6 mov rdi, rax | 0x00421da9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421dae mov rbx, rax | rbx = rax; 0x00421db1 mov rdi, r12 | 0x00421db4 lea rsi, [rsp + 0x1f0] | 0x00421dbc call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x00421dc1 mov rdi, rbx | 0x00421dc4 mov rsi, r12 | 0x00421dc7 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x00421dcc mov esi, 0x48cc9f | 0x00421dd1 mov edx, 1 | 0x00421dd6 mov rdi, rax | 0x00421dd9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421dde mov esi, 0x48ce2f | 0x00421de3 mov edx, 9 | 0x00421de8 mov rdi, rax | 0x00421deb call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x00421df0 mov esi, 0x48ce6f | 0x00421df5 mov edx, 2 | 0x00421dfa mov rdi, rax | 0x00421dfd call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421e02 mov rbx, rax | rbx = rax; 0x00421e05 mov rdi, rbp | 0x00421e08 lea rsi, [rsp + 0xd0] | 0x00421e10 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00421e15 mov rdi, rbx | 0x00421e18 mov rsi, rbp | 0x00421e1b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x00421e20 mov esi, 0x48d148 | 0x00421e25 mov edx, 1 | 0x00421e2a mov rdi, rax | 0x00421e2d call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00421e32 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421e38 je 0x421e4a | 0x00421e3a mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421e3f mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00421e44 mov rax, qword [rdi] | rax = *(rdi); 0x00421e47 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421e4a cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421e50 je 0x421e62 | 0x00421e52 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00421e57 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421e5c mov rax, qword [rdi] | rax = *(rdi); 0x00421e5f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421e62 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x00421e67 mov edi, 1 | edi = 1; 0x00421e6c mov edx, 0xd1 | edx = 0xd1; 0x00421e71 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x00421e76 test r13b, 1 | | if ((r13b & 1) != 0) { 0x00421e7a je 0x421e90 | 0x00421e7c lea rdi, [rsp + 0x88] | 0x00421e84 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x00421e89 jmp 0x421e9f | | } else { 0x00421e90 lea rdi, [rsp + 0x88] | 0x00421e98 xor esi, esi | esi = 0; 0x00421e9a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x00421e9f lea rdi, [rsp + 0xa0] | 0x00421ea7 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x00421eac mov esi, 0x48d400 | esi = 0x48d400; 0x00421eb1 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x00421eb9 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00421ebe mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x00421eca cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x00421ed3 je 0x421eeb | 0x00421ed5 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x00421edd mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x00421ee5 mov rax, qword [rdi] | rax = *(rdi); 0x00421ee8 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421eeb mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x00421ef7 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x00421eff call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00421f04 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x00421f0c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00421f11 mov esi, 0x48d400 | esi = 0x48d400; 0x00421f16 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x00421f1e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00421f23 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x00421f2f cmp qword [rsp + 0x250], 0x17 | 0x00421f38 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x00421f40 je 0x4216a0 | | } 0x00421f46 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x00421f4e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x00421f56 mov rax, qword [rdi] | rax = *(rdi); 0x00421f59 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x00421f5c jmp 0x4216a0 | goto label_0; | label_1: 0x00421f61 add rsp, 0x308 | 0x00421f68 pop rbx | 0x00421f69 pop r12 | 0x00421f6b pop r13 | 0x00421f6d pop r14 | 0x00421f6f pop r15 | 0x00421f71 pop rbp | 0x00421f72 ret | return rax; | }