; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x41dcd0 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.Date__int__int__int__int__BloombergLP::bdlt::Date_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_Date_int_int_int_int_BloombergLP::bdlt::Date_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::Date const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041dcd0 push rbp | 0x0041dcd1 push r15 | 0x0041dcd3 push r14 | 0x0041dcd5 push r13 | 0x0041dcd7 push r12 | 0x0041dcd9 push rbx | 0x0041dcda sub rsp, 0x308 | 0x0041dce1 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041dce9 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041dcee mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041dcf2 mov r15d, esi | r15d = esi; 0x0041dcf5 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041dcf9 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041dcfe lea eax, [rdx + 1] | eax = rdx + 1; 0x0041dd01 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041dd05 xor ebx, ebx | ebx = 0; 0x0041dd07 mov r13b, 1 | r13b = 1; 0x0041dd0a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0041dd0f jmp 0x41dd56 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041dd20 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041dd2c mov rdi, rbx | rdi = rbx; 0x0041dd2f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041dd34 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041dd3c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041dd41 mov ebx, 1 | ebx = 1; 0x0041dd46 test r13b, 1 | 0x0041dd4a mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041dd50 je 0x41e5e1 | goto label_1; | } 0x0041dd56 mov rax, qword [rip + 0x2b6203] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041dd5d test rax, rax | | if (rax == 0) { 0x0041dd60 jne 0x41dd67 | 0x0041dd62 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041dd67 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041dd6f mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041dd7b lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041dd83 mov rdi, rbp | 0x0041dd86 mov esi, 0x10 | 0x0041dd8b lea rdx, [rsp + 0xc8] | 0x0041dd93 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041dd98 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x0041dda4 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041ddb0 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041ddb8 mov rsi, rbp | rsi = rbp; 0x0041ddbb call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041ddc0 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041ddcc mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041ddd7 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x0041dde3 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; 0x0041ddef mov rax, qword [rip + 0x2b616a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041ddf6 test rax, rax | | if (rax == 0) { 0x0041ddf9 jne 0x41de00 | 0x0041ddfb call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041de00 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041de08 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041de14 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041de1c mov rdi, rbp | 0x0041de1f mov esi, 0x10 | 0x0041de24 lea rdx, [rsp + 0x88] | 0x0041de2c call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041de31 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041de3d mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x0041de49 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041de51 mov rsi, rbp | rsi = rbp; 0x0041de54 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041de59 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041de65 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041de70 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041de7c 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; 0x0041de88 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041de90 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041de98 mov edx, r15d | edx = r15d; 0x0041de9b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041dea0 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041dea5 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ded7 cmp r15d, 1 | | if (r15d != 1) { 0x0041dedb jne 0x41df7a | goto label_2; | } 0x0041dee1 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041dee6 mov edx, 1 | 0x0041deeb lea rdi, [rsp + 0xc8] | 0x0041def3 mov rsi, r12 | 0x0041def6 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041defb jmp 0x41df7a | | } else { 0x0041df00 lea rdi, [rsp + 0x88] | 0x0041df08 xor esi, esi | 0x0041df0a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041df0f cmp r15d, 1 | | if (r15d == 1) { 0x0041df13 jne 0x41df2b | 0x0041df15 lea rdi, [rsp + 0xc8] | 0x0041df1d mov rsi, qword [rsp + 0x70] | 0x0041df22 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041df26 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041df2b mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x0041df30 mov edx, 1 | 0x0041df35 lea rdi, [rsp + 0xc8] | 0x0041df3d mov rsi, r12 | 0x0041df40 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041df45 cmp r15d, 1 | | if (r15d != 1) { 0x0041df49 jne 0x41df7a | goto label_2; | } 0x0041df4b mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0041df50 mov edx, 1 | 0x0041df55 lea rdi, [rsp + 0xc8] | 0x0041df5d mov rsi, r12 | 0x0041df60 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041df65 lea rdi, [rsp + 0xc8] | 0x0041df6d mov esi, dword [rsp + 0xc] | 0x0041df71 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041df75 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041df7a cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041df82 je 0x41dfc3 | 0x0041df84 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041df8c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041df94 dec rcx | rcx--; 0x0041df97 mov rdx, rcx | rdx = rcx; 0x0041df9a shr rdx, 6 | rdx >>= 6; 0x0041df9e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041dfa2 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041dfa6 jae 0x41dfc3 | goto label_3; | } 0x0041dfa8 mov rdi, qword [rsp + 0x88] | 0x0041dfb0 mov esi, dword [rsp + 0x94] | 0x0041dfb7 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041dfbe call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041dfc3 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041dfcb mov dword [rsp], 3 | *(rsp) = 3; 0x0041dfd2 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041dfda test rax, rax | | if (rax != 0) { 0x0041dfdd je 0x41dff0 | 0x0041dfdf mov esi, dword [rax + 8] | 0x0041dfe2 mov rdi, rsp | 0x0041dfe5 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041dfea jmp 0x41dffd | | } else { 0x0041dff0 mov rdi, rsp | 0x0041dff3 mov esi, 3 | 0x0041dff8 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041dffd mov rdi, r12 | 0x0041e000 mov esi, 0x27 | 0x0041e005 mov rdx, qword [rsp + 0x78] | 0x0041e00a mov rcx, rsp | rcx = rsp; 0x0041e00d call 0x436a10 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78))); 0x0041e012 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041e017 mov rdi, r12 | 0x0041e01a call 0x404000 | rax = strlen (r12); 0x0041e01f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041e024 mov rdi, rbp | 0x0041e027 lea rsi, [rsp + 0x40] | 0x0041e02c call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x0041e031 mov r14d, eax | r14d = eax; 0x0041e034 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041e03c je 0x41e120 | 0x0041e042 test r14d, r14d | 0x0041e045 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x0041e04a je 0x41e0e9 | 0x0041e050 mov edi, 0x6d3df0 | 0x0041e055 mov esi, 0x48d32c | 0x0041e05a mov edx, 4 | 0x0041e05f 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); 0x0041e064 mov esi, 0x48ce6f | 0x0041e069 mov edx, 2 | 0x0041e06e mov rdi, rax | 0x0041e071 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e076 mov rdi, rax | rdi = rax; 0x0041e079 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e07d call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e082 mov esi, 0x48cc9f | 0x0041e087 mov edx, 1 | 0x0041e08c mov rdi, rax | 0x0041e08f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e094 mov esi, 0x48d341 | 0x0041e099 mov edx, 2 | 0x0041e09e mov rdi, rax | 0x0041e0a1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041e0a6 mov esi, 0x48ce6f | 0x0041e0ab mov edx, 2 | 0x0041e0b0 mov rdi, rax | 0x0041e0b3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e0b8 mov rdi, rax | rdi = rax; 0x0041e0bb mov esi, r14d | esi = r14d; 0x0041e0be call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e0c3 mov esi, 0x48d148 | 0x0041e0c8 mov edx, 1 | 0x0041e0cd mov rdi, rax | 0x0041e0d0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041e0d5 mov esi, 0x48d10b | esi = "0 == rc"; 0x0041e0da mov edi, 1 | edi = 1; 0x0041e0df mov edx, 0xcc | edx = 0xcc; 0x0041e0e4 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041e0e9 mov dword [rsp], 3 | *(rsp) = 3; 0x0041e0f0 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041e0f8 test rax, rax | | if (rax != 0) { 0x0041e0fb je 0x41e1c6 | 0x0041e101 mov esi, dword [rax + 8] | 0x0041e104 mov rdi, rsp | 0x0041e107 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041e10c jmp 0x41e1d3 | | } else { 0x0041e120 test r14d, r14d | | if (r14d != 0) { 0x0041e123 jne 0x41e4f6 | goto label_4; | } 0x0041e129 mov edi, 0x6d3df0 | 0x0041e12e mov esi, 0x48d32c | 0x0041e133 mov edx, 4 | 0x0041e138 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); 0x0041e13d mov esi, 0x48ce6f | 0x0041e142 mov edx, 2 | 0x0041e147 mov rdi, rax | 0x0041e14a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e14f mov rdi, rax | rdi = rax; 0x0041e152 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e156 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e15b mov esi, 0x48cc9f | 0x0041e160 mov edx, 1 | 0x0041e165 mov rdi, rax | 0x0041e168 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e16d mov esi, 0x48d341 | 0x0041e172 mov edx, 2 | 0x0041e177 mov rdi, rax | 0x0041e17a call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x0041e17f mov esi, 0x48ce6f | 0x0041e184 mov edx, 2 | 0x0041e189 mov rdi, rax | 0x0041e18c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e191 mov rdi, rax | rdi = rax; 0x0041e194 xor esi, esi | esi = 0; 0x0041e196 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e19b mov esi, 0x48d148 | 0x0041e1a0 mov edx, 1 | 0x0041e1a5 mov rdi, rax | 0x0041e1a8 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041e1ad mov esi, 0x48d33c | esi = "0 != rc"; 0x0041e1b2 mov edi, 1 | edi = 1; 0x0041e1b7 mov edx, 0xd4 | edx = 0xd4; 0x0041e1bc call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041e1c1 jmp 0x41e4f6 | goto label_4; | } 0x0041e1c6 mov rdi, rsp | 0x0041e1c9 mov esi, 3 | 0x0041e1ce call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041e1d3 mov rdi, r12 | 0x0041e1d6 mov esi, 0x27 | 0x0041e1db mov rdx, qword [rsp + 0x78] | 0x0041e1e0 mov rcx, rsp | rcx = rsp; 0x0041e1e3 call 0x436a10 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Dateconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78))); 0x0041e1e8 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0041e1ed mov rdi, r12 | 0x0041e1f0 call 0x404000 | rax = strlen (r12); 0x0041e1f5 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0041e1fa lea rdi, [rsp + 0xc8] | 0x0041e202 mov rsi, rbp | 0x0041e205 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x0041e20a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041e212 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041e216 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041e21e je 0x41e2bc | 0x0041e224 mov edi, 0x6d3df0 | 0x0041e229 mov esi, 0x48d32c | 0x0041e22e mov edx, 4 | 0x0041e233 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); 0x0041e238 mov esi, 0x48ce6f | 0x0041e23d mov edx, 2 | 0x0041e242 mov rdi, rax | 0x0041e245 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e24a mov rdi, rax | rdi = rax; 0x0041e24d mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e251 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e256 mov esi, 0x48cc9f | 0x0041e25b mov edx, 1 | 0x0041e260 mov rdi, rax | 0x0041e263 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e268 mov esi, 0x4a9942 | 0x0041e26d mov edx, 1 | 0x0041e272 mov rdi, rax | 0x0041e275 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041e27a mov esi, 0x48ce6f | 0x0041e27f mov edx, 2 | 0x0041e284 mov rdi, rax | 0x0041e287 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e28c mov rdi, rax | rdi = rax; 0x0041e28f mov esi, ebx | esi = ebx; 0x0041e291 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e296 mov esi, 0x48d148 | 0x0041e29b mov edx, 1 | 0x0041e2a0 mov rdi, rax | 0x0041e2a3 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041e2a8 mov esi, 0x48d331 | esi = "exp.good()"; 0x0041e2ad mov edi, 1 | edi = 1; 0x0041e2b2 mov edx, 0xcf | edx = 0xcf; 0x0041e2b7 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041e2bc mov rdi, r12 | 0x0041e2bf lea rsi, [rsp + 0x1f0] | 0x0041e2c7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041e2cc mov rdi, rbp | 0x0041e2cf lea rsi, [rsp + 0xd0] | 0x0041e2d7 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041e2dc mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x0041e2e1 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x0041e2e6 jne 0x41e330 | 0x0041e2e8 test rdx, rdx | | if (rdx != 0) { 0x0041e2eb je 0x41e33c | 0x0041e2ed cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041e2f3 je 0x41e2fa | 0x0041e2f5 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x0041e2fa cmp qword [rsp + 0x30], 0x17 | 0x0041e300 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x0041e303 je 0x41e30a | 0x0041e305 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x0041e30a mov rsi, rbp | rsi = rbp; 0x0041e30d call 0x404130 | eax = bcmp (); 0x0041e312 test eax, eax | 0x0041e314 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041e318 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x0041e31e jne 0x41e350 | 0x0041e320 jmp 0x41e360 | | } else { 0x0041e330 xor ebp, ebp | ebp = 0; 0x0041e332 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041e338 jne 0x41e350 | goto label_5; | } 0x0041e33a jmp 0x41e360 | | } else { 0x0041e33c mov bpl, 1 | bpl = 1; 0x0041e33f cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x0041e345 je 0x41e360 | goto label_6; | } 0x0041e347 nop word [rax + rax] | | label_5: 0x0041e350 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041e355 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041e35a mov rax, qword [rdi] | rax = *(rdi); 0x0041e35d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041e360 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041e366 je 0x41e378 | 0x0041e368 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041e36d mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041e372 mov rax, qword [rdi] | rax = *(rdi); 0x0041e375 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e378 test bpl, bpl | 0x0041e37b lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x0041e380 jne 0x41e4f6 | 0x0041e386 mov edi, 0x6d3df0 | 0x0041e38b mov esi, 0x48d32c | 0x0041e390 mov edx, 4 | 0x0041e395 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); 0x0041e39a mov esi, 0x48ce6f | 0x0041e39f mov edx, 2 | 0x0041e3a4 mov rdi, rax | 0x0041e3a7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e3ac mov rdi, rax | rdi = rax; 0x0041e3af mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041e3b3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e3b8 mov esi, 0x48cc9f | 0x0041e3bd mov edx, 1 | 0x0041e3c2 mov rdi, rax | 0x0041e3c5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e3ca mov esi, 0x4a9942 | 0x0041e3cf mov edx, 1 | 0x0041e3d4 mov rdi, rax | 0x0041e3d7 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0041e3dc mov esi, 0x48ce6f | 0x0041e3e1 mov edx, 2 | 0x0041e3e6 mov rdi, rax | 0x0041e3e9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e3ee mov rdi, rax | rdi = rax; 0x0041e3f1 mov esi, ebx | esi = ebx; 0x0041e3f3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041e3f8 mov esi, 0x48cc9f | 0x0041e3fd mov edx, 1 | 0x0041e402 mov rdi, rax | 0x0041e405 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e40a mov esi, 0x48cc59 | 0x0041e40f mov edx, 8 | 0x0041e414 mov rdi, rax | 0x0041e417 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x0041e41c mov esi, 0x48ce6f | 0x0041e421 mov edx, 2 | 0x0041e426 mov rdi, rax | 0x0041e429 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e42e mov rbx, rax | rbx = rax; 0x0041e431 mov rdi, r12 | 0x0041e434 lea rsi, [rsp + 0x1f0] | 0x0041e43c call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041e441 mov rdi, rbx | 0x0041e444 mov rsi, r12 | 0x0041e447 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041e44c mov esi, 0x48cc9f | 0x0041e451 mov edx, 1 | 0x0041e456 mov rdi, rax | 0x0041e459 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0041e45e mov esi, 0x48ce2f | 0x0041e463 mov edx, 9 | 0x0041e468 mov rdi, rax | 0x0041e46b call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x0041e470 mov esi, 0x48ce6f | 0x0041e475 mov edx, 2 | 0x0041e47a mov rdi, rax | 0x0041e47d call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0041e482 mov rbx, rax | rbx = rax; 0x0041e485 mov rdi, rbp | 0x0041e488 lea rsi, [rsp + 0xd0] | 0x0041e490 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041e495 mov rdi, rbx | 0x0041e498 mov rsi, rbp | 0x0041e49b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041e4a0 mov esi, 0x48d148 | 0x0041e4a5 mov edx, 1 | 0x0041e4aa mov rdi, rax | 0x0041e4ad call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0041e4b2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041e4b8 je 0x41e4ca | 0x0041e4ba mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041e4bf mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041e4c4 mov rax, qword [rdi] | rax = *(rdi); 0x0041e4c7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e4ca cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041e4d0 je 0x41e4e2 | 0x0041e4d2 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041e4d7 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041e4dc mov rax, qword [rdi] | rax = *(rdi); 0x0041e4df call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e4e2 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x0041e4e7 mov edi, 1 | edi = 1; 0x0041e4ec mov edx, 0xd1 | edx = 0xd1; 0x0041e4f1 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041e4f6 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041e4fa je 0x41e510 | 0x0041e4fc lea rdi, [rsp + 0x88] | 0x0041e504 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041e509 jmp 0x41e51f | | } else { 0x0041e510 lea rdi, [rsp + 0x88] | 0x0041e518 xor esi, esi | esi = 0; 0x0041e51a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041e51f lea rdi, [rsp + 0xa0] | 0x0041e527 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041e52c mov esi, 0x48d400 | esi = 0x48d400; 0x0041e531 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041e539 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041e53e mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041e54a cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041e553 je 0x41e56b | 0x0041e555 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041e55d mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041e565 mov rax, qword [rdi] | rax = *(rdi); 0x0041e568 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041e56b mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041e577 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041e57f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041e584 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041e58c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041e591 mov esi, 0x48d400 | esi = 0x48d400; 0x0041e596 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041e59e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041e5a3 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x0041e5af cmp qword [rsp + 0x250], 0x17 | 0x0041e5b8 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041e5c0 je 0x41dd20 | | } 0x0041e5c6 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041e5ce mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041e5d6 mov rax, qword [rdi] | rax = *(rdi); 0x0041e5d9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041e5dc jmp 0x41dd20 | goto label_0; | label_1: 0x0041e5e1 add rsp, 0x308 | 0x0041e5e8 pop rbx | 0x0041e5e9 pop r12 | 0x0041e5eb pop r13 | 0x0041e5ed pop r14 | 0x0041e5ef pop r15 | 0x0041e5f1 pop rbp | 0x0041e5f2 ret | return rax; | }