; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x420ad0 */ | #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; | 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::TimeTz const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x00420ad0 push rbp | 0x00420ad1 push r15 | 0x00420ad3 push r14 | 0x00420ad5 push r13 | 0x00420ad7 push r12 | 0x00420ad9 push rbx | 0x00420ada sub rsp, 0x308 | 0x00420ae1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x00420ae9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x00420aee mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x00420af2 mov r15d, esi | r15d = esi; 0x00420af5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x00420af9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x00420afe lea eax, [rdx + 1] | eax = rdx + 1; 0x00420b01 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x00420b05 xor ebx, ebx | ebx = 0; 0x00420b07 mov r13b, 1 | r13b = 1; 0x00420b0a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x00420b0f jmp 0x420b56 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x00420b20 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x00420b2c mov rdi, rbx | rdi = rbx; 0x00420b2f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00420b34 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420b3c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00420b41 mov ebx, 1 | ebx = 1; 0x00420b46 test r13b, 1 | 0x00420b4a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x00420b50 je 0x4213e1 | goto label_1; | } 0x00420b56 mov rax, qword [rip + 0x2b3403] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420b5d test rax, rax | | if (rax == 0) { 0x00420b60 jne 0x420b67 | 0x00420b62 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420b67 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x00420b6f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x00420b7b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x00420b83 mov rdi, rbp | 0x00420b86 mov esi, 0x10 | 0x00420b8b lea rdx, [rsp + 0xc8] | 0x00420b93 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x00420b98 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x00420ba4 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x00420bb0 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420bb8 mov rsi, rbp | rsi = rbp; 0x00420bbb call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420bc0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x00420bcc mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00420bd7 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x00420be3 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; 0x00420bef mov rax, qword [rip + 0x2b336a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420bf6 test rax, rax | | if (rax == 0) { 0x00420bf9 jne 0x420c00 | 0x00420bfb call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420c00 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00420c08 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00420c14 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x00420c1c mov rdi, rbp | 0x00420c1f mov esi, 0x10 | 0x00420c24 lea rdx, [rsp + 0x88] | 0x00420c2c call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x00420c31 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x00420c3d mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x00420c49 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x00420c51 mov rsi, rbp | rsi = rbp; 0x00420c54 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420c59 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x00420c65 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x00420c70 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x00420c7c 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; 0x00420c88 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x00420c90 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x00420c98 mov edx, r15d | edx = r15d; 0x00420c9b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x00420ca0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x00420ca5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420cd7 cmp r15d, 1 | | if (r15d != 1) { 0x00420cdb jne 0x420d7a | goto label_2; | } 0x00420ce1 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x00420ce6 mov edx, 1 | 0x00420ceb lea rdi, [rsp + 0xc8] | 0x00420cf3 mov rsi, r12 | 0x00420cf6 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420cfb jmp 0x420d7a | | } else { 0x00420d00 lea rdi, [rsp + 0x88] | 0x00420d08 xor esi, esi | 0x00420d0a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x00420d0f cmp r15d, 1 | | if (r15d == 1) { 0x00420d13 jne 0x420d2b | 0x00420d15 lea rdi, [rsp + 0xc8] | 0x00420d1d mov rsi, qword [rsp + 0x70] | 0x00420d22 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00420d26 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x00420d2b mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x00420d30 mov edx, 1 | 0x00420d35 lea rdi, [rsp + 0xc8] | 0x00420d3d mov rsi, r12 | 0x00420d40 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420d45 cmp r15d, 1 | | if (r15d != 1) { 0x00420d49 jne 0x420d7a | goto label_2; | } 0x00420d4b mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x00420d50 mov edx, 1 | 0x00420d55 lea rdi, [rsp + 0xc8] | 0x00420d5d mov rsi, r12 | 0x00420d60 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420d65 lea rdi, [rsp + 0xc8] | 0x00420d6d mov esi, dword [rsp + 0xc] | 0x00420d71 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x00420d75 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x00420d7a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x00420d82 je 0x420dc3 | 0x00420d84 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x00420d8c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x00420d94 dec rcx | rcx--; 0x00420d97 mov rdx, rcx | rdx = rcx; 0x00420d9a shr rdx, 6 | rdx >>= 6; 0x00420d9e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x00420da2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x00420da6 jae 0x420dc3 | goto label_3; | } 0x00420da8 mov rdi, qword [rsp + 0x88] | 0x00420db0 mov esi, dword [rsp + 0x94] | 0x00420db7 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x00420dbe call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x00420dc3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x00420dcb mov dword [rsp], 3 | *(rsp) = 3; 0x00420dd2 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420dda test rax, rax | | if (rax != 0) { 0x00420ddd je 0x420df0 | 0x00420ddf mov esi, dword [rax + 8] | 0x00420de2 mov rdi, rsp | 0x00420de5 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00420dea jmp 0x420dfd | | } else { 0x00420df0 mov rdi, rsp | 0x00420df3 mov esi, 3 | 0x00420df8 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420dfd mov rdi, r12 | 0x00420e00 mov esi, 0x27 | 0x00420e05 mov rdx, qword [rsp + 0x78] | 0x00420e0a mov rcx, rsp | 0x00420e0d call 0x437e40 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::TimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420e12 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x00420e17 mov rdi, r12 | 0x00420e1a call 0x404000 | rax = strlen (r12); 0x00420e1f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x00420e24 mov rdi, rbp | 0x00420e27 lea rsi, [rsp + 0x40] | 0x00420e2c call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x00420e31 mov r14d, eax | r14d = eax; 0x00420e34 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x00420e3c je 0x420f20 | 0x00420e42 test r14d, r14d | 0x00420e45 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x00420e4a je 0x420ee9 | 0x00420e50 mov edi, 0x6d3df0 | 0x00420e55 mov esi, 0x48d32c | 0x00420e5a mov edx, 4 | 0x00420e5f 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); 0x00420e64 mov esi, 0x48ce6f | 0x00420e69 mov edx, 2 | 0x00420e6e mov rdi, rax | 0x00420e71 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420e76 mov rdi, rax | rdi = rax; 0x00420e79 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420e7d call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420e82 mov esi, 0x48cc9f | 0x00420e87 mov edx, 1 | 0x00420e8c mov rdi, rax | 0x00420e8f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00420e94 mov esi, 0x48d341 | 0x00420e99 mov edx, 2 | 0x00420e9e mov rdi, rax | 0x00420ea1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x00420ea6 mov esi, 0x48ce6f | 0x00420eab mov edx, 2 | 0x00420eb0 mov rdi, rax | 0x00420eb3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420eb8 mov rdi, rax | rdi = rax; 0x00420ebb mov esi, r14d | esi = r14d; 0x00420ebe call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420ec3 mov esi, 0x48d148 | 0x00420ec8 mov edx, 1 | 0x00420ecd mov rdi, rax | 0x00420ed0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00420ed5 mov esi, 0x48d10b | esi = "0 == rc"; 0x00420eda mov edi, 1 | edi = 1; 0x00420edf mov edx, 0xcc | edx = 0xcc; 0x00420ee4 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00420ee9 mov dword [rsp], 3 | *(rsp) = 3; 0x00420ef0 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420ef8 test rax, rax | | if (rax != 0) { 0x00420efb je 0x420fc6 | 0x00420f01 mov esi, dword [rax + 8] | 0x00420f04 mov rdi, rsp | 0x00420f07 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x00420f0c jmp 0x420fd3 | | } else { 0x00420f20 test r14d, r14d | | if (r14d != 0) { 0x00420f23 jne 0x4212f6 | goto label_4; | } 0x00420f29 mov edi, 0x6d3df0 | 0x00420f2e mov esi, 0x48d32c | 0x00420f33 mov edx, 4 | 0x00420f38 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); 0x00420f3d mov esi, 0x48ce6f | 0x00420f42 mov edx, 2 | 0x00420f47 mov rdi, rax | 0x00420f4a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420f4f mov rdi, rax | rdi = rax; 0x00420f52 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420f56 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420f5b mov esi, 0x48cc9f | 0x00420f60 mov edx, 1 | 0x00420f65 mov rdi, rax | 0x00420f68 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00420f6d mov esi, 0x48d341 | 0x00420f72 mov edx, 2 | 0x00420f77 mov rdi, rax | 0x00420f7a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x00420f7f mov esi, 0x48ce6f | 0x00420f84 mov edx, 2 | 0x00420f89 mov rdi, rax | 0x00420f8c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420f91 mov rdi, rax | rdi = rax; 0x00420f94 xor esi, esi | esi = 0; 0x00420f96 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420f9b mov esi, 0x48d148 | 0x00420fa0 mov edx, 1 | 0x00420fa5 mov rdi, rax | 0x00420fa8 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00420fad mov esi, 0x48d33c | esi = "0 != rc"; 0x00420fb2 mov edi, 1 | edi = 1; 0x00420fb7 mov edx, 0xd4 | edx = 0xd4; 0x00420fbc call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00420fc1 jmp 0x4212f6 | goto label_4; | } 0x00420fc6 mov rdi, rsp | 0x00420fc9 mov esi, 3 | 0x00420fce call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420fd3 mov rdi, r12 | 0x00420fd6 mov esi, 0x27 | 0x00420fdb mov rdx, qword [rsp + 0x78] | 0x00420fe0 mov rcx, rsp | 0x00420fe3 call 0x437e40 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::TimeTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420fe8 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x00420fed mov rdi, r12 | 0x00420ff0 call 0x404000 | rax = strlen (r12); 0x00420ff5 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x00420ffa lea rdi, [rsp + 0xc8] | 0x00421002 mov rsi, rbp | 0x00421005 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x0042100a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00421012 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00421016 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0042101e je 0x4210bc | 0x00421024 mov edi, 0x6d3df0 | 0x00421029 mov esi, 0x48d32c | 0x0042102e mov edx, 4 | 0x00421033 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); 0x00421038 mov esi, 0x48ce6f | 0x0042103d mov edx, 2 | 0x00421042 mov rdi, rax | 0x00421045 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042104a mov rdi, rax | rdi = rax; 0x0042104d mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00421051 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421056 mov esi, 0x48cc9f | 0x0042105b mov edx, 1 | 0x00421060 mov rdi, rax | 0x00421063 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00421068 mov esi, 0x4a9942 | 0x0042106d mov edx, 1 | 0x00421072 mov rdi, rax | 0x00421075 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0042107a mov esi, 0x48ce6f | 0x0042107f mov edx, 2 | 0x00421084 mov rdi, rax | 0x00421087 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042108c mov rdi, rax | rdi = rax; 0x0042108f mov esi, ebx | esi = ebx; 0x00421091 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00421096 mov esi, 0x48d148 | 0x0042109b mov edx, 1 | 0x004210a0 mov rdi, rax | 0x004210a3 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x004210a8 mov esi, 0x48d331 | esi = "exp.good()"; 0x004210ad mov edi, 1 | edi = 1; 0x004210b2 mov edx, 0xcf | edx = 0xcf; 0x004210b7 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x004210bc mov rdi, r12 | 0x004210bf lea rsi, [rsp + 0x1f0] | 0x004210c7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x004210cc mov rdi, rbp | 0x004210cf lea rsi, [rsp + 0xd0] | 0x004210d7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x004210dc mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x004210e1 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x004210e6 jne 0x421130 | 0x004210e8 test rdx, rdx | | if (rdx != 0) { 0x004210eb je 0x42113c | 0x004210ed cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x004210f3 je 0x4210fa | 0x004210f5 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x004210fa cmp qword [rsp + 0x30], 0x17 | 0x00421100 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x00421103 je 0x42110a | 0x00421105 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x0042110a mov rsi, rbp | rsi = rbp; 0x0042110d call 0x404130 | eax = bcmp (); 0x00421112 test eax, eax | 0x00421114 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x00421118 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x0042111e jne 0x421150 | 0x00421120 jmp 0x421160 | | } else { 0x00421130 xor ebp, ebp | ebp = 0; 0x00421132 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00421138 jne 0x421150 | goto label_5; | } 0x0042113a jmp 0x421160 | | } else { 0x0042113c mov bpl, 1 | bpl = 1; 0x0042113f cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x00421145 je 0x421160 | goto label_6; | } 0x00421147 nop word [rax + rax] | | label_5: 0x00421150 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x00421155 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0042115a mov rax, qword [rdi] | rax = *(rdi); 0x0042115d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x00421160 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00421166 je 0x421178 | 0x00421168 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042116d mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x00421172 mov rax, qword [rdi] | rax = *(rdi); 0x00421175 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00421178 test bpl, bpl | 0x0042117b lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x00421180 jne 0x4212f6 | 0x00421186 mov edi, 0x6d3df0 | 0x0042118b mov esi, 0x48d32c | 0x00421190 mov edx, 4 | 0x00421195 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); 0x0042119a mov esi, 0x48ce6f | 0x0042119f mov edx, 2 | 0x004211a4 mov rdi, rax | 0x004211a7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004211ac mov rdi, rax | rdi = rax; 0x004211af mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004211b3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004211b8 mov esi, 0x48cc9f | 0x004211bd mov edx, 1 | 0x004211c2 mov rdi, rax | 0x004211c5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x004211ca mov esi, 0x4a9942 | 0x004211cf mov edx, 1 | 0x004211d4 mov rdi, rax | 0x004211d7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x004211dc mov esi, 0x48ce6f | 0x004211e1 mov edx, 2 | 0x004211e6 mov rdi, rax | 0x004211e9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004211ee mov rdi, rax | rdi = rax; 0x004211f1 mov esi, ebx | esi = ebx; 0x004211f3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004211f8 mov esi, 0x48cc9f | 0x004211fd mov edx, 1 | 0x00421202 mov rdi, rax | 0x00421205 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0042120a mov esi, 0x48cc59 | 0x0042120f mov edx, 8 | 0x00421214 mov rdi, rax | 0x00421217 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x0042121c mov esi, 0x48ce6f | 0x00421221 mov edx, 2 | 0x00421226 mov rdi, rax | 0x00421229 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042122e mov rbx, rax | rbx = rax; 0x00421231 mov rdi, r12 | 0x00421234 lea rsi, [rsp + 0x1f0] | 0x0042123c call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x00421241 mov rdi, rbx | 0x00421244 mov rsi, r12 | 0x00421247 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0042124c mov esi, 0x48cc9f | 0x00421251 mov edx, 1 | 0x00421256 mov rdi, rax | 0x00421259 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0042125e mov esi, 0x48ce2f | 0x00421263 mov edx, 9 | 0x00421268 mov rdi, rax | 0x0042126b call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x00421270 mov esi, 0x48ce6f | 0x00421275 mov edx, 2 | 0x0042127a mov rdi, rax | 0x0042127d call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00421282 mov rbx, rax | rbx = rax; 0x00421285 mov rdi, rbp | 0x00421288 lea rsi, [rsp + 0xd0] | 0x00421290 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00421295 mov rdi, rbx | 0x00421298 mov rsi, rbp | 0x0042129b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x004212a0 mov esi, 0x48d148 | 0x004212a5 mov edx, 1 | 0x004212aa mov rdi, rax | 0x004212ad call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x004212b2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x004212b8 je 0x4212ca | 0x004212ba mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x004212bf mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x004212c4 mov rax, qword [rdi] | rax = *(rdi); 0x004212c7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004212ca cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x004212d0 je 0x4212e2 | 0x004212d2 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x004212d7 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x004212dc mov rax, qword [rdi] | rax = *(rdi); 0x004212df call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004212e2 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x004212e7 mov edi, 1 | edi = 1; 0x004212ec mov edx, 0xd1 | edx = 0xd1; 0x004212f1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x004212f6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x004212fa je 0x421310 | 0x004212fc lea rdi, [rsp + 0x88] | 0x00421304 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x00421309 jmp 0x42131f | | } else { 0x00421310 lea rdi, [rsp + 0x88] | 0x00421318 xor esi, esi | esi = 0; 0x0042131a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0042131f lea rdi, [rsp + 0xa0] | 0x00421327 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0042132c mov esi, 0x48d400 | esi = 0x48d400; 0x00421331 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x00421339 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0042133e mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0042134a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x00421353 je 0x42136b | 0x00421355 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0042135d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x00421365 mov rax, qword [rdi] | rax = *(rdi); 0x00421368 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042136b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x00421377 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0042137f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00421384 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0042138c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00421391 mov esi, 0x48d400 | esi = 0x48d400; 0x00421396 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0042139e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x004213a3 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x004213af cmp qword [rsp + 0x250], 0x17 | 0x004213b8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x004213c0 je 0x420b20 | | } 0x004213c6 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x004213ce mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x004213d6 mov rax, qword [rdi] | rax = *(rdi); 0x004213d9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x004213dc jmp 0x420b20 | goto label_0; | label_1: 0x004213e1 add rsp, 0x308 | 0x004213e8 pop rbx | 0x004213e9 pop r12 | 0x004213eb pop r13 | 0x004213ed pop r14 | 0x004213ef pop r15 | 0x004213f1 pop rbp | 0x004213f2 ret | return rax; | }