; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x420a90 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.TimeTz__int__int__int__int__BloombergLP::bdlt::TimeTz_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_TimeTz_int_int_int_int_BloombergLP::bdlt::TimeTz_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::TimeTz const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x00420a90 push rbp | 0x00420a91 push r15 | 0x00420a93 push r14 | 0x00420a95 push r13 | 0x00420a97 push r12 | 0x00420a99 push rbx | 0x00420a9a sub rsp, 0x308 | 0x00420aa1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x00420aa9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x00420aae mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x00420ab2 mov r15d, esi | r15d = esi; 0x00420ab5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x00420ab9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x00420abe lea eax, [rdx + 1] | eax = rdx + 1; 0x00420ac1 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x00420ac5 xor ebx, ebx | ebx = 0; 0x00420ac7 mov r13b, 1 | r13b = 1; 0x00420aca lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x00420acf jmp 0x420b16 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x00420ae0 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x00420aec mov rdi, rbx | rdi = rbx; 0x00420aef call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00420af4 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420afc call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00420b01 mov ebx, 1 | ebx = 1; 0x00420b06 test r13b, 1 | 0x00420b0a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x00420b10 je 0x421391 | goto label_1; | } 0x00420b16 mov rax, qword [rip + 0x2b3443] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420b1d test rax, rax | | if (rax == 0) { 0x00420b20 jne 0x420b27 | 0x00420b22 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420b27 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x00420b2f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x00420b3b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x00420b43 mov rdi, rbp | 0x00420b46 mov esi, 0x10 | 0x00420b4b lea rdx, [rsp + 0xc8] | 0x00420b53 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x00420b58 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x00420b64 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x00420b70 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420b78 mov rsi, rbp | rsi = rbp; 0x00420b7b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420b80 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x00420b8c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00420b97 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x00420ba3 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; 0x00420baf mov rax, qword [rip + 0x2b33aa] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420bb6 test rax, rax | | if (rax == 0) { 0x00420bb9 jne 0x420bc0 | 0x00420bbb call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420bc0 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00420bc8 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00420bd4 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x00420bdc mov rdi, rbp | 0x00420bdf mov esi, 0x10 | 0x00420be4 lea rdx, [rsp + 0x88] | 0x00420bec call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x00420bf1 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x00420bfd mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x00420c09 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x00420c11 mov rsi, rbp | rsi = rbp; 0x00420c14 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420c19 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x00420c25 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x00420c30 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x00420c3c 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; 0x00420c48 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x00420c50 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x00420c58 mov edx, r15d | edx = r15d; 0x00420c5b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x00420c60 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x00420c65 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420c97 cmp r15d, 1 | | if (r15d != 1) { 0x00420c9b jne 0x420d3a | goto label_2; | } 0x00420ca1 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x00420ca6 mov edx, 1 | 0x00420cab lea rdi, [rsp + 0xc8] | 0x00420cb3 mov rsi, r12 | 0x00420cb6 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420cbb jmp 0x420d3a | | } else { 0x00420cc0 lea rdi, [rsp + 0x88] | 0x00420cc8 xor esi, esi | 0x00420cca call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x00420ccf cmp r15d, 1 | | if (r15d == 1) { 0x00420cd3 jne 0x420ceb | 0x00420cd5 lea rdi, [rsp + 0xc8] | 0x00420cdd mov rsi, qword [rsp + 0x70] | 0x00420ce2 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00420ce6 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x00420ceb mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x00420cf0 mov edx, 1 | 0x00420cf5 lea rdi, [rsp + 0xc8] | 0x00420cfd mov rsi, r12 | 0x00420d00 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420d05 cmp r15d, 1 | | if (r15d != 1) { 0x00420d09 jne 0x420d3a | goto label_2; | } 0x00420d0b mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x00420d10 mov edx, 1 | 0x00420d15 lea rdi, [rsp + 0xc8] | 0x00420d1d mov rsi, r12 | 0x00420d20 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420d25 lea rdi, [rsp + 0xc8] | 0x00420d2d mov esi, dword [rsp + 0xc] | 0x00420d31 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00420d35 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x00420d3a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x00420d42 je 0x420d83 | 0x00420d44 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x00420d4c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x00420d54 dec rcx | rcx--; 0x00420d57 mov rdx, rcx | rdx = rcx; 0x00420d5a shr rdx, 6 | rdx >>= 6; 0x00420d5e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x00420d62 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x00420d66 jae 0x420d83 | goto label_3; | } 0x00420d68 mov rdi, qword [rsp + 0x88] | 0x00420d70 mov esi, dword [rsp + 0x94] | 0x00420d77 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x00420d7e call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x00420d83 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x00420d8b mov dword [rsp], 3 | *(rsp) = 3; 0x00420d92 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420d9a test rax, rax | | if (rax != 0) { 0x00420d9d je 0x420db0 | 0x00420d9f mov esi, dword [rax + 8] | 0x00420da2 mov rdi, rsp | 0x00420da5 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00420daa jmp 0x420dbd | | } else { 0x00420db0 mov rdi, rsp | 0x00420db3 mov esi, 3 | 0x00420db8 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420dbd mov rdi, r12 | 0x00420dc0 mov esi, 0x27 | 0x00420dc5 mov rdx, qword [rsp + 0x78] | 0x00420dca mov rcx, rsp | 0x00420dcd call 0x438680 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::TimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420dd2 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x00420dd7 mov rdi, r12 | 0x00420dda call 0x404000 | rax = strlen (r12); 0x00420ddf mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00420de4 mov rdi, rbp | 0x00420de7 lea rsi, [rsp + 0x10] | 0x00420dec call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x00420df1 mov r14d, eax | r14d = eax; 0x00420df4 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x00420dfc je 0x420ed0 | 0x00420e02 test r14d, r14d | | if (r14d != 0) { 0x00420e05 je 0x420ea4 | 0x00420e0b mov edi, 0x6d3df0 | 0x00420e10 mov esi, 0x48dcc6 | 0x00420e15 mov edx, 4 | 0x00420e1a 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); 0x00420e1f mov esi, 0x48d80d | 0x00420e24 mov edx, 2 | 0x00420e29 mov rdi, rax | 0x00420e2c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420e31 mov rdi, rax | rdi = rax; 0x00420e34 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420e38 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420e3d mov esi, 0x48d63d | 0x00420e42 mov edx, 1 | 0x00420e47 mov rdi, rax | 0x00420e4a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00420e4f mov esi, 0x48dcdb | 0x00420e54 mov edx, 2 | 0x00420e59 mov rdi, rax | 0x00420e5c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x00420e61 mov esi, 0x48d80d | 0x00420e66 mov edx, 2 | 0x00420e6b mov rdi, rax | 0x00420e6e call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420e73 mov rdi, rax | rdi = rax; 0x00420e76 mov esi, r14d | esi = r14d; 0x00420e79 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420e7e mov esi, 0x48dae6 | 0x00420e83 mov edx, 1 | 0x00420e88 mov rdi, rax | 0x00420e8b call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00420e90 mov esi, 0x48daa9 | esi = "0 == rc"; 0x00420e95 mov edi, 1 | edi = 1; 0x00420e9a mov edx, 0xcc | edx = 0xcc; 0x00420e9f call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00420ea4 mov dword [rsp], 3 | *(rsp) = 3; 0x00420eab mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420eb3 test rax, rax | | if (rax != 0) { 0x00420eb6 je 0x420f76 | 0x00420ebc mov esi, dword [rax + 8] | 0x00420ebf mov rdi, rsp | 0x00420ec2 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00420ec7 jmp 0x420f83 | | } else { 0x00420ed0 test r14d, r14d | | if (r14d != 0) { 0x00420ed3 jne 0x4212a6 | goto label_4; | } 0x00420ed9 mov edi, 0x6d3df0 | 0x00420ede mov esi, 0x48dcc6 | 0x00420ee3 mov edx, 4 | 0x00420ee8 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); 0x00420eed mov esi, 0x48d80d | 0x00420ef2 mov edx, 2 | 0x00420ef7 mov rdi, rax | 0x00420efa call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420eff mov rdi, rax | rdi = rax; 0x00420f02 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420f06 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420f0b mov esi, 0x48d63d | 0x00420f10 mov edx, 1 | 0x00420f15 mov rdi, rax | 0x00420f18 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00420f1d mov esi, 0x48dcdb | 0x00420f22 mov edx, 2 | 0x00420f27 mov rdi, rax | 0x00420f2a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x00420f2f mov esi, 0x48d80d | 0x00420f34 mov edx, 2 | 0x00420f39 mov rdi, rax | 0x00420f3c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420f41 mov rdi, rax | rdi = rax; 0x00420f44 xor esi, esi | esi = 0; 0x00420f46 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420f4b mov esi, 0x48dae6 | 0x00420f50 mov edx, 1 | 0x00420f55 mov rdi, rax | 0x00420f58 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00420f5d mov esi, 0x48dcd6 | esi = "0 != rc"; 0x00420f62 mov edi, 1 | edi = 1; 0x00420f67 mov edx, 0xd4 | edx = 0xd4; 0x00420f6c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00420f71 jmp 0x4212a6 | goto label_4; | } 0x00420f76 mov rdi, rsp | 0x00420f79 mov esi, 3 | 0x00420f7e call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420f83 mov rdi, r12 | 0x00420f86 mov esi, 0x27 | 0x00420f8b mov rdx, qword [rsp + 0x78] | 0x00420f90 mov rcx, rsp | 0x00420f93 call 0x438680 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::TimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420f98 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x00420f9d mov rdi, r12 | 0x00420fa0 call 0x404000 | rax = strlen (r12); 0x00420fa5 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x00420faa lea rdi, [rsp + 0xc8] | 0x00420fb2 lea rsi, [rsp + 0x10] | 0x00420fb7 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x00420fbc mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00420fc4 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00420fc8 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x00420fd0 je 0x42106e | 0x00420fd6 mov edi, 0x6d3df0 | 0x00420fdb mov esi, 0x48dcc6 | 0x00420fe0 mov edx, 4 | 0x00420fe5 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); 0x00420fea mov esi, 0x48d80d | 0x00420fef mov edx, 2 | 0x00420ff4 mov rdi, rax | 0x00420ff7 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00420ffc mov rdi, rax | rdi = rax; 0x00420fff mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421003 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421008 mov esi, 0x48d63d | 0x0042100d mov edx, 1 | 0x00421012 mov rdi, rax | 0x00421015 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0042101a mov esi, 0x4aa3d2 | 0x0042101f mov edx, 1 | 0x00421024 mov rdi, rax | 0x00421027 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0042102c mov esi, 0x48d80d | 0x00421031 mov edx, 2 | 0x00421036 mov rdi, rax | 0x00421039 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0042103e mov rdi, rax | rdi = rax; 0x00421041 mov esi, ebx | esi = ebx; 0x00421043 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421048 mov esi, 0x48dae6 | 0x0042104d mov edx, 1 | 0x00421052 mov rdi, rax | 0x00421055 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0042105a mov esi, 0x48dccb | esi = "exp.good()"; 0x0042105f mov edi, 1 | edi = 1; 0x00421064 mov edx, 0xcf | edx = 0xcf; 0x00421069 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042106e mov rdi, r12 | 0x00421071 lea rsi, [rsp + 0x1f0] | 0x00421079 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0042107e lea rdi, [rsp + 0x10] | 0x00421083 lea rsi, [rsp + 0xd0] | 0x0042108b call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x00421090 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x00421095 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x0042109a jne 0x4210e0 | 0x0042109c test rdx, rdx | | if (rdx != 0) { 0x0042109f je 0x4210ec | 0x004210a1 cmp qword [rsp + 0x30], 0x17 | 0x004210a7 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x004210ac je 0x4210b3 | 0x004210ae mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x004210b3 cmp qword [rsp + 0x60], 0x17 | 0x004210b9 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x004210bc je 0x4210c3 | 0x004210be mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x004210c3 call 0x404130 | eax = bcmp (); 0x004210c8 test eax, eax | 0x004210ca sete bpl | bpl = (eax == 0) ? 1 : 0; 0x004210ce cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x004210d4 jne 0x421100 | 0x004210d6 jmp 0x421110 | | } else { 0x004210e0 xor ebp, ebp | ebp = 0; 0x004210e2 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x004210e8 jne 0x421100 | goto label_5; | } 0x004210ea jmp 0x421110 | | } else { 0x004210ec mov bpl, 1 | bpl = 1; 0x004210ef cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x004210f5 je 0x421110 | goto label_6; | } 0x004210f7 nop word [rax + rax] | | label_5: 0x00421100 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00421105 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0042110a mov rax, qword [rdi] | rax = *(rdi); 0x0042110d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x00421110 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421116 je 0x421128 | 0x00421118 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0042111d mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00421122 mov rax, qword [rdi] | rax = *(rdi); 0x00421125 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421128 test bpl, bpl | | if (bpl == 0) { 0x0042112b jne 0x4212a6 | 0x00421131 mov edi, 0x6d3df0 | 0x00421136 mov esi, 0x48dcc6 | 0x0042113b mov edx, 4 | 0x00421140 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); 0x00421145 mov esi, 0x48d80d | 0x0042114a mov edx, 2 | 0x0042114f mov rdi, rax | 0x00421152 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421157 mov rdi, rax | rdi = rax; 0x0042115a mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0042115e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421163 mov esi, 0x48d63d | 0x00421168 mov edx, 1 | 0x0042116d mov rdi, rax | 0x00421170 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421175 mov esi, 0x4aa3d2 | 0x0042117a mov edx, 1 | 0x0042117f mov rdi, rax | 0x00421182 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x00421187 mov esi, 0x48d80d | 0x0042118c mov edx, 2 | 0x00421191 mov rdi, rax | 0x00421194 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x00421199 mov rdi, rax | rdi = rax; 0x0042119c mov esi, ebx | esi = ebx; 0x0042119e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004211a3 mov esi, 0x48d63d | 0x004211a8 mov edx, 1 | 0x004211ad mov rdi, rax | 0x004211b0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x004211b5 mov esi, 0x48d5f7 | 0x004211ba mov edx, 8 | 0x004211bf mov rdi, rax | 0x004211c2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x004211c7 mov esi, 0x48d80d | 0x004211cc mov edx, 2 | 0x004211d1 mov rdi, rax | 0x004211d4 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x004211d9 mov rbx, rax | rbx = rax; 0x004211dc mov rdi, r12 | 0x004211df lea rsi, [rsp + 0x1f0] | 0x004211e7 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x004211ec mov rdi, rbx | 0x004211ef mov rsi, r12 | 0x004211f2 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x004211f7 mov esi, 0x48d63d | 0x004211fc mov edx, 1 | 0x00421201 mov rdi, rax | 0x00421204 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x00421209 mov esi, 0x48d7cd | 0x0042120e mov edx, 9 | 0x00421213 mov rdi, rax | 0x00421216 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x0042121b mov esi, 0x48d80d | 0x00421220 mov edx, 2 | 0x00421225 mov rdi, rax | 0x00421228 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0042122d mov rbx, rax | rbx = rax; 0x00421230 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x00421235 mov rdi, rbp | 0x00421238 lea rsi, [rsp + 0xd0] | 0x00421240 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00421245 mov rdi, rbx | 0x00421248 mov rsi, rbp | 0x0042124b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x00421250 mov esi, 0x48dae6 | 0x00421255 mov edx, 1 | 0x0042125a mov rdi, rax | 0x0042125d call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x00421262 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421268 je 0x42127a | 0x0042126a mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042126f mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421274 mov rax, qword [rdi] | rax = *(rdi); 0x00421277 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042127a cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421280 je 0x421292 | 0x00421282 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421287 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0042128c mov rax, qword [rdi] | rax = *(rdi); 0x0042128f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421292 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x00421297 mov edi, 1 | edi = 1; 0x0042129c mov edx, 0xd1 | edx = 0xd1; 0x004212a1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x004212a6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x004212aa je 0x4212c0 | 0x004212ac lea rdi, [rsp + 0x88] | 0x004212b4 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x004212b9 jmp 0x4212cf | | } else { 0x004212c0 lea rdi, [rsp + 0x88] | 0x004212c8 xor esi, esi | esi = 0; 0x004212ca call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x004212cf lea rdi, [rsp + 0xa0] | 0x004212d7 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x004212dc mov esi, 0x48dda0 | esi = 0x48dda0; 0x004212e1 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x004212e9 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x004212ee mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004212fa cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x00421303 je 0x42131b | 0x00421305 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0042130d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x00421315 mov rax, qword [rdi] | rax = *(rdi); 0x00421318 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042131b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x00421327 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0042132f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00421334 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0042133c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00421341 mov esi, 0x48dda0 | esi = 0x48dda0; 0x00421346 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0042134e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00421353 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x0042135f cmp qword [rsp + 0x250], 0x17 | 0x00421368 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x00421370 je 0x420ae0 | | } 0x00421376 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0042137e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x00421386 mov rax, qword [rdi] | rax = *(rdi); 0x00421389 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0042138c jmp 0x420ae0 | goto label_0; | label_1: 0x00421391 add rsp, 0x308 | 0x00421398 pop rbx | 0x00421399 pop r12 | 0x0042139b pop r13 | 0x0042139d pop r14 | 0x0042139f pop r15 | 0x004213a1 pop rbp | 0x004213a2 ret | return rax; | }