; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x41f3b0 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.Datetime__int__int__int__int__BloombergLP::bdlt::Datetime_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_Datetime_int_int_int_int_BloombergLP::bdlt::Datetime_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::Datetime const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041f3b0 push rbp | 0x0041f3b1 push r15 | 0x0041f3b3 push r14 | 0x0041f3b5 push r13 | 0x0041f3b7 push r12 | 0x0041f3b9 push rbx | 0x0041f3ba sub rsp, 0x308 | 0x0041f3c1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041f3c9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041f3ce mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041f3d2 mov r15d, esi | r15d = esi; 0x0041f3d5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041f3d9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041f3de lea eax, [rdx + 1] | eax = rdx + 1; 0x0041f3e1 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041f3e5 xor ebx, ebx | ebx = 0; 0x0041f3e7 mov r13b, 1 | r13b = 1; 0x0041f3ea lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x0041f3ef jmp 0x41f436 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041f400 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041f40c mov rdi, rbx | rdi = rbx; 0x0041f40f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041f414 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041f41c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041f421 mov ebx, 1 | ebx = 1; 0x0041f426 test r13b, 1 | 0x0041f42a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041f430 je 0x41fcb1 | goto label_1; | } 0x0041f436 mov rax, qword [rip + 0x2b4b23] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041f43d test rax, rax | | if (rax == 0) { 0x0041f440 jne 0x41f447 | 0x0041f442 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041f447 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041f44f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041f45b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041f463 mov rdi, rbp | 0x0041f466 mov esi, 0x10 | 0x0041f46b lea rdx, [rsp + 0xc8] | 0x0041f473 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041f478 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x0041f484 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041f490 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041f498 mov rsi, rbp | rsi = rbp; 0x0041f49b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041f4a0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041f4ac mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041f4b7 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x0041f4c3 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; 0x0041f4cf mov rax, qword [rip + 0x2b4a8a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041f4d6 test rax, rax | | if (rax == 0) { 0x0041f4d9 jne 0x41f4e0 | 0x0041f4db call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041f4e0 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041f4e8 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041f4f4 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041f4fc mov rdi, rbp | 0x0041f4ff mov esi, 0x10 | 0x0041f504 lea rdx, [rsp + 0x88] | 0x0041f50c call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041f511 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041f51d mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041f529 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041f531 mov rsi, rbp | rsi = rbp; 0x0041f534 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041f539 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041f545 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041f550 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041f55c 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; 0x0041f568 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041f570 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041f578 mov edx, r15d | edx = r15d; 0x0041f57b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041f580 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041f585 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f5b7 cmp r15d, 1 | | if (r15d != 1) { 0x0041f5bb jne 0x41f65a | goto label_2; | } 0x0041f5c1 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041f5c6 mov edx, 1 | 0x0041f5cb lea rdi, [rsp + 0xc8] | 0x0041f5d3 mov rsi, r12 | 0x0041f5d6 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f5db jmp 0x41f65a | | } else { 0x0041f5e0 lea rdi, [rsp + 0x88] | 0x0041f5e8 xor esi, esi | 0x0041f5ea call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041f5ef cmp r15d, 1 | | if (r15d == 1) { 0x0041f5f3 jne 0x41f60b | 0x0041f5f5 lea rdi, [rsp + 0xc8] | 0x0041f5fd mov rsi, qword [rsp + 0x70] | 0x0041f602 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041f606 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041f60b mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x0041f610 mov edx, 1 | 0x0041f615 lea rdi, [rsp + 0xc8] | 0x0041f61d mov rsi, r12 | 0x0041f620 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f625 cmp r15d, 1 | | if (r15d != 1) { 0x0041f629 jne 0x41f65a | goto label_2; | } 0x0041f62b mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041f630 mov edx, 1 | 0x0041f635 lea rdi, [rsp + 0xc8] | 0x0041f63d mov rsi, r12 | 0x0041f640 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f645 lea rdi, [rsp + 0xc8] | 0x0041f64d mov esi, dword [rsp + 0xc] | 0x0041f651 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041f655 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041f65a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041f662 je 0x41f6a3 | 0x0041f664 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041f66c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041f674 dec rcx | rcx--; 0x0041f677 mov rdx, rcx | rdx = rcx; 0x0041f67a shr rdx, 6 | rdx >>= 6; 0x0041f67e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041f682 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041f686 jae 0x41f6a3 | goto label_3; | } 0x0041f688 mov rdi, qword [rsp + 0x88] | 0x0041f690 mov esi, dword [rsp + 0x94] | 0x0041f697 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041f69e call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041f6a3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041f6ab mov dword [rsp], 3 | *(rsp) = 3; 0x0041f6b2 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041f6ba test rax, rax | | if (rax != 0) { 0x0041f6bd je 0x41f6d0 | 0x0041f6bf mov esi, dword [rax + 8] | 0x0041f6c2 mov rdi, rsp | 0x0041f6c5 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041f6ca jmp 0x41f6dd | | } else { 0x0041f6d0 mov rdi, rsp | 0x0041f6d3 mov esi, 3 | 0x0041f6d8 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041f6dd mov rdi, r12 | 0x0041f6e0 mov esi, 0x27 | 0x0041f6e5 mov rdx, qword [rsp + 0x78] | 0x0041f6ea mov rcx, rsp | 0x0041f6ed call 0x437ab0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Datetimeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041f6f2 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041f6f7 mov rdi, r12 | 0x0041f6fa call 0x404000 | rax = strlen (r12); 0x0041f6ff mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041f704 mov rdi, rbp | 0x0041f707 lea rsi, [rsp + 0x10] | 0x0041f70c call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x0041f711 mov r14d, eax | r14d = eax; 0x0041f714 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041f71c je 0x41f7f0 | 0x0041f722 test r14d, r14d | | if (r14d != 0) { 0x0041f725 je 0x41f7c4 | 0x0041f72b mov edi, 0x6d3df0 | 0x0041f730 mov esi, 0x48dcc6 | 0x0041f735 mov edx, 4 | 0x0041f73a 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); 0x0041f73f mov esi, 0x48d80d | 0x0041f744 mov edx, 2 | 0x0041f749 mov rdi, rax | 0x0041f74c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f751 mov rdi, rax | rdi = rax; 0x0041f754 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f758 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f75d mov esi, 0x48d63d | 0x0041f762 mov edx, 1 | 0x0041f767 mov rdi, rax | 0x0041f76a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041f76f mov esi, 0x48dcdb | 0x0041f774 mov edx, 2 | 0x0041f779 mov rdi, rax | 0x0041f77c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041f781 mov esi, 0x48d80d | 0x0041f786 mov edx, 2 | 0x0041f78b mov rdi, rax | 0x0041f78e call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f793 mov rdi, rax | rdi = rax; 0x0041f796 mov esi, r14d | esi = r14d; 0x0041f799 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f79e mov esi, 0x48dae6 | 0x0041f7a3 mov edx, 1 | 0x0041f7a8 mov rdi, rax | 0x0041f7ab call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041f7b0 mov esi, 0x48daa9 | esi = "0 == rc"; 0x0041f7b5 mov edi, 1 | edi = 1; 0x0041f7ba mov edx, 0xcc | edx = 0xcc; 0x0041f7bf call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041f7c4 mov dword [rsp], 3 | *(rsp) = 3; 0x0041f7cb mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041f7d3 test rax, rax | | if (rax != 0) { 0x0041f7d6 je 0x41f896 | 0x0041f7dc mov esi, dword [rax + 8] | 0x0041f7df mov rdi, rsp | 0x0041f7e2 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041f7e7 jmp 0x41f8a3 | | } else { 0x0041f7f0 test r14d, r14d | | if (r14d != 0) { 0x0041f7f3 jne 0x41fbc6 | goto label_4; | } 0x0041f7f9 mov edi, 0x6d3df0 | 0x0041f7fe mov esi, 0x48dcc6 | 0x0041f803 mov edx, 4 | 0x0041f808 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); 0x0041f80d mov esi, 0x48d80d | 0x0041f812 mov edx, 2 | 0x0041f817 mov rdi, rax | 0x0041f81a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f81f mov rdi, rax | rdi = rax; 0x0041f822 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f826 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f82b mov esi, 0x48d63d | 0x0041f830 mov edx, 1 | 0x0041f835 mov rdi, rax | 0x0041f838 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041f83d mov esi, 0x48dcdb | 0x0041f842 mov edx, 2 | 0x0041f847 mov rdi, rax | 0x0041f84a call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041f84f mov esi, 0x48d80d | 0x0041f854 mov edx, 2 | 0x0041f859 mov rdi, rax | 0x0041f85c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f861 mov rdi, rax | rdi = rax; 0x0041f864 xor esi, esi | esi = 0; 0x0041f866 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f86b mov esi, 0x48dae6 | 0x0041f870 mov edx, 1 | 0x0041f875 mov rdi, rax | 0x0041f878 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041f87d mov esi, 0x48dcd6 | esi = "0 != rc"; 0x0041f882 mov edi, 1 | edi = 1; 0x0041f887 mov edx, 0xd4 | edx = 0xd4; 0x0041f88c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041f891 jmp 0x41fbc6 | goto label_4; | } 0x0041f896 mov rdi, rsp | 0x0041f899 mov esi, 3 | 0x0041f89e call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041f8a3 mov rdi, r12 | 0x0041f8a6 mov esi, 0x27 | 0x0041f8ab mov rdx, qword [rsp + 0x78] | 0x0041f8b0 mov rcx, rsp | 0x0041f8b3 call 0x437ab0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Datetimeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041f8b8 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041f8bd mov rdi, r12 | 0x0041f8c0 call 0x404000 | rax = strlen (r12); 0x0041f8c5 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041f8ca lea rdi, [rsp + 0xc8] | 0x0041f8d2 lea rsi, [rsp + 0x10] | 0x0041f8d7 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x0041f8dc mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041f8e4 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041f8e8 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041f8f0 je 0x41f98e | 0x0041f8f6 mov edi, 0x6d3df0 | 0x0041f8fb mov esi, 0x48dcc6 | 0x0041f900 mov edx, 4 | 0x0041f905 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); 0x0041f90a mov esi, 0x48d80d | 0x0041f90f mov edx, 2 | 0x0041f914 mov rdi, rax | 0x0041f917 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f91c mov rdi, rax | rdi = rax; 0x0041f91f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f923 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f928 mov esi, 0x48d63d | 0x0041f92d mov edx, 1 | 0x0041f932 mov rdi, rax | 0x0041f935 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041f93a mov esi, 0x4aa3d2 | 0x0041f93f mov edx, 1 | 0x0041f944 mov rdi, rax | 0x0041f947 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041f94c mov esi, 0x48d80d | 0x0041f951 mov edx, 2 | 0x0041f956 mov rdi, rax | 0x0041f959 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041f95e mov rdi, rax | rdi = rax; 0x0041f961 mov esi, ebx | esi = ebx; 0x0041f963 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f968 mov esi, 0x48dae6 | 0x0041f96d mov edx, 1 | 0x0041f972 mov rdi, rax | 0x0041f975 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041f97a mov esi, 0x48dccb | esi = "exp.good()"; 0x0041f97f mov edi, 1 | edi = 1; 0x0041f984 mov edx, 0xcf | edx = 0xcf; 0x0041f989 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041f98e mov rdi, r12 | 0x0041f991 lea rsi, [rsp + 0x1f0] | 0x0041f999 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041f99e lea rdi, [rsp + 0x10] | 0x0041f9a3 lea rsi, [rsp + 0xd0] | 0x0041f9ab call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x0041f9b0 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x0041f9b5 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x0041f9ba jne 0x41fa00 | 0x0041f9bc test rdx, rdx | | if (rdx != 0) { 0x0041f9bf je 0x41fa0c | 0x0041f9c1 cmp qword [rsp + 0x30], 0x17 | 0x0041f9c7 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x0041f9cc je 0x41f9d3 | 0x0041f9ce mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x0041f9d3 cmp qword [rsp + 0x60], 0x17 | 0x0041f9d9 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x0041f9dc je 0x41f9e3 | 0x0041f9de mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x0041f9e3 call 0x404130 | eax = bcmp (); 0x0041f9e8 test eax, eax | 0x0041f9ea sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041f9ee cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x0041f9f4 jne 0x41fa20 | 0x0041f9f6 jmp 0x41fa30 | | } else { 0x0041fa00 xor ebp, ebp | ebp = 0; 0x0041fa02 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041fa08 jne 0x41fa20 | goto label_5; | } 0x0041fa0a jmp 0x41fa30 | | } else { 0x0041fa0c mov bpl, 1 | bpl = 1; 0x0041fa0f cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x0041fa15 je 0x41fa30 | goto label_6; | } 0x0041fa17 nop word [rax + rax] | | label_5: 0x0041fa20 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041fa25 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041fa2a mov rax, qword [rdi] | rax = *(rdi); 0x0041fa2d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041fa30 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041fa36 je 0x41fa48 | 0x0041fa38 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041fa3d mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041fa42 mov rax, qword [rdi] | rax = *(rdi); 0x0041fa45 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fa48 test bpl, bpl | | if (bpl == 0) { 0x0041fa4b jne 0x41fbc6 | 0x0041fa51 mov edi, 0x6d3df0 | 0x0041fa56 mov esi, 0x48dcc6 | 0x0041fa5b mov edx, 4 | 0x0041fa60 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); 0x0041fa65 mov esi, 0x48d80d | 0x0041fa6a mov edx, 2 | 0x0041fa6f mov rdi, rax | 0x0041fa72 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041fa77 mov rdi, rax | rdi = rax; 0x0041fa7a mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041fa7e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041fa83 mov esi, 0x48d63d | 0x0041fa88 mov edx, 1 | 0x0041fa8d mov rdi, rax | 0x0041fa90 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041fa95 mov esi, 0x4aa3d2 | 0x0041fa9a mov edx, 1 | 0x0041fa9f mov rdi, rax | 0x0041faa2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041faa7 mov esi, 0x48d80d | 0x0041faac mov edx, 2 | 0x0041fab1 mov rdi, rax | 0x0041fab4 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041fab9 mov rdi, rax | rdi = rax; 0x0041fabc mov esi, ebx | esi = ebx; 0x0041fabe call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041fac3 mov esi, 0x48d63d | 0x0041fac8 mov edx, 1 | 0x0041facd mov rdi, rax | 0x0041fad0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041fad5 mov esi, 0x48d5f7 | 0x0041fada mov edx, 8 | 0x0041fadf mov rdi, rax | 0x0041fae2 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x0041fae7 mov esi, 0x48d80d | 0x0041faec mov edx, 2 | 0x0041faf1 mov rdi, rax | 0x0041faf4 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041faf9 mov rbx, rax | rbx = rax; 0x0041fafc mov rdi, r12 | 0x0041faff lea rsi, [rsp + 0x1f0] | 0x0041fb07 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041fb0c mov rdi, rbx | 0x0041fb0f mov rsi, r12 | 0x0041fb12 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041fb17 mov esi, 0x48d63d | 0x0041fb1c mov edx, 1 | 0x0041fb21 mov rdi, rax | 0x0041fb24 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041fb29 mov esi, 0x48d7cd | 0x0041fb2e mov edx, 9 | 0x0041fb33 mov rdi, rax | 0x0041fb36 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x0041fb3b mov esi, 0x48d80d | 0x0041fb40 mov edx, 2 | 0x0041fb45 mov rdi, rax | 0x0041fb48 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041fb4d mov rbx, rax | rbx = rax; 0x0041fb50 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x0041fb55 mov rdi, rbp | 0x0041fb58 lea rsi, [rsp + 0xd0] | 0x0041fb60 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041fb65 mov rdi, rbx | 0x0041fb68 mov rsi, rbp | 0x0041fb6b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041fb70 mov esi, 0x48dae6 | 0x0041fb75 mov edx, 1 | 0x0041fb7a mov rdi, rax | 0x0041fb7d call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041fb82 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041fb88 je 0x41fb9a | 0x0041fb8a mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041fb8f mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041fb94 mov rax, qword [rdi] | rax = *(rdi); 0x0041fb97 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fb9a cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041fba0 je 0x41fbb2 | 0x0041fba2 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041fba7 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041fbac mov rax, qword [rdi] | rax = *(rdi); 0x0041fbaf call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fbb2 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x0041fbb7 mov edi, 1 | edi = 1; 0x0041fbbc mov edx, 0xd1 | edx = 0xd1; 0x0041fbc1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041fbc6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041fbca je 0x41fbe0 | 0x0041fbcc lea rdi, [rsp + 0x88] | 0x0041fbd4 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041fbd9 jmp 0x41fbef | | } else { 0x0041fbe0 lea rdi, [rsp + 0x88] | 0x0041fbe8 xor esi, esi | esi = 0; 0x0041fbea call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041fbef lea rdi, [rsp + 0xa0] | 0x0041fbf7 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041fbfc mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041fc01 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041fc09 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041fc0e mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041fc1a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041fc23 je 0x41fc3b | 0x0041fc25 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041fc2d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041fc35 mov rax, qword [rdi] | rax = *(rdi); 0x0041fc38 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fc3b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041fc47 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041fc4f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041fc54 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041fc5c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041fc61 mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041fc66 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041fc6e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041fc73 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x0041fc7f cmp qword [rsp + 0x250], 0x17 | 0x0041fc88 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041fc90 je 0x41f400 | | } 0x0041fc96 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041fc9e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041fca6 mov rax, qword [rdi] | rax = *(rdi); 0x0041fca9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041fcac jmp 0x41f400 | goto label_0; | label_1: 0x0041fcb1 add rsp, 0x308 | 0x0041fcb8 pop rbx | 0x0041fcb9 pop r12 | 0x0041fcbb pop r13 | 0x0041fcbd pop r14 | 0x0041fcbf pop r15 | 0x0041fcc1 pop rbp | 0x0041fcc2 ret | return rax; | }