; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x41ff20 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.DateTz__int__int__int__int__BloombergLP::bdlt::DateTz_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_DateTz_int_int_int_int_BloombergLP::bdlt::DateTz_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::DateTz const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041ff20 push rbp | 0x0041ff21 push r15 | 0x0041ff23 push r14 | 0x0041ff25 push r13 | 0x0041ff27 push r12 | 0x0041ff29 push rbx | 0x0041ff2a sub rsp, 0x308 | 0x0041ff31 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041ff39 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041ff3e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041ff42 mov r15d, esi | r15d = esi; 0x0041ff45 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041ff49 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041ff4e lea eax, [rdx + 1] | eax = rdx + 1; 0x0041ff51 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041ff55 xor ebx, ebx | ebx = 0; 0x0041ff57 mov r13b, 1 | r13b = 1; 0x0041ff5a lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x0041ff5f jmp 0x41ffa6 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041ff70 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041ff7c mov rdi, rbx | rdi = rbx; 0x0041ff7f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041ff84 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041ff8c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041ff91 mov ebx, 1 | ebx = 1; 0x0041ff96 test r13b, 1 | 0x0041ff9a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041ffa0 je 0x420821 | goto label_1; | } 0x0041ffa6 mov rax, qword [rip + 0x2b3fb3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041ffad test rax, rax | | if (rax == 0) { 0x0041ffb0 jne 0x41ffb7 | 0x0041ffb2 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041ffb7 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041ffbf mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041ffcb lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041ffd3 mov rdi, rbp | 0x0041ffd6 mov esi, 0x10 | 0x0041ffdb lea rdx, [rsp + 0xc8] | 0x0041ffe3 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041ffe8 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x0041fff4 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x00420000 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420008 mov rsi, rbp | rsi = rbp; 0x0042000b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420010 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0042001c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00420027 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x00420033 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; 0x0042003f mov rax, qword [rip + 0x2b3f1a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420046 test rax, rax | | if (rax == 0) { 0x00420049 jne 0x420050 | 0x0042004b call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420050 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00420058 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00420064 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0042006c mov rdi, rbp | 0x0042006f mov esi, 0x10 | 0x00420074 lea rdx, [rsp + 0x88] | 0x0042007c call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x00420081 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0042008d mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x00420099 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x004200a1 mov rsi, rbp | rsi = rbp; 0x004200a4 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x004200a9 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x004200b5 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x004200c0 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004200cc 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; 0x004200d8 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x004200e0 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x004200e8 mov edx, r15d | edx = r15d; 0x004200eb mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x004200f0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x004200f5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420127 cmp r15d, 1 | | if (r15d != 1) { 0x0042012b jne 0x4201ca | goto label_2; | } 0x00420131 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x00420136 mov edx, 1 | 0x0042013b lea rdi, [rsp + 0xc8] | 0x00420143 mov rsi, r12 | 0x00420146 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0042014b jmp 0x4201ca | | } else { 0x00420150 lea rdi, [rsp + 0x88] | 0x00420158 xor esi, esi | 0x0042015a call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0042015f cmp r15d, 1 | | if (r15d == 1) { 0x00420163 jne 0x42017b | 0x00420165 lea rdi, [rsp + 0xc8] | 0x0042016d mov rsi, qword [rsp + 0x70] | 0x00420172 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00420176 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0042017b mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x00420180 mov edx, 1 | 0x00420185 lea rdi, [rsp + 0xc8] | 0x0042018d mov rsi, r12 | 0x00420190 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420195 cmp r15d, 1 | | if (r15d != 1) { 0x00420199 jne 0x4201ca | goto label_2; | } 0x0042019b mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x004201a0 mov edx, 1 | 0x004201a5 lea rdi, [rsp + 0xc8] | 0x004201ad mov rsi, r12 | 0x004201b0 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x004201b5 lea rdi, [rsp + 0xc8] | 0x004201bd mov esi, dword [rsp + 0xc] | 0x004201c1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004201c5 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x004201ca cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x004201d2 je 0x420213 | 0x004201d4 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x004201dc mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x004201e4 dec rcx | rcx--; 0x004201e7 mov rdx, rcx | rdx = rcx; 0x004201ea shr rdx, 6 | rdx >>= 6; 0x004201ee mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x004201f2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x004201f6 jae 0x420213 | goto label_3; | } 0x004201f8 mov rdi, qword [rsp + 0x88] | 0x00420200 mov esi, dword [rsp + 0x94] | 0x00420207 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0042020e call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x00420213 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0042021b mov dword [rsp], 3 | *(rsp) = 3; 0x00420222 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0042022a test rax, rax | | if (rax != 0) { 0x0042022d je 0x420240 | 0x0042022f mov esi, dword [rax + 8] | 0x00420232 mov rdi, rsp | 0x00420235 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0042023a jmp 0x42024d | | } else { 0x00420240 mov rdi, rsp | 0x00420243 mov esi, 3 | 0x00420248 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0042024d mov rdi, r12 | 0x00420250 mov esi, 0x27 | 0x00420255 mov rdx, qword [rsp + 0x78] | 0x0042025a mov rcx, rsp | 0x0042025d call 0x4383b0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DateTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420262 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x00420267 mov rdi, r12 | 0x0042026a call 0x404000 | rax = strlen (r12); 0x0042026f mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00420274 mov rdi, rbp | 0x00420277 lea rsi, [rsp + 0x10] | 0x0042027c call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x00420281 mov r14d, eax | r14d = eax; 0x00420284 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0042028c je 0x420360 | 0x00420292 test r14d, r14d | | if (r14d != 0) { 0x00420295 je 0x420334 | 0x0042029b mov edi, 0x6d3df0 | 0x004202a0 mov esi, 0x48dcc6 | 0x004202a5 mov edx, 4 | 0x004202aa 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); 0x004202af mov esi, 0x48d80d | 0x004202b4 mov edx, 2 | 0x004202b9 mov rdi, rax | 0x004202bc call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004202c1 mov rdi, rax | rdi = rax; 0x004202c4 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004202c8 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004202cd mov esi, 0x48d63d | 0x004202d2 mov edx, 1 | 0x004202d7 mov rdi, rax | 0x004202da call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x004202df mov esi, 0x48dcdb | 0x004202e4 mov edx, 2 | 0x004202e9 mov rdi, rax | 0x004202ec call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x004202f1 mov esi, 0x48d80d | 0x004202f6 mov edx, 2 | 0x004202fb mov rdi, rax | 0x004202fe call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420303 mov rdi, rax | rdi = rax; 0x00420306 mov esi, r14d | esi = r14d; 0x00420309 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042030e mov esi, 0x48dae6 | 0x00420313 mov edx, 1 | 0x00420318 mov rdi, rax | 0x0042031b call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00420320 mov esi, 0x48daa9 | esi = "0 == rc"; 0x00420325 mov edi, 1 | edi = 1; 0x0042032a mov edx, 0xcc | edx = 0xcc; 0x0042032f call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00420334 mov dword [rsp], 3 | *(rsp) = 3; 0x0042033b mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420343 test rax, rax | | if (rax != 0) { 0x00420346 je 0x420406 | 0x0042034c mov esi, dword [rax + 8] | 0x0042034f mov rdi, rsp | 0x00420352 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00420357 jmp 0x420413 | | } else { 0x00420360 test r14d, r14d | | if (r14d != 0) { 0x00420363 jne 0x420736 | goto label_4; | } 0x00420369 mov edi, 0x6d3df0 | 0x0042036e mov esi, 0x48dcc6 | 0x00420373 mov edx, 4 | 0x00420378 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); 0x0042037d mov esi, 0x48d80d | 0x00420382 mov edx, 2 | 0x00420387 mov rdi, rax | 0x0042038a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0042038f mov rdi, rax | rdi = rax; 0x00420392 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420396 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042039b mov esi, 0x48d63d | 0x004203a0 mov edx, 1 | 0x004203a5 mov rdi, rax | 0x004203a8 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x004203ad mov esi, 0x48dcdb | 0x004203b2 mov edx, 2 | 0x004203b7 mov rdi, rax | 0x004203ba call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x004203bf mov esi, 0x48d80d | 0x004203c4 mov edx, 2 | 0x004203c9 mov rdi, rax | 0x004203cc call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004203d1 mov rdi, rax | rdi = rax; 0x004203d4 xor esi, esi | esi = 0; 0x004203d6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004203db mov esi, 0x48dae6 | 0x004203e0 mov edx, 1 | 0x004203e5 mov rdi, rax | 0x004203e8 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x004203ed mov esi, 0x48dcd6 | esi = "0 != rc"; 0x004203f2 mov edi, 1 | edi = 1; 0x004203f7 mov edx, 0xd4 | edx = 0xd4; 0x004203fc call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00420401 jmp 0x420736 | goto label_4; | } 0x00420406 mov rdi, rsp | 0x00420409 mov esi, 3 | 0x0042040e call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420413 mov rdi, r12 | 0x00420416 mov esi, 0x27 | 0x0042041b mov rdx, qword [rsp + 0x78] | 0x00420420 mov rcx, rsp | 0x00420423 call 0x4383b0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DateTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420428 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0042042d mov rdi, r12 | 0x00420430 call 0x404000 | rax = strlen (r12); 0x00420435 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0042043a lea rdi, [rsp + 0xc8] | 0x00420442 lea rsi, [rsp + 0x10] | 0x00420447 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x0042044c mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00420454 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00420458 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x00420460 je 0x4204fe | 0x00420466 mov edi, 0x6d3df0 | 0x0042046b mov esi, 0x48dcc6 | 0x00420470 mov edx, 4 | 0x00420475 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); 0x0042047a mov esi, 0x48d80d | 0x0042047f mov edx, 2 | 0x00420484 mov rdi, rax | 0x00420487 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0042048c mov rdi, rax | rdi = rax; 0x0042048f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420493 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420498 mov esi, 0x48d63d | 0x0042049d mov edx, 1 | 0x004204a2 mov rdi, rax | 0x004204a5 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x004204aa mov esi, 0x4aa3d2 | 0x004204af mov edx, 1 | 0x004204b4 mov rdi, rax | 0x004204b7 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x004204bc mov esi, 0x48d80d | 0x004204c1 mov edx, 2 | 0x004204c6 mov rdi, rax | 0x004204c9 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004204ce mov rdi, rax | rdi = rax; 0x004204d1 mov esi, ebx | esi = ebx; 0x004204d3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004204d8 mov esi, 0x48dae6 | 0x004204dd mov edx, 1 | 0x004204e2 mov rdi, rax | 0x004204e5 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x004204ea mov esi, 0x48dccb | esi = "exp.good()"; 0x004204ef mov edi, 1 | edi = 1; 0x004204f4 mov edx, 0xcf | edx = 0xcf; 0x004204f9 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x004204fe mov rdi, r12 | 0x00420501 lea rsi, [rsp + 0x1f0] | 0x00420509 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0042050e lea rdi, [rsp + 0x10] | 0x00420513 lea rsi, [rsp + 0xd0] | 0x0042051b call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x00420520 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x00420525 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x0042052a jne 0x420570 | 0x0042052c test rdx, rdx | | if (rdx != 0) { 0x0042052f je 0x42057c | 0x00420531 cmp qword [rsp + 0x30], 0x17 | 0x00420537 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x0042053c je 0x420543 | 0x0042053e mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x00420543 cmp qword [rsp + 0x60], 0x17 | 0x00420549 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x0042054c je 0x420553 | 0x0042054e mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x00420553 call 0x404130 | eax = bcmp (); 0x00420558 test eax, eax | 0x0042055a sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0042055e cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x00420564 jne 0x420590 | 0x00420566 jmp 0x4205a0 | | } else { 0x00420570 xor ebp, ebp | ebp = 0; 0x00420572 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00420578 jne 0x420590 | goto label_5; | } 0x0042057a jmp 0x4205a0 | | } else { 0x0042057c mov bpl, 1 | bpl = 1; 0x0042057f cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x00420585 je 0x4205a0 | goto label_6; | } 0x00420587 nop word [rax + rax] | | label_5: 0x00420590 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00420595 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0042059a mov rax, qword [rdi] | rax = *(rdi); 0x0042059d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x004205a0 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x004205a6 je 0x4205b8 | 0x004205a8 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x004205ad mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x004205b2 mov rax, qword [rdi] | rax = *(rdi); 0x004205b5 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004205b8 test bpl, bpl | | if (bpl == 0) { 0x004205bb jne 0x420736 | 0x004205c1 mov edi, 0x6d3df0 | 0x004205c6 mov esi, 0x48dcc6 | 0x004205cb mov edx, 4 | 0x004205d0 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); 0x004205d5 mov esi, 0x48d80d | 0x004205da mov edx, 2 | 0x004205df mov rdi, rax | 0x004205e2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004205e7 mov rdi, rax | rdi = rax; 0x004205ea mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004205ee call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004205f3 mov esi, 0x48d63d | 0x004205f8 mov edx, 1 | 0x004205fd mov rdi, rax | 0x00420600 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00420605 mov esi, 0x4aa3d2 | 0x0042060a mov edx, 1 | 0x0042060f mov rdi, rax | 0x00420612 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x00420617 mov esi, 0x48d80d | 0x0042061c mov edx, 2 | 0x00420621 mov rdi, rax | 0x00420624 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420629 mov rdi, rax | rdi = rax; 0x0042062c mov esi, ebx | esi = ebx; 0x0042062e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420633 mov esi, 0x48d63d | 0x00420638 mov edx, 1 | 0x0042063d mov rdi, rax | 0x00420640 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00420645 mov esi, 0x48d5f7 | 0x0042064a mov edx, 8 | 0x0042064f mov rdi, rax | 0x00420652 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x00420657 mov esi, 0x48d80d | 0x0042065c mov edx, 2 | 0x00420661 mov rdi, rax | 0x00420664 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420669 mov rbx, rax | rbx = rax; 0x0042066c mov rdi, r12 | 0x0042066f lea rsi, [rsp + 0x1f0] | 0x00420677 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0042067c mov rdi, rbx | 0x0042067f mov rsi, r12 | 0x00420682 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x00420687 mov esi, 0x48d63d | 0x0042068c mov edx, 1 | 0x00420691 mov rdi, rax | 0x00420694 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00420699 mov esi, 0x48d7cd | 0x0042069e mov edx, 9 | 0x004206a3 mov rdi, rax | 0x004206a6 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x004206ab mov esi, 0x48d80d | 0x004206b0 mov edx, 2 | 0x004206b5 mov rdi, rax | 0x004206b8 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004206bd mov rbx, rax | rbx = rax; 0x004206c0 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x004206c5 mov rdi, rbp | 0x004206c8 lea rsi, [rsp + 0xd0] | 0x004206d0 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x004206d5 mov rdi, rbx | 0x004206d8 mov rsi, rbp | 0x004206db call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x004206e0 mov esi, 0x48dae6 | 0x004206e5 mov edx, 1 | 0x004206ea mov rdi, rax | 0x004206ed call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x004206f2 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x004206f8 je 0x42070a | 0x004206fa mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x004206ff mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00420704 mov rax, qword [rdi] | rax = *(rdi); 0x00420707 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042070a cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00420710 je 0x420722 | 0x00420712 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00420717 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0042071c mov rax, qword [rdi] | rax = *(rdi); 0x0042071f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00420722 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x00420727 mov edi, 1 | edi = 1; 0x0042072c mov edx, 0xd1 | edx = 0xd1; 0x00420731 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x00420736 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0042073a je 0x420750 | 0x0042073c lea rdi, [rsp + 0x88] | 0x00420744 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x00420749 jmp 0x42075f | | } else { 0x00420750 lea rdi, [rsp + 0x88] | 0x00420758 xor esi, esi | esi = 0; 0x0042075a call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0042075f lea rdi, [rsp + 0xa0] | 0x00420767 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0042076c mov esi, 0x48dda0 | esi = 0x48dda0; 0x00420771 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x00420779 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0042077e mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0042078a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x00420793 je 0x4207ab | 0x00420795 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0042079d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x004207a5 mov rax, qword [rdi] | rax = *(rdi); 0x004207a8 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004207ab mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x004207b7 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x004207bf call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x004207c4 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x004207cc call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x004207d1 mov esi, 0x48dda0 | esi = 0x48dda0; 0x004207d6 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x004207de call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x004207e3 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x004207ef cmp qword [rsp + 0x250], 0x17 | 0x004207f8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x00420800 je 0x41ff70 | | } 0x00420806 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0042080e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x00420816 mov rax, qword [rdi] | rax = *(rdi); 0x00420819 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0042081c jmp 0x41ff70 | goto label_0; | label_1: 0x00420821 add rsp, 0x308 | 0x00420828 pop rbx | 0x00420829 pop r12 | 0x0042082b pop r13 | 0x0042082d pop r14 | 0x0042082f pop r15 | 0x00420831 pop rbp | 0x00420832 ret | return rax; | }