; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x41f3d0 */ | #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; | 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::Datetime const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041f3d0 push rbp | 0x0041f3d1 push r15 | 0x0041f3d3 push r14 | 0x0041f3d5 push r13 | 0x0041f3d7 push r12 | 0x0041f3d9 push rbx | 0x0041f3da sub rsp, 0x308 | 0x0041f3e1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041f3e9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041f3ee mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041f3f2 mov r15d, esi | r15d = esi; 0x0041f3f5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041f3f9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041f3fe lea eax, [rdx + 1] | eax = rdx + 1; 0x0041f401 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041f405 xor ebx, ebx | ebx = 0; 0x0041f407 mov r13b, 1 | r13b = 1; 0x0041f40a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0041f40f jmp 0x41f456 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041f420 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041f42c mov rdi, rbx | rdi = rbx; 0x0041f42f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041f434 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041f43c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041f441 mov ebx, 1 | ebx = 1; 0x0041f446 test r13b, 1 | 0x0041f44a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041f450 je 0x41fce1 | goto label_1; | } 0x0041f456 mov rax, qword [rip + 0x2b4b03] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041f45d test rax, rax | | if (rax == 0) { 0x0041f460 jne 0x41f467 | 0x0041f462 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041f467 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041f46f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041f47b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041f483 mov rdi, rbp | 0x0041f486 mov esi, 0x10 | 0x0041f48b lea rdx, [rsp + 0xc8] | 0x0041f493 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041f498 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x0041f4a4 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041f4b0 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041f4b8 mov rsi, rbp | rsi = rbp; 0x0041f4bb call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041f4c0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041f4cc mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041f4d7 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x0041f4e3 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; 0x0041f4ef mov rax, qword [rip + 0x2b4a6a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041f4f6 test rax, rax | | if (rax == 0) { 0x0041f4f9 jne 0x41f500 | 0x0041f4fb call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041f500 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041f508 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041f514 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041f51c mov rdi, rbp | 0x0041f51f mov esi, 0x10 | 0x0041f524 lea rdx, [rsp + 0x88] | 0x0041f52c call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041f531 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041f53d mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041f549 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041f551 mov rsi, rbp | rsi = rbp; 0x0041f554 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041f559 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041f565 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041f570 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041f57c 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; 0x0041f588 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041f590 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041f598 mov edx, r15d | edx = r15d; 0x0041f59b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041f5a0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041f5a5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f5d7 cmp r15d, 1 | | if (r15d != 1) { 0x0041f5db jne 0x41f67a | goto label_2; | } 0x0041f5e1 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041f5e6 mov edx, 1 | 0x0041f5eb lea rdi, [rsp + 0xc8] | 0x0041f5f3 mov rsi, r12 | 0x0041f5f6 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f5fb jmp 0x41f67a | | } else { 0x0041f600 lea rdi, [rsp + 0x88] | 0x0041f608 xor esi, esi | 0x0041f60a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041f60f cmp r15d, 1 | | if (r15d == 1) { 0x0041f613 jne 0x41f62b | 0x0041f615 lea rdi, [rsp + 0xc8] | 0x0041f61d mov rsi, qword [rsp + 0x70] | 0x0041f622 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041f626 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041f62b mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x0041f630 mov edx, 1 | 0x0041f635 lea rdi, [rsp + 0xc8] | 0x0041f63d mov rsi, r12 | 0x0041f640 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f645 cmp r15d, 1 | | if (r15d != 1) { 0x0041f649 jne 0x41f67a | goto label_2; | } 0x0041f64b mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041f650 mov edx, 1 | 0x0041f655 lea rdi, [rsp + 0xc8] | 0x0041f65d mov rsi, r12 | 0x0041f660 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041f665 lea rdi, [rsp + 0xc8] | 0x0041f66d mov esi, dword [rsp + 0xc] | 0x0041f671 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041f675 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041f67a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041f682 je 0x41f6c3 | 0x0041f684 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041f68c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041f694 dec rcx | rcx--; 0x0041f697 mov rdx, rcx | rdx = rcx; 0x0041f69a shr rdx, 6 | rdx >>= 6; 0x0041f69e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041f6a2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041f6a6 jae 0x41f6c3 | goto label_3; | } 0x0041f6a8 mov rdi, qword [rsp + 0x88] | 0x0041f6b0 mov esi, dword [rsp + 0x94] | 0x0041f6b7 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041f6be call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041f6c3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041f6cb mov dword [rsp], 3 | *(rsp) = 3; 0x0041f6d2 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041f6da test rax, rax | | if (rax != 0) { 0x0041f6dd je 0x41f6f0 | 0x0041f6df mov esi, dword [rax + 8] | 0x0041f6e2 mov rdi, rsp | 0x0041f6e5 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041f6ea jmp 0x41f6fd | | } else { 0x0041f6f0 mov rdi, rsp | 0x0041f6f3 mov esi, 3 | 0x0041f6f8 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041f6fd mov rdi, r12 | 0x0041f700 mov esi, 0x27 | 0x0041f705 mov rdx, qword [rsp + 0x78] | 0x0041f70a mov rcx, rsp | 0x0041f70d call 0x437340 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Datetimeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041f712 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041f717 mov rdi, r12 | 0x0041f71a call 0x404000 | rax = strlen (r12); 0x0041f71f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041f724 mov rdi, rbp | 0x0041f727 lea rsi, [rsp + 0x40] | 0x0041f72c call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x0041f731 mov r14d, eax | r14d = eax; 0x0041f734 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041f73c je 0x41f820 | 0x0041f742 test r14d, r14d | 0x0041f745 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x0041f74a je 0x41f7e9 | 0x0041f750 mov edi, 0x6d3df0 | 0x0041f755 mov esi, 0x48d32c | 0x0041f75a mov edx, 4 | 0x0041f75f 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); 0x0041f764 mov esi, 0x48ce6f | 0x0041f769 mov edx, 2 | 0x0041f76e mov rdi, rax | 0x0041f771 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f776 mov rdi, rax | rdi = rax; 0x0041f779 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f77d call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f782 mov esi, 0x48cc9f | 0x0041f787 mov edx, 1 | 0x0041f78c mov rdi, rax | 0x0041f78f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041f794 mov esi, 0x48d341 | 0x0041f799 mov edx, 2 | 0x0041f79e mov rdi, rax | 0x0041f7a1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041f7a6 mov esi, 0x48ce6f | 0x0041f7ab mov edx, 2 | 0x0041f7b0 mov rdi, rax | 0x0041f7b3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f7b8 mov rdi, rax | rdi = rax; 0x0041f7bb mov esi, r14d | esi = r14d; 0x0041f7be call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f7c3 mov esi, 0x48d148 | 0x0041f7c8 mov edx, 1 | 0x0041f7cd mov rdi, rax | 0x0041f7d0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041f7d5 mov esi, 0x48d10b | esi = "0 == rc"; 0x0041f7da mov edi, 1 | edi = 1; 0x0041f7df mov edx, 0xcc | edx = 0xcc; 0x0041f7e4 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041f7e9 mov dword [rsp], 3 | *(rsp) = 3; 0x0041f7f0 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041f7f8 test rax, rax | | if (rax != 0) { 0x0041f7fb je 0x41f8c6 | 0x0041f801 mov esi, dword [rax + 8] | 0x0041f804 mov rdi, rsp | 0x0041f807 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041f80c jmp 0x41f8d3 | | } else { 0x0041f820 test r14d, r14d | | if (r14d != 0) { 0x0041f823 jne 0x41fbf6 | goto label_4; | } 0x0041f829 mov edi, 0x6d3df0 | 0x0041f82e mov esi, 0x48d32c | 0x0041f833 mov edx, 4 | 0x0041f838 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); 0x0041f83d mov esi, 0x48ce6f | 0x0041f842 mov edx, 2 | 0x0041f847 mov rdi, rax | 0x0041f84a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f84f mov rdi, rax | rdi = rax; 0x0041f852 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f856 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f85b mov esi, 0x48cc9f | 0x0041f860 mov edx, 1 | 0x0041f865 mov rdi, rax | 0x0041f868 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041f86d mov esi, 0x48d341 | 0x0041f872 mov edx, 2 | 0x0041f877 mov rdi, rax | 0x0041f87a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041f87f mov esi, 0x48ce6f | 0x0041f884 mov edx, 2 | 0x0041f889 mov rdi, rax | 0x0041f88c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f891 mov rdi, rax | rdi = rax; 0x0041f894 xor esi, esi | esi = 0; 0x0041f896 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f89b mov esi, 0x48d148 | 0x0041f8a0 mov edx, 1 | 0x0041f8a5 mov rdi, rax | 0x0041f8a8 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041f8ad mov esi, 0x48d33c | esi = "0 != rc"; 0x0041f8b2 mov edi, 1 | edi = 1; 0x0041f8b7 mov edx, 0xd4 | edx = 0xd4; 0x0041f8bc call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041f8c1 jmp 0x41fbf6 | goto label_4; | } 0x0041f8c6 mov rdi, rsp | 0x0041f8c9 mov esi, 3 | 0x0041f8ce call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041f8d3 mov rdi, r12 | 0x0041f8d6 mov esi, 0x27 | 0x0041f8db mov rdx, qword [rsp + 0x78] | 0x0041f8e0 mov rcx, rsp | 0x0041f8e3 call 0x437340 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Datetimeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041f8e8 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041f8ed mov rdi, r12 | 0x0041f8f0 call 0x404000 | rax = strlen (r12); 0x0041f8f5 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041f8fa lea rdi, [rsp + 0xc8] | 0x0041f902 mov rsi, rbp | 0x0041f905 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x0041f90a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041f912 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041f916 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041f91e je 0x41f9bc | 0x0041f924 mov edi, 0x6d3df0 | 0x0041f929 mov esi, 0x48d32c | 0x0041f92e mov edx, 4 | 0x0041f933 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); 0x0041f938 mov esi, 0x48ce6f | 0x0041f93d mov edx, 2 | 0x0041f942 mov rdi, rax | 0x0041f945 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f94a mov rdi, rax | rdi = rax; 0x0041f94d mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041f951 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f956 mov esi, 0x48cc9f | 0x0041f95b mov edx, 1 | 0x0041f960 mov rdi, rax | 0x0041f963 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041f968 mov esi, 0x4a9942 | 0x0041f96d mov edx, 1 | 0x0041f972 mov rdi, rax | 0x0041f975 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041f97a mov esi, 0x48ce6f | 0x0041f97f mov edx, 2 | 0x0041f984 mov rdi, rax | 0x0041f987 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041f98c mov rdi, rax | rdi = rax; 0x0041f98f mov esi, ebx | esi = ebx; 0x0041f991 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041f996 mov esi, 0x48d148 | 0x0041f99b mov edx, 1 | 0x0041f9a0 mov rdi, rax | 0x0041f9a3 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041f9a8 mov esi, 0x48d331 | esi = "exp.good()"; 0x0041f9ad mov edi, 1 | edi = 1; 0x0041f9b2 mov edx, 0xcf | edx = 0xcf; 0x0041f9b7 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041f9bc mov rdi, r12 | 0x0041f9bf lea rsi, [rsp + 0x1f0] | 0x0041f9c7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041f9cc mov rdi, rbp | 0x0041f9cf lea rsi, [rsp + 0xd0] | 0x0041f9d7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041f9dc mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x0041f9e1 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x0041f9e6 jne 0x41fa30 | 0x0041f9e8 test rdx, rdx | | if (rdx != 0) { 0x0041f9eb je 0x41fa3c | 0x0041f9ed cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041f9f3 je 0x41f9fa | 0x0041f9f5 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x0041f9fa cmp qword [rsp + 0x30], 0x17 | 0x0041fa00 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x0041fa03 je 0x41fa0a | 0x0041fa05 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x0041fa0a mov rsi, rbp | rsi = rbp; 0x0041fa0d call 0x404130 | eax = bcmp (); 0x0041fa12 test eax, eax | 0x0041fa14 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041fa18 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x0041fa1e jne 0x41fa50 | 0x0041fa20 jmp 0x41fa60 | | } else { 0x0041fa30 xor ebp, ebp | ebp = 0; 0x0041fa32 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041fa38 jne 0x41fa50 | goto label_5; | } 0x0041fa3a jmp 0x41fa60 | | } else { 0x0041fa3c mov bpl, 1 | bpl = 1; 0x0041fa3f cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x0041fa45 je 0x41fa60 | goto label_6; | } 0x0041fa47 nop word [rax + rax] | | label_5: 0x0041fa50 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041fa55 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041fa5a mov rax, qword [rdi] | rax = *(rdi); 0x0041fa5d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041fa60 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041fa66 je 0x41fa78 | 0x0041fa68 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041fa6d mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041fa72 mov rax, qword [rdi] | rax = *(rdi); 0x0041fa75 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fa78 test bpl, bpl | 0x0041fa7b lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x0041fa80 jne 0x41fbf6 | 0x0041fa86 mov edi, 0x6d3df0 | 0x0041fa8b mov esi, 0x48d32c | 0x0041fa90 mov edx, 4 | 0x0041fa95 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); 0x0041fa9a mov esi, 0x48ce6f | 0x0041fa9f mov edx, 2 | 0x0041faa4 mov rdi, rax | 0x0041faa7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041faac mov rdi, rax | rdi = rax; 0x0041faaf mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041fab3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041fab8 mov esi, 0x48cc9f | 0x0041fabd mov edx, 1 | 0x0041fac2 mov rdi, rax | 0x0041fac5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041faca mov esi, 0x4a9942 | 0x0041facf mov edx, 1 | 0x0041fad4 mov rdi, rax | 0x0041fad7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041fadc mov esi, 0x48ce6f | 0x0041fae1 mov edx, 2 | 0x0041fae6 mov rdi, rax | 0x0041fae9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041faee mov rdi, rax | rdi = rax; 0x0041faf1 mov esi, ebx | esi = ebx; 0x0041faf3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041faf8 mov esi, 0x48cc9f | 0x0041fafd mov edx, 1 | 0x0041fb02 mov rdi, rax | 0x0041fb05 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041fb0a mov esi, 0x48cc59 | 0x0041fb0f mov edx, 8 | 0x0041fb14 mov rdi, rax | 0x0041fb17 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x0041fb1c mov esi, 0x48ce6f | 0x0041fb21 mov edx, 2 | 0x0041fb26 mov rdi, rax | 0x0041fb29 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041fb2e mov rbx, rax | rbx = rax; 0x0041fb31 mov rdi, r12 | 0x0041fb34 lea rsi, [rsp + 0x1f0] | 0x0041fb3c call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041fb41 mov rdi, rbx | 0x0041fb44 mov rsi, r12 | 0x0041fb47 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041fb4c mov esi, 0x48cc9f | 0x0041fb51 mov edx, 1 | 0x0041fb56 mov rdi, rax | 0x0041fb59 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041fb5e mov esi, 0x48ce2f | 0x0041fb63 mov edx, 9 | 0x0041fb68 mov rdi, rax | 0x0041fb6b call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x0041fb70 mov esi, 0x48ce6f | 0x0041fb75 mov edx, 2 | 0x0041fb7a mov rdi, rax | 0x0041fb7d call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041fb82 mov rbx, rax | rbx = rax; 0x0041fb85 mov rdi, rbp | 0x0041fb88 lea rsi, [rsp + 0xd0] | 0x0041fb90 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041fb95 mov rdi, rbx | 0x0041fb98 mov rsi, rbp | 0x0041fb9b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041fba0 mov esi, 0x48d148 | 0x0041fba5 mov edx, 1 | 0x0041fbaa mov rdi, rax | 0x0041fbad call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041fbb2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041fbb8 je 0x41fbca | 0x0041fbba mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041fbbf mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041fbc4 mov rax, qword [rdi] | rax = *(rdi); 0x0041fbc7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fbca cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041fbd0 je 0x41fbe2 | 0x0041fbd2 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041fbd7 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041fbdc mov rax, qword [rdi] | rax = *(rdi); 0x0041fbdf call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fbe2 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x0041fbe7 mov edi, 1 | edi = 1; 0x0041fbec mov edx, 0xd1 | edx = 0xd1; 0x0041fbf1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041fbf6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041fbfa je 0x41fc10 | 0x0041fbfc lea rdi, [rsp + 0x88] | 0x0041fc04 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041fc09 jmp 0x41fc1f | | } else { 0x0041fc10 lea rdi, [rsp + 0x88] | 0x0041fc18 xor esi, esi | esi = 0; 0x0041fc1a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041fc1f lea rdi, [rsp + 0xa0] | 0x0041fc27 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041fc2c mov esi, 0x48d400 | esi = 0x48d400; 0x0041fc31 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041fc39 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041fc3e mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041fc4a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041fc53 je 0x41fc6b | 0x0041fc55 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041fc5d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041fc65 mov rax, qword [rdi] | rax = *(rdi); 0x0041fc68 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041fc6b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041fc77 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041fc7f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041fc84 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041fc8c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041fc91 mov esi, 0x48d400 | esi = 0x48d400; 0x0041fc96 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041fc9e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041fca3 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x0041fcaf cmp qword [rsp + 0x250], 0x17 | 0x0041fcb8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041fcc0 je 0x41f420 | | } 0x0041fcc6 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041fcce mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041fcd6 mov rax, qword [rdi] | rax = *(rdi); 0x0041fcd9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041fcdc jmp 0x41f420 | goto label_0; | label_1: 0x0041fce1 add rsp, 0x308 | 0x0041fce8 pop rbx | 0x0041fce9 pop r12 | 0x0041fceb pop r13 | 0x0041fced pop r14 | 0x0041fcef pop r15 | 0x0041fcf1 pop rbp | 0x0041fcf2 ret | return rax; | }