; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x41dcd0 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.Date__int__int__int__int__BloombergLP::bdlt::Date_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_Date_int_int_int_int_BloombergLP::bdlt::Date_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::Date const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041dcd0 push rbp | 0x0041dcd1 push r15 | 0x0041dcd3 push r14 | 0x0041dcd5 push r13 | 0x0041dcd7 push r12 | 0x0041dcd9 push rbx | 0x0041dcda sub rsp, 0x308 | 0x0041dce1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041dce9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041dcee mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041dcf2 mov r15d, esi | r15d = esi; 0x0041dcf5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041dcf9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041dcfe lea eax, [rdx + 1] | eax = rdx + 1; 0x0041dd01 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041dd05 xor ebx, ebx | ebx = 0; 0x0041dd07 mov r13b, 1 | r13b = 1; 0x0041dd0a lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x0041dd0f jmp 0x41dd56 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041dd20 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041dd2c mov rdi, rbx | rdi = rbx; 0x0041dd2f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041dd34 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041dd3c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041dd41 mov ebx, 1 | ebx = 1; 0x0041dd46 test r13b, 1 | 0x0041dd4a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041dd50 je 0x41e5d1 | goto label_1; | } 0x0041dd56 mov rax, qword [rip + 0x2b6203] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041dd5d test rax, rax | | if (rax == 0) { 0x0041dd60 jne 0x41dd67 | 0x0041dd62 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041dd67 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041dd6f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041dd7b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041dd83 mov rdi, rbp | 0x0041dd86 mov esi, 0x10 | 0x0041dd8b lea rdx, [rsp + 0xc8] | 0x0041dd93 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041dd98 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x0041dda4 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041ddb0 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041ddb8 mov rsi, rbp | rsi = rbp; 0x0041ddbb call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041ddc0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041ddcc mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041ddd7 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x0041dde3 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; 0x0041ddef mov rax, qword [rip + 0x2b616a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041ddf6 test rax, rax | | if (rax == 0) { 0x0041ddf9 jne 0x41de00 | 0x0041ddfb call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041de00 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041de08 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041de14 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041de1c mov rdi, rbp | 0x0041de1f mov esi, 0x10 | 0x0041de24 lea rdx, [rsp + 0x88] | 0x0041de2c call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041de31 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041de3d mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041de49 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041de51 mov rsi, rbp | rsi = rbp; 0x0041de54 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041de59 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041de65 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041de70 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041de7c 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; 0x0041de88 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041de90 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041de98 mov edx, r15d | edx = r15d; 0x0041de9b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041dea0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041dea5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ded7 cmp r15d, 1 | | if (r15d != 1) { 0x0041dedb jne 0x41df7a | goto label_2; | } 0x0041dee1 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041dee6 mov edx, 1 | 0x0041deeb lea rdi, [rsp + 0xc8] | 0x0041def3 mov rsi, r12 | 0x0041def6 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041defb jmp 0x41df7a | | } else { 0x0041df00 lea rdi, [rsp + 0x88] | 0x0041df08 xor esi, esi | 0x0041df0a call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041df0f cmp r15d, 1 | | if (r15d == 1) { 0x0041df13 jne 0x41df2b | 0x0041df15 lea rdi, [rsp + 0xc8] | 0x0041df1d mov rsi, qword [rsp + 0x70] | 0x0041df22 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041df26 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041df2b mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x0041df30 mov edx, 1 | 0x0041df35 lea rdi, [rsp + 0xc8] | 0x0041df3d mov rsi, r12 | 0x0041df40 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041df45 cmp r15d, 1 | | if (r15d != 1) { 0x0041df49 jne 0x41df7a | goto label_2; | } 0x0041df4b mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041df50 mov edx, 1 | 0x0041df55 lea rdi, [rsp + 0xc8] | 0x0041df5d mov rsi, r12 | 0x0041df60 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041df65 lea rdi, [rsp + 0xc8] | 0x0041df6d mov esi, dword [rsp + 0xc] | 0x0041df71 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041df75 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041df7a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041df82 je 0x41dfc3 | 0x0041df84 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041df8c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041df94 dec rcx | rcx--; 0x0041df97 mov rdx, rcx | rdx = rcx; 0x0041df9a shr rdx, 6 | rdx >>= 6; 0x0041df9e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041dfa2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041dfa6 jae 0x41dfc3 | goto label_3; | } 0x0041dfa8 mov rdi, qword [rsp + 0x88] | 0x0041dfb0 mov esi, dword [rsp + 0x94] | 0x0041dfb7 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041dfbe call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041dfc3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041dfcb mov dword [rsp], 3 | *(rsp) = 3; 0x0041dfd2 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041dfda test rax, rax | | if (rax != 0) { 0x0041dfdd je 0x41dff0 | 0x0041dfdf mov esi, dword [rax + 8] | 0x0041dfe2 mov rdi, rsp | 0x0041dfe5 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041dfea jmp 0x41dffd | | } else { 0x0041dff0 mov rdi, rsp | 0x0041dff3 mov esi, 3 | 0x0041dff8 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041dffd mov rdi, r12 | 0x0041e000 mov esi, 0x27 | 0x0041e005 mov rdx, qword [rsp + 0x78] | 0x0041e00a mov rcx, rsp | rcx = rsp; 0x0041e00d call 0x436f80 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78))); 0x0041e012 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041e017 mov rdi, r12 | 0x0041e01a call 0x404000 | rax = strlen (r12); 0x0041e01f mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041e024 mov rdi, rbp | 0x0041e027 lea rsi, [rsp + 0x10] | 0x0041e02c call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x0041e031 mov r14d, eax | r14d = eax; 0x0041e034 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041e03c je 0x41e110 | 0x0041e042 test r14d, r14d | | if (r14d != 0) { 0x0041e045 je 0x41e0e4 | 0x0041e04b mov edi, 0x6d3df0 | 0x0041e050 mov esi, 0x48dcc6 | 0x0041e055 mov edx, 4 | 0x0041e05a 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); 0x0041e05f mov esi, 0x48d80d | 0x0041e064 mov edx, 2 | 0x0041e069 mov rdi, rax | 0x0041e06c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e071 mov rdi, rax | rdi = rax; 0x0041e074 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e078 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e07d mov esi, 0x48d63d | 0x0041e082 mov edx, 1 | 0x0041e087 mov rdi, rax | 0x0041e08a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e08f mov esi, 0x48dcdb | 0x0041e094 mov edx, 2 | 0x0041e099 mov rdi, rax | 0x0041e09c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041e0a1 mov esi, 0x48d80d | 0x0041e0a6 mov edx, 2 | 0x0041e0ab mov rdi, rax | 0x0041e0ae call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e0b3 mov rdi, rax | rdi = rax; 0x0041e0b6 mov esi, r14d | esi = r14d; 0x0041e0b9 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e0be mov esi, 0x48dae6 | 0x0041e0c3 mov edx, 1 | 0x0041e0c8 mov rdi, rax | 0x0041e0cb call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041e0d0 mov esi, 0x48daa9 | esi = "0 == rc"; 0x0041e0d5 mov edi, 1 | edi = 1; 0x0041e0da mov edx, 0xcc | edx = 0xcc; 0x0041e0df call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041e0e4 mov dword [rsp], 3 | *(rsp) = 3; 0x0041e0eb mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041e0f3 test rax, rax | | if (rax != 0) { 0x0041e0f6 je 0x41e1b6 | 0x0041e0fc mov esi, dword [rax + 8] | 0x0041e0ff mov rdi, rsp | 0x0041e102 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041e107 jmp 0x41e1c3 | | } else { 0x0041e110 test r14d, r14d | | if (r14d != 0) { 0x0041e113 jne 0x41e4e6 | goto label_4; | } 0x0041e119 mov edi, 0x6d3df0 | 0x0041e11e mov esi, 0x48dcc6 | 0x0041e123 mov edx, 4 | 0x0041e128 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); 0x0041e12d mov esi, 0x48d80d | 0x0041e132 mov edx, 2 | 0x0041e137 mov rdi, rax | 0x0041e13a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e13f mov rdi, rax | rdi = rax; 0x0041e142 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e146 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e14b mov esi, 0x48d63d | 0x0041e150 mov edx, 1 | 0x0041e155 mov rdi, rax | 0x0041e158 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e15d mov esi, 0x48dcdb | 0x0041e162 mov edx, 2 | 0x0041e167 mov rdi, rax | 0x0041e16a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041e16f mov esi, 0x48d80d | 0x0041e174 mov edx, 2 | 0x0041e179 mov rdi, rax | 0x0041e17c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e181 mov rdi, rax | rdi = rax; 0x0041e184 xor esi, esi | esi = 0; 0x0041e186 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e18b mov esi, 0x48dae6 | 0x0041e190 mov edx, 1 | 0x0041e195 mov rdi, rax | 0x0041e198 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041e19d mov esi, 0x48dcd6 | esi = "0 != rc"; 0x0041e1a2 mov edi, 1 | edi = 1; 0x0041e1a7 mov edx, 0xd4 | edx = 0xd4; 0x0041e1ac call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041e1b1 jmp 0x41e4e6 | goto label_4; | } 0x0041e1b6 mov rdi, rsp | 0x0041e1b9 mov esi, 3 | 0x0041e1be call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041e1c3 mov rdi, r12 | 0x0041e1c6 mov esi, 0x27 | 0x0041e1cb mov rdx, qword [rsp + 0x78] | 0x0041e1d0 mov rcx, rsp | rcx = rsp; 0x0041e1d3 call 0x436f80 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78))); 0x0041e1d8 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041e1dd mov rdi, r12 | 0x0041e1e0 call 0x404000 | rax = strlen (r12); 0x0041e1e5 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041e1ea lea rdi, [rsp + 0xc8] | 0x0041e1f2 lea rsi, [rsp + 0x10] | 0x0041e1f7 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x0041e1fc mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041e204 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041e208 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041e210 je 0x41e2ae | 0x0041e216 mov edi, 0x6d3df0 | 0x0041e21b mov esi, 0x48dcc6 | 0x0041e220 mov edx, 4 | 0x0041e225 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); 0x0041e22a mov esi, 0x48d80d | 0x0041e22f mov edx, 2 | 0x0041e234 mov rdi, rax | 0x0041e237 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e23c mov rdi, rax | rdi = rax; 0x0041e23f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e243 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e248 mov esi, 0x48d63d | 0x0041e24d mov edx, 1 | 0x0041e252 mov rdi, rax | 0x0041e255 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e25a mov esi, 0x4aa3d2 | 0x0041e25f mov edx, 1 | 0x0041e264 mov rdi, rax | 0x0041e267 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041e26c mov esi, 0x48d80d | 0x0041e271 mov edx, 2 | 0x0041e276 mov rdi, rax | 0x0041e279 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e27e mov rdi, rax | rdi = rax; 0x0041e281 mov esi, ebx | esi = ebx; 0x0041e283 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e288 mov esi, 0x48dae6 | 0x0041e28d mov edx, 1 | 0x0041e292 mov rdi, rax | 0x0041e295 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041e29a mov esi, 0x48dccb | esi = "exp.good()"; 0x0041e29f mov edi, 1 | edi = 1; 0x0041e2a4 mov edx, 0xcf | edx = 0xcf; 0x0041e2a9 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041e2ae mov rdi, r12 | 0x0041e2b1 lea rsi, [rsp + 0x1f0] | 0x0041e2b9 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041e2be lea rdi, [rsp + 0x10] | 0x0041e2c3 lea rsi, [rsp + 0xd0] | 0x0041e2cb call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x0041e2d0 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x0041e2d5 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x0041e2da jne 0x41e320 | 0x0041e2dc test rdx, rdx | | if (rdx != 0) { 0x0041e2df je 0x41e32c | 0x0041e2e1 cmp qword [rsp + 0x30], 0x17 | 0x0041e2e7 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x0041e2ec je 0x41e2f3 | 0x0041e2ee mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x0041e2f3 cmp qword [rsp + 0x60], 0x17 | 0x0041e2f9 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x0041e2fc je 0x41e303 | 0x0041e2fe mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x0041e303 call 0x404130 | eax = bcmp (); 0x0041e308 test eax, eax | 0x0041e30a sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041e30e cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x0041e314 jne 0x41e340 | 0x0041e316 jmp 0x41e350 | | } else { 0x0041e320 xor ebp, ebp | ebp = 0; 0x0041e322 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041e328 jne 0x41e340 | goto label_5; | } 0x0041e32a jmp 0x41e350 | | } else { 0x0041e32c mov bpl, 1 | bpl = 1; 0x0041e32f cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x0041e335 je 0x41e350 | goto label_6; | } 0x0041e337 nop word [rax + rax] | | label_5: 0x0041e340 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041e345 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041e34a mov rax, qword [rdi] | rax = *(rdi); 0x0041e34d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041e350 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041e356 je 0x41e368 | 0x0041e358 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041e35d mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041e362 mov rax, qword [rdi] | rax = *(rdi); 0x0041e365 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e368 test bpl, bpl | | if (bpl == 0) { 0x0041e36b jne 0x41e4e6 | 0x0041e371 mov edi, 0x6d3df0 | 0x0041e376 mov esi, 0x48dcc6 | 0x0041e37b mov edx, 4 | 0x0041e380 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); 0x0041e385 mov esi, 0x48d80d | 0x0041e38a mov edx, 2 | 0x0041e38f mov rdi, rax | 0x0041e392 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e397 mov rdi, rax | rdi = rax; 0x0041e39a mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e39e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e3a3 mov esi, 0x48d63d | 0x0041e3a8 mov edx, 1 | 0x0041e3ad mov rdi, rax | 0x0041e3b0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e3b5 mov esi, 0x4aa3d2 | 0x0041e3ba mov edx, 1 | 0x0041e3bf mov rdi, rax | 0x0041e3c2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041e3c7 mov esi, 0x48d80d | 0x0041e3cc mov edx, 2 | 0x0041e3d1 mov rdi, rax | 0x0041e3d4 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e3d9 mov rdi, rax | rdi = rax; 0x0041e3dc mov esi, ebx | esi = ebx; 0x0041e3de call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e3e3 mov esi, 0x48d63d | 0x0041e3e8 mov edx, 1 | 0x0041e3ed mov rdi, rax | 0x0041e3f0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e3f5 mov esi, 0x48d5f7 | 0x0041e3fa mov edx, 8 | 0x0041e3ff mov rdi, rax | 0x0041e402 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x0041e407 mov esi, 0x48d80d | 0x0041e40c mov edx, 2 | 0x0041e411 mov rdi, rax | 0x0041e414 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e419 mov rbx, rax | rbx = rax; 0x0041e41c mov rdi, r12 | 0x0041e41f lea rsi, [rsp + 0x1f0] | 0x0041e427 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041e42c mov rdi, rbx | 0x0041e42f mov rsi, r12 | 0x0041e432 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041e437 mov esi, 0x48d63d | 0x0041e43c mov edx, 1 | 0x0041e441 mov rdi, rax | 0x0041e444 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041e449 mov esi, 0x48d7cd | 0x0041e44e mov edx, 9 | 0x0041e453 mov rdi, rax | 0x0041e456 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x0041e45b mov esi, 0x48d80d | 0x0041e460 mov edx, 2 | 0x0041e465 mov rdi, rax | 0x0041e468 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041e46d mov rbx, rax | rbx = rax; 0x0041e470 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x0041e475 mov rdi, rbp | 0x0041e478 lea rsi, [rsp + 0xd0] | 0x0041e480 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041e485 mov rdi, rbx | 0x0041e488 mov rsi, rbp | 0x0041e48b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041e490 mov esi, 0x48dae6 | 0x0041e495 mov edx, 1 | 0x0041e49a mov rdi, rax | 0x0041e49d call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041e4a2 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041e4a8 je 0x41e4ba | 0x0041e4aa mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041e4af mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041e4b4 mov rax, qword [rdi] | rax = *(rdi); 0x0041e4b7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e4ba cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041e4c0 je 0x41e4d2 | 0x0041e4c2 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041e4c7 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041e4cc mov rax, qword [rdi] | rax = *(rdi); 0x0041e4cf call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e4d2 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x0041e4d7 mov edi, 1 | edi = 1; 0x0041e4dc mov edx, 0xd1 | edx = 0xd1; 0x0041e4e1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041e4e6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041e4ea je 0x41e500 | 0x0041e4ec lea rdi, [rsp + 0x88] | 0x0041e4f4 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041e4f9 jmp 0x41e50f | | } else { 0x0041e500 lea rdi, [rsp + 0x88] | 0x0041e508 xor esi, esi | esi = 0; 0x0041e50a call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041e50f lea rdi, [rsp + 0xa0] | 0x0041e517 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041e51c mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041e521 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041e529 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041e52e mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041e53a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041e543 je 0x41e55b | 0x0041e545 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041e54d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041e555 mov rax, qword [rdi] | rax = *(rdi); 0x0041e558 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e55b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041e567 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041e56f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041e574 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041e57c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041e581 mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041e586 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041e58e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041e593 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x0041e59f cmp qword [rsp + 0x250], 0x17 | 0x0041e5a8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041e5b0 je 0x41dd20 | | } 0x0041e5b6 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041e5be mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041e5c6 mov rax, qword [rdi] | rax = *(rdi); 0x0041e5c9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041e5cc jmp 0x41dd20 | goto label_0; | label_1: 0x0041e5d1 add rsp, 0x308 | 0x0041e5d8 pop rbx | 0x0041e5d9 pop r12 | 0x0041e5db pop r13 | 0x0041e5dd pop r14 | 0x0041e5df pop r15 | 0x0041e5e1 pop rbp | 0x0041e5e2 ret | return rax; | }