; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x41e850 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.Time__int__int__int__int__BloombergLP::bdlt::Time_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_Time_int_int_int_int_BloombergLP::bdlt::Time_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::Time const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041e850 push rbp | 0x0041e851 push r15 | 0x0041e853 push r14 | 0x0041e855 push r13 | 0x0041e857 push r12 | 0x0041e859 push rbx | 0x0041e85a sub rsp, 0x308 | 0x0041e861 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041e869 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041e86e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041e872 mov r15d, esi | r15d = esi; 0x0041e875 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041e879 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041e87e lea eax, [rdx + 1] | eax = rdx + 1; 0x0041e881 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041e885 xor ebx, ebx | ebx = 0; 0x0041e887 mov r13b, 1 | r13b = 1; 0x0041e88a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0041e88f jmp 0x41e8d6 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041e8a0 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041e8ac mov rdi, rbx | rdi = rbx; 0x0041e8af call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041e8b4 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041e8bc call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041e8c1 mov ebx, 1 | ebx = 1; 0x0041e8c6 test r13b, 1 | 0x0041e8ca mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041e8d0 je 0x41f161 | goto label_1; | } 0x0041e8d6 mov rax, qword [rip + 0x2b5683] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041e8dd test rax, rax | | if (rax == 0) { 0x0041e8e0 jne 0x41e8e7 | 0x0041e8e2 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041e8e7 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041e8ef mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041e8fb lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041e903 mov rdi, rbp | 0x0041e906 mov esi, 0x10 | 0x0041e90b lea rdx, [rsp + 0xc8] | 0x0041e913 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041e918 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x0041e924 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041e930 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041e938 mov rsi, rbp | rsi = rbp; 0x0041e93b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041e940 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041e94c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041e957 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x0041e963 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; 0x0041e96f mov rax, qword [rip + 0x2b55ea] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041e976 test rax, rax | | if (rax == 0) { 0x0041e979 jne 0x41e980 | 0x0041e97b call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041e980 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041e988 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041e994 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041e99c mov rdi, rbp | 0x0041e99f mov esi, 0x10 | 0x0041e9a4 lea rdx, [rsp + 0x88] | 0x0041e9ac call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041e9b1 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041e9bd mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041e9c9 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041e9d1 mov rsi, rbp | rsi = rbp; 0x0041e9d4 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041e9d9 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041e9e5 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041e9f0 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041e9fc 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; 0x0041ea08 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041ea10 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041ea18 mov edx, r15d | edx = r15d; 0x0041ea1b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041ea20 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041ea25 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ea57 cmp r15d, 1 | | if (r15d != 1) { 0x0041ea5b jne 0x41eafa | goto label_2; | } 0x0041ea61 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041ea66 mov edx, 1 | 0x0041ea6b lea rdi, [rsp + 0xc8] | 0x0041ea73 mov rsi, r12 | 0x0041ea76 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ea7b jmp 0x41eafa | | } else { 0x0041ea80 lea rdi, [rsp + 0x88] | 0x0041ea88 xor esi, esi | 0x0041ea8a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041ea8f cmp r15d, 1 | | if (r15d == 1) { 0x0041ea93 jne 0x41eaab | 0x0041ea95 lea rdi, [rsp + 0xc8] | 0x0041ea9d mov rsi, qword [rsp + 0x70] | 0x0041eaa2 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041eaa6 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041eaab mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x0041eab0 mov edx, 1 | 0x0041eab5 lea rdi, [rsp + 0xc8] | 0x0041eabd mov rsi, r12 | 0x0041eac0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041eac5 cmp r15d, 1 | | if (r15d != 1) { 0x0041eac9 jne 0x41eafa | goto label_2; | } 0x0041eacb mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041ead0 mov edx, 1 | 0x0041ead5 lea rdi, [rsp + 0xc8] | 0x0041eadd mov rsi, r12 | 0x0041eae0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041eae5 lea rdi, [rsp + 0xc8] | 0x0041eaed mov esi, dword [rsp + 0xc] | 0x0041eaf1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041eaf5 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041eafa cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041eb02 je 0x41eb43 | 0x0041eb04 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041eb0c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041eb14 dec rcx | rcx--; 0x0041eb17 mov rdx, rcx | rdx = rcx; 0x0041eb1a shr rdx, 6 | rdx >>= 6; 0x0041eb1e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041eb22 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041eb26 jae 0x41eb43 | goto label_3; | } 0x0041eb28 mov rdi, qword [rsp + 0x88] | 0x0041eb30 mov esi, dword [rsp + 0x94] | 0x0041eb37 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041eb3e call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041eb43 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041eb4b mov dword [rsp], 3 | *(rsp) = 3; 0x0041eb52 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041eb5a test rax, rax | | if (rax != 0) { 0x0041eb5d je 0x41eb70 | 0x0041eb5f mov esi, dword [rax + 8] | 0x0041eb62 mov rdi, rsp | 0x0041eb65 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041eb6a jmp 0x41eb7d | | } else { 0x0041eb70 mov rdi, rsp | 0x0041eb73 mov esi, 3 | 0x0041eb78 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041eb7d mov rdi, r12 | 0x0041eb80 mov esi, 0x27 | 0x0041eb85 mov rdx, qword [rsp + 0x78] | 0x0041eb8a mov rcx, rsp | 0x0041eb8d call 0x436d70 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041eb92 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041eb97 mov rdi, r12 | 0x0041eb9a call 0x404000 | rax = strlen (r12); 0x0041eb9f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041eba4 mov rdi, rbp | 0x0041eba7 lea rsi, [rsp + 0x40] | 0x0041ebac call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x0041ebb1 mov r14d, eax | r14d = eax; 0x0041ebb4 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041ebbc je 0x41eca0 | 0x0041ebc2 test r14d, r14d | 0x0041ebc5 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x0041ebca je 0x41ec69 | 0x0041ebd0 mov edi, 0x6d3df0 | 0x0041ebd5 mov esi, 0x48d32c | 0x0041ebda mov edx, 4 | 0x0041ebdf 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); 0x0041ebe4 mov esi, 0x48ce6f | 0x0041ebe9 mov edx, 2 | 0x0041ebee mov rdi, rax | 0x0041ebf1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ebf6 mov rdi, rax | rdi = rax; 0x0041ebf9 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ebfd call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ec02 mov esi, 0x48cc9f | 0x0041ec07 mov edx, 1 | 0x0041ec0c mov rdi, rax | 0x0041ec0f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041ec14 mov esi, 0x48d341 | 0x0041ec19 mov edx, 2 | 0x0041ec1e mov rdi, rax | 0x0041ec21 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041ec26 mov esi, 0x48ce6f | 0x0041ec2b mov edx, 2 | 0x0041ec30 mov rdi, rax | 0x0041ec33 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ec38 mov rdi, rax | rdi = rax; 0x0041ec3b mov esi, r14d | esi = r14d; 0x0041ec3e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ec43 mov esi, 0x48d148 | 0x0041ec48 mov edx, 1 | 0x0041ec4d mov rdi, rax | 0x0041ec50 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041ec55 mov esi, 0x48d10b | esi = "0 == rc"; 0x0041ec5a mov edi, 1 | edi = 1; 0x0041ec5f mov edx, 0xcc | edx = 0xcc; 0x0041ec64 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041ec69 mov dword [rsp], 3 | *(rsp) = 3; 0x0041ec70 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041ec78 test rax, rax | | if (rax != 0) { 0x0041ec7b je 0x41ed46 | 0x0041ec81 mov esi, dword [rax + 8] | 0x0041ec84 mov rdi, rsp | 0x0041ec87 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041ec8c jmp 0x41ed53 | | } else { 0x0041eca0 test r14d, r14d | | if (r14d != 0) { 0x0041eca3 jne 0x41f076 | goto label_4; | } 0x0041eca9 mov edi, 0x6d3df0 | 0x0041ecae mov esi, 0x48d32c | 0x0041ecb3 mov edx, 4 | 0x0041ecb8 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); 0x0041ecbd mov esi, 0x48ce6f | 0x0041ecc2 mov edx, 2 | 0x0041ecc7 mov rdi, rax | 0x0041ecca call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041eccf mov rdi, rax | rdi = rax; 0x0041ecd2 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ecd6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ecdb mov esi, 0x48cc9f | 0x0041ece0 mov edx, 1 | 0x0041ece5 mov rdi, rax | 0x0041ece8 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041eced mov esi, 0x48d341 | 0x0041ecf2 mov edx, 2 | 0x0041ecf7 mov rdi, rax | 0x0041ecfa call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041ecff mov esi, 0x48ce6f | 0x0041ed04 mov edx, 2 | 0x0041ed09 mov rdi, rax | 0x0041ed0c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ed11 mov rdi, rax | rdi = rax; 0x0041ed14 xor esi, esi | esi = 0; 0x0041ed16 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ed1b mov esi, 0x48d148 | 0x0041ed20 mov edx, 1 | 0x0041ed25 mov rdi, rax | 0x0041ed28 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041ed2d mov esi, 0x48d33c | esi = "0 != rc"; 0x0041ed32 mov edi, 1 | edi = 1; 0x0041ed37 mov edx, 0xd4 | edx = 0xd4; 0x0041ed3c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041ed41 jmp 0x41f076 | goto label_4; | } 0x0041ed46 mov rdi, rsp | 0x0041ed49 mov esi, 3 | 0x0041ed4e call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041ed53 mov rdi, r12 | 0x0041ed56 mov esi, 0x27 | 0x0041ed5b mov rdx, qword [rsp + 0x78] | 0x0041ed60 mov rcx, rsp | 0x0041ed63 call 0x436d70 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041ed68 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041ed6d mov rdi, r12 | 0x0041ed70 call 0x404000 | rax = strlen (r12); 0x0041ed75 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041ed7a lea rdi, [rsp + 0xc8] | 0x0041ed82 mov rsi, rbp | 0x0041ed85 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x0041ed8a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041ed92 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041ed96 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041ed9e je 0x41ee3c | 0x0041eda4 mov edi, 0x6d3df0 | 0x0041eda9 mov esi, 0x48d32c | 0x0041edae mov edx, 4 | 0x0041edb3 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); 0x0041edb8 mov esi, 0x48ce6f | 0x0041edbd mov edx, 2 | 0x0041edc2 mov rdi, rax | 0x0041edc5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041edca mov rdi, rax | rdi = rax; 0x0041edcd mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041edd1 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041edd6 mov esi, 0x48cc9f | 0x0041eddb mov edx, 1 | 0x0041ede0 mov rdi, rax | 0x0041ede3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041ede8 mov esi, 0x4a9942 | 0x0041eded mov edx, 1 | 0x0041edf2 mov rdi, rax | 0x0041edf5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041edfa mov esi, 0x48ce6f | 0x0041edff mov edx, 2 | 0x0041ee04 mov rdi, rax | 0x0041ee07 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ee0c mov rdi, rax | rdi = rax; 0x0041ee0f mov esi, ebx | esi = ebx; 0x0041ee11 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ee16 mov esi, 0x48d148 | 0x0041ee1b mov edx, 1 | 0x0041ee20 mov rdi, rax | 0x0041ee23 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041ee28 mov esi, 0x48d331 | esi = "exp.good()"; 0x0041ee2d mov edi, 1 | edi = 1; 0x0041ee32 mov edx, 0xcf | edx = 0xcf; 0x0041ee37 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041ee3c mov rdi, r12 | 0x0041ee3f lea rsi, [rsp + 0x1f0] | 0x0041ee47 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041ee4c mov rdi, rbp | 0x0041ee4f lea rsi, [rsp + 0xd0] | 0x0041ee57 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041ee5c mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x0041ee61 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x0041ee66 jne 0x41eeb0 | 0x0041ee68 test rdx, rdx | | if (rdx != 0) { 0x0041ee6b je 0x41eebc | 0x0041ee6d cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041ee73 je 0x41ee7a | 0x0041ee75 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x0041ee7a cmp qword [rsp + 0x30], 0x17 | 0x0041ee80 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x0041ee83 je 0x41ee8a | 0x0041ee85 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x0041ee8a mov rsi, rbp | rsi = rbp; 0x0041ee8d call 0x404130 | eax = bcmp (); 0x0041ee92 test eax, eax | 0x0041ee94 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041ee98 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x0041ee9e jne 0x41eed0 | 0x0041eea0 jmp 0x41eee0 | | } else { 0x0041eeb0 xor ebp, ebp | ebp = 0; 0x0041eeb2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041eeb8 jne 0x41eed0 | goto label_5; | } 0x0041eeba jmp 0x41eee0 | | } else { 0x0041eebc mov bpl, 1 | bpl = 1; 0x0041eebf cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x0041eec5 je 0x41eee0 | goto label_6; | } 0x0041eec7 nop word [rax + rax] | | label_5: 0x0041eed0 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041eed5 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041eeda mov rax, qword [rdi] | rax = *(rdi); 0x0041eedd call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041eee0 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041eee6 je 0x41eef8 | 0x0041eee8 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041eeed mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041eef2 mov rax, qword [rdi] | rax = *(rdi); 0x0041eef5 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041eef8 test bpl, bpl | 0x0041eefb lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x0041ef00 jne 0x41f076 | 0x0041ef06 mov edi, 0x6d3df0 | 0x0041ef0b mov esi, 0x48d32c | 0x0041ef10 mov edx, 4 | 0x0041ef15 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); 0x0041ef1a mov esi, 0x48ce6f | 0x0041ef1f mov edx, 2 | 0x0041ef24 mov rdi, rax | 0x0041ef27 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ef2c mov rdi, rax | rdi = rax; 0x0041ef2f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ef33 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ef38 mov esi, 0x48cc9f | 0x0041ef3d mov edx, 1 | 0x0041ef42 mov rdi, rax | 0x0041ef45 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041ef4a mov esi, 0x4a9942 | 0x0041ef4f mov edx, 1 | 0x0041ef54 mov rdi, rax | 0x0041ef57 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041ef5c mov esi, 0x48ce6f | 0x0041ef61 mov edx, 2 | 0x0041ef66 mov rdi, rax | 0x0041ef69 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041ef6e mov rdi, rax | rdi = rax; 0x0041ef71 mov esi, ebx | esi = ebx; 0x0041ef73 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ef78 mov esi, 0x48cc9f | 0x0041ef7d mov edx, 1 | 0x0041ef82 mov rdi, rax | 0x0041ef85 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041ef8a mov esi, 0x48cc59 | 0x0041ef8f mov edx, 8 | 0x0041ef94 mov rdi, rax | 0x0041ef97 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x0041ef9c mov esi, 0x48ce6f | 0x0041efa1 mov edx, 2 | 0x0041efa6 mov rdi, rax | 0x0041efa9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041efae mov rbx, rax | rbx = rax; 0x0041efb1 mov rdi, r12 | 0x0041efb4 lea rsi, [rsp + 0x1f0] | 0x0041efbc call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041efc1 mov rdi, rbx | 0x0041efc4 mov rsi, r12 | 0x0041efc7 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041efcc mov esi, 0x48cc9f | 0x0041efd1 mov edx, 1 | 0x0041efd6 mov rdi, rax | 0x0041efd9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041efde mov esi, 0x48ce2f | 0x0041efe3 mov edx, 9 | 0x0041efe8 mov rdi, rax | 0x0041efeb call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x0041eff0 mov esi, 0x48ce6f | 0x0041eff5 mov edx, 2 | 0x0041effa mov rdi, rax | 0x0041effd call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f002 mov rbx, rax | rbx = rax; 0x0041f005 mov rdi, rbp | 0x0041f008 lea rsi, [rsp + 0xd0] | 0x0041f010 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041f015 mov rdi, rbx | 0x0041f018 mov rsi, rbp | 0x0041f01b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041f020 mov esi, 0x48d148 | 0x0041f025 mov edx, 1 | 0x0041f02a mov rdi, rax | 0x0041f02d call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041f032 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041f038 je 0x41f04a | 0x0041f03a mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041f03f mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041f044 mov rax, qword [rdi] | rax = *(rdi); 0x0041f047 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f04a cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041f050 je 0x41f062 | 0x0041f052 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041f057 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041f05c mov rax, qword [rdi] | rax = *(rdi); 0x0041f05f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f062 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x0041f067 mov edi, 1 | edi = 1; 0x0041f06c mov edx, 0xd1 | edx = 0xd1; 0x0041f071 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041f076 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041f07a je 0x41f090 | 0x0041f07c lea rdi, [rsp + 0x88] | 0x0041f084 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041f089 jmp 0x41f09f | | } else { 0x0041f090 lea rdi, [rsp + 0x88] | 0x0041f098 xor esi, esi | esi = 0; 0x0041f09a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041f09f lea rdi, [rsp + 0xa0] | 0x0041f0a7 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041f0ac mov esi, 0x48d400 | esi = 0x48d400; 0x0041f0b1 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041f0b9 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041f0be mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041f0ca cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041f0d3 je 0x41f0eb | 0x0041f0d5 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041f0dd mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041f0e5 mov rax, qword [rdi] | rax = *(rdi); 0x0041f0e8 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f0eb mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041f0f7 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041f0ff call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041f104 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041f10c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041f111 mov esi, 0x48d400 | esi = 0x48d400; 0x0041f116 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041f11e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041f123 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x0041f12f cmp qword [rsp + 0x250], 0x17 | 0x0041f138 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041f140 je 0x41e8a0 | | } 0x0041f146 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041f14e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041f156 mov rax, qword [rdi] | rax = *(rdi); 0x0041f159 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041f15c jmp 0x41e8a0 | goto label_0; | label_1: 0x0041f161 add rsp, 0x308 | 0x0041f168 pop rbx | 0x0041f169 pop r12 | 0x0041f16b pop r13 | 0x0041f16d pop r14 | 0x0041f16f pop r15 | 0x0041f171 pop rbp | 0x0041f172 ret | return rax; | }