; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/assume @ 0x41ff50 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.DateTz__int__int__int__int__BloombergLP::bdlt::DateTz_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_DateTz_int_int_int_int_BloombergLP::bdlt::DateTz_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::DateTz const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041ff50 push rbp | 0x0041ff51 push r15 | 0x0041ff53 push r14 | 0x0041ff55 push r13 | 0x0041ff57 push r12 | 0x0041ff59 push rbx | 0x0041ff5a sub rsp, 0x308 | 0x0041ff61 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041ff69 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041ff6e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041ff72 mov r15d, esi | r15d = esi; 0x0041ff75 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041ff79 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041ff7e lea eax, [rdx + 1] | eax = rdx + 1; 0x0041ff81 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041ff85 xor ebx, ebx | ebx = 0; 0x0041ff87 mov r13b, 1 | r13b = 1; 0x0041ff8a lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0041ff8f jmp 0x41ffd6 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041ffa0 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041ffac mov rdi, rbx | rdi = rbx; 0x0041ffaf call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041ffb4 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041ffbc call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041ffc1 mov ebx, 1 | ebx = 1; 0x0041ffc6 test r13b, 1 | 0x0041ffca mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041ffd0 je 0x420861 | goto label_1; | } 0x0041ffd6 mov rax, qword [rip + 0x2b3f83] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041ffdd test rax, rax | | if (rax == 0) { 0x0041ffe0 jne 0x41ffe7 | 0x0041ffe2 call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041ffe7 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041ffef mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041fffb lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x00420003 mov rdi, rbp | 0x00420006 mov esi, 0x10 | 0x0042000b lea rdx, [rsp + 0xc8] | 0x00420013 call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x00420018 mov qword [rsp + 0x1e8], 0x48d430 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d430; 0x00420024 mov qword [rsp + 0x270], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x00420030 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x00420038 mov rsi, rbp | rsi = rbp; 0x0042003b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x00420040 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0042004c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x00420057 mov qword [rsp + 0x1e8], 0x48d3c0 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48d3c0; 0x00420063 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; 0x0042006f mov rax, qword [rip + 0x2b3eea] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420076 test rax, rax | | if (rax == 0) { 0x00420079 jne 0x420080 | 0x0042007b call 0x466660 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x00420080 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x00420088 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x00420094 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0042009c mov rdi, rbp | 0x0042009f mov esi, 0x10 | 0x004200a4 lea rdx, [rsp + 0x88] | 0x004200ac call 0x422ea0 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x004200b1 mov qword [rsp + 0xc8], 0x48d430 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x004200bd mov qword [rsp + 0x150], 0x48d458 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48d458; 0x004200c9 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x004200d1 mov rsi, rbp | rsi = rbp; 0x004200d4 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x004200d9 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x004200e5 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x004200f0 mov qword [rsp + 0xc8], 0x48d3c0 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004200fc 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; 0x00420108 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x00420110 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x00420118 mov edx, r15d | edx = r15d; 0x0042011b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x00420120 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x00420125 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x00420157 cmp r15d, 1 | | if (r15d != 1) { 0x0042015b jne 0x4201fa | goto label_2; | } 0x00420161 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x00420166 mov edx, 1 | 0x0042016b lea rdi, [rsp + 0xc8] | 0x00420173 mov rsi, r12 | 0x00420176 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0042017b jmp 0x4201fa | | } else { 0x00420180 lea rdi, [rsp + 0x88] | 0x00420188 xor esi, esi | 0x0042018a call 0x423c20 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0042018f cmp r15d, 1 | | if (r15d == 1) { 0x00420193 jne 0x4201ab | 0x00420195 lea rdi, [rsp + 0xc8] | 0x0042019d mov rsi, qword [rsp + 0x70] | 0x004201a2 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004201a6 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x004201ab mov byte [rsp + 0x10], 0x5b | *((rsp + 0x10)) = 0x5b; 0x004201b0 mov edx, 1 | 0x004201b5 lea rdi, [rsp + 0xc8] | 0x004201bd mov rsi, r12 | 0x004201c0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x004201c5 cmp r15d, 1 | | if (r15d != 1) { 0x004201c9 jne 0x4201fa | goto label_2; | } 0x004201cb mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x004201d0 mov edx, 1 | 0x004201d5 lea rdi, [rsp + 0xc8] | 0x004201dd mov rsi, r12 | 0x004201e0 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x004201e5 lea rdi, [rsp + 0xc8] | 0x004201ed mov esi, dword [rsp + 0xc] | 0x004201f1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x004201f5 call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x004201fa cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x00420202 je 0x420243 | 0x00420204 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0042020c mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x00420214 dec rcx | rcx--; 0x00420217 mov rdx, rcx | rdx = rcx; 0x0042021a shr rdx, 6 | rdx >>= 6; 0x0042021e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x00420222 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x00420226 jae 0x420243 | goto label_3; | } 0x00420228 mov rdi, qword [rsp + 0x88] | 0x00420230 mov esi, dword [rsp + 0x94] | 0x00420237 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0042023e call 0x429350 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x00420243 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0042024b mov dword [rsp], 3 | *(rsp) = 3; 0x00420252 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0042025a test rax, rax | | if (rax != 0) { 0x0042025d je 0x420270 | 0x0042025f mov esi, dword [rax + 8] | 0x00420262 mov rdi, rsp | 0x00420265 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0042026a jmp 0x42027d | | } else { 0x00420270 mov rdi, rsp | 0x00420273 mov esi, 3 | 0x00420278 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0042027d mov rdi, r12 | 0x00420280 mov esi, 0x27 | 0x00420285 mov rdx, qword [rsp + 0x78] | 0x0042028a mov rcx, rsp | 0x0042028d call 0x437bd0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DateTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420292 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x00420297 mov rdi, r12 | 0x0042029a call 0x404000 | rax = strlen (r12); 0x0042029f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004202a4 mov rdi, rbp | 0x004202a7 lea rsi, [rsp + 0x40] | 0x004202ac call 0x423e80 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x40); 0x004202b1 mov r14d, eax | r14d = eax; 0x004202b4 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x004202bc je 0x4203a0 | 0x004202c2 test r14d, r14d | 0x004202c5 lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (r14d != 0) { 0x004202ca je 0x420369 | 0x004202d0 mov edi, 0x6d3df0 | 0x004202d5 mov esi, 0x48d32c | 0x004202da mov edx, 4 | 0x004202df 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); 0x004202e4 mov esi, 0x48ce6f | 0x004202e9 mov edx, 2 | 0x004202ee mov rdi, rax | 0x004202f1 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004202f6 mov rdi, rax | rdi = rax; 0x004202f9 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004202fd call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420302 mov esi, 0x48cc9f | 0x00420307 mov edx, 1 | 0x0042030c mov rdi, rax | 0x0042030f call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x00420314 mov esi, 0x48d341 | 0x00420319 mov edx, 2 | 0x0042031e mov rdi, rax | 0x00420321 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x00420326 mov esi, 0x48ce6f | 0x0042032b mov edx, 2 | 0x00420330 mov rdi, rax | 0x00420333 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420338 mov rdi, rax | rdi = rax; 0x0042033b mov esi, r14d | esi = r14d; 0x0042033e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420343 mov esi, 0x48d148 | 0x00420348 mov edx, 1 | 0x0042034d mov rdi, rax | 0x00420350 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00420355 mov esi, 0x48d10b | esi = "0 == rc"; 0x0042035a mov edi, 1 | edi = 1; 0x0042035f mov edx, 0xcc | edx = 0xcc; 0x00420364 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00420369 mov dword [rsp], 3 | *(rsp) = 3; 0x00420370 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x00420378 test rax, rax | | if (rax != 0) { 0x0042037b je 0x420446 | 0x00420381 mov esi, dword [rax + 8] | 0x00420384 mov rdi, rsp | 0x00420387 call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0042038c jmp 0x420453 | | } else { 0x004203a0 test r14d, r14d | | if (r14d != 0) { 0x004203a3 jne 0x420776 | goto label_4; | } 0x004203a9 mov edi, 0x6d3df0 | 0x004203ae mov esi, 0x48d32c | 0x004203b3 mov edx, 4 | 0x004203b8 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); 0x004203bd mov esi, 0x48ce6f | 0x004203c2 mov edx, 2 | 0x004203c7 mov rdi, rax | 0x004203ca call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004203cf mov rdi, rax | rdi = rax; 0x004203d2 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004203d6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004203db mov esi, 0x48cc9f | 0x004203e0 mov edx, 1 | 0x004203e5 mov rdi, rax | 0x004203e8 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x004203ed mov esi, 0x48d341 | 0x004203f2 mov edx, 2 | 0x004203f7 mov rdi, rax | 0x004203fa call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d341, 2); 0x004203ff mov esi, 0x48ce6f | 0x00420404 mov edx, 2 | 0x00420409 mov rdi, rax | 0x0042040c call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420411 mov rdi, rax | rdi = rax; 0x00420414 xor esi, esi | esi = 0; 0x00420416 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042041b mov esi, 0x48d148 | 0x00420420 mov edx, 1 | 0x00420425 mov rdi, rax | 0x00420428 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x0042042d mov esi, 0x48d33c | esi = "0 != rc"; 0x00420432 mov edi, 1 | edi = 1; 0x00420437 mov edx, 0xd4 | edx = 0xd4; 0x0042043c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00420441 jmp 0x420776 | goto label_4; | } 0x00420446 mov rdi, rsp | 0x00420449 mov esi, 3 | 0x0042044e call 0x439f00 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x00420453 mov rdi, r12 | 0x00420456 mov esi, 0x27 | 0x0042045b mov rdx, qword [rsp + 0x78] | 0x00420460 mov rcx, rsp | 0x00420463 call 0x437bd0 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::DateTzconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x00420468 mov qword [rsp + 0x40], r12 | *((rsp + 0x40)) = r12; 0x0042046d mov rdi, r12 | 0x00420470 call 0x404000 | rax = strlen (r12); 0x00420475 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x0042047a lea rdi, [rsp + 0xc8] | 0x00420482 mov rsi, rbp | 0x00420485 call 0x423e80 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rbp); 0x0042048a mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x00420492 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00420496 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0042049e je 0x42053c | 0x004204a4 mov edi, 0x6d3df0 | 0x004204a9 mov esi, 0x48d32c | 0x004204ae mov edx, 4 | 0x004204b3 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); 0x004204b8 mov esi, 0x48ce6f | 0x004204bd mov edx, 2 | 0x004204c2 mov rdi, rax | 0x004204c5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004204ca mov rdi, rax | rdi = rax; 0x004204cd mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x004204d1 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004204d6 mov esi, 0x48cc9f | 0x004204db mov edx, 1 | 0x004204e0 mov rdi, rax | 0x004204e3 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x004204e8 mov esi, 0x4a9942 | 0x004204ed mov edx, 1 | 0x004204f2 mov rdi, rax | 0x004204f5 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x004204fa mov esi, 0x48ce6f | 0x004204ff mov edx, 2 | 0x00420504 mov rdi, rax | 0x00420507 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042050c mov rdi, rax | rdi = rax; 0x0042050f mov esi, ebx | esi = ebx; 0x00420511 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420516 mov esi, 0x48d148 | 0x0042051b mov edx, 1 | 0x00420520 mov rdi, rax | 0x00420523 call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00420528 mov esi, 0x48d331 | esi = "exp.good()"; 0x0042052d mov edi, 1 | edi = 1; 0x00420532 mov edx, 0xcf | edx = 0xcf; 0x00420537 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042053c mov rdi, r12 | 0x0042053f lea rsi, [rsp + 0x1f0] | 0x00420547 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0042054c mov rdi, rbp | 0x0042054f lea rsi, [rsp + 0xd0] | 0x00420557 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0042055c mov rdx, qword [rsp + 0x28] | rdx = *((rsp + 0x28)); 0x00420561 cmp rdx, qword [rsp + 0x58] | | if (rdx == *((rsp + 0x58))) { 0x00420566 jne 0x4205b0 | 0x00420568 test rdx, rdx | | if (rdx != 0) { 0x0042056b je 0x4205bc | 0x0042056d cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00420573 je 0x42057a | 0x00420575 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); | } 0x0042057a cmp qword [rsp + 0x30], 0x17 | 0x00420580 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x30)) != 0x17) { 0x00420583 je 0x42058a | 0x00420585 mov rdi, qword [rsp + 0x10] | rdi = *((rsp + 0x10)); | } 0x0042058a mov rsi, rbp | rsi = rbp; 0x0042058d call 0x404130 | eax = bcmp (); 0x00420592 test eax, eax | 0x00420594 sete bpl | bpl = (eax == 0) ? 1 : 0; 0x00420598 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) == 0x17) { 0x0042059e jne 0x4205d0 | 0x004205a0 jmp 0x4205e0 | | } else { 0x004205b0 xor ebp, ebp | ebp = 0; 0x004205b2 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x004205b8 jne 0x4205d0 | goto label_5; | } 0x004205ba jmp 0x4205e0 | | } else { 0x004205bc mov bpl, 1 | bpl = 1; 0x004205bf cmp qword [rsp + 0x60], 0x17 | | } | } | if (*((rsp + 0x60)) == 0x17) { 0x004205c5 je 0x4205e0 | goto label_6; | } 0x004205c7 nop word [rax + rax] | | label_5: 0x004205d0 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x004205d5 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x004205da mov rax, qword [rdi] | rax = *(rdi); 0x004205dd call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x004205e0 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x004205e6 je 0x4205f8 | 0x004205e8 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x004205ed mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x004205f2 mov rax, qword [rdi] | rax = *(rdi); 0x004205f5 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004205f8 test bpl, bpl | 0x004205fb lea rbp, [rsp + 0x40] | rbp = rsp + 0x40; | if (bpl == 0) { 0x00420600 jne 0x420776 | 0x00420606 mov edi, 0x6d3df0 | 0x0042060b mov esi, 0x48d32c | 0x00420610 mov edx, 4 | 0x00420615 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); 0x0042061a mov esi, 0x48ce6f | 0x0042061f mov edx, 2 | 0x00420624 mov rdi, rax | 0x00420627 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042062c mov rdi, rax | rdi = rax; 0x0042062f mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x00420633 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420638 mov esi, 0x48cc9f | 0x0042063d mov edx, 1 | 0x00420642 mov rdi, rax | 0x00420645 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0042064a mov esi, 0x4a9942 | 0x0042064f mov edx, 1 | 0x00420654 mov rdi, rax | 0x00420657 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4a9942, 1); 0x0042065c mov esi, 0x48ce6f | 0x00420661 mov edx, 2 | 0x00420666 mov rdi, rax | 0x00420669 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x0042066e mov rdi, rax | rdi = rax; 0x00420671 mov esi, ebx | esi = ebx; 0x00420673 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00420678 mov esi, 0x48cc9f | 0x0042067d mov edx, 1 | 0x00420682 mov rdi, rax | 0x00420685 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x0042068a mov esi, 0x48cc59 | 0x0042068f mov edx, 8 | 0x00420694 mov rdi, rax | 0x00420697 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc59, 8); 0x0042069c mov esi, 0x48ce6f | 0x004206a1 mov edx, 2 | 0x004206a6 mov rdi, rax | 0x004206a9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x004206ae mov rbx, rax | rbx = rax; 0x004206b1 mov rdi, r12 | 0x004206b4 lea rsi, [rsp + 0x1f0] | 0x004206bc call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x004206c1 mov rdi, rbx | 0x004206c4 mov rsi, r12 | 0x004206c7 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x004206cc mov esi, 0x48cc9f | 0x004206d1 mov edx, 1 | 0x004206d6 mov rdi, rax | 0x004206d9 call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48cc9f, 1); 0x004206de mov esi, 0x48ce2f | 0x004206e3 mov edx, 9 | 0x004206e8 mov rdi, rax | 0x004206eb call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce2f, 9); 0x004206f0 mov esi, 0x48ce6f | 0x004206f5 mov edx, 2 | 0x004206fa mov rdi, rax | 0x004206fd call 0x422be0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48ce6f, 2); 0x00420702 mov rbx, rax | rbx = rax; 0x00420705 mov rdi, rbp | 0x00420708 lea rsi, [rsp + 0xd0] | 0x00420710 call 0x423070 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x00420715 mov rdi, rbx | 0x00420718 mov rsi, rbp | 0x0042071b call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x00420720 mov esi, 0x48d148 | 0x00420725 mov edx, 1 | 0x0042072a mov rdi, rax | 0x0042072d call 0x422be0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d148, 1); 0x00420732 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x00420738 je 0x42074a | 0x0042073a mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0042073f mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x00420744 mov rax, qword [rdi] | rax = *(rdi); 0x00420747 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042074a cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x00420750 je 0x420762 | 0x00420752 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x00420757 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0042075c mov rax, qword [rdi] | rax = *(rdi); 0x0042075f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x00420762 mov esi, 0x48ce23 | esi = "os.str() == exp.str()"; 0x00420767 mov edi, 1 | edi = 1; 0x0042076c mov edx, 0xd1 | edx = 0xd1; 0x00420771 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x00420776 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0042077a je 0x420790 | 0x0042077c lea rdi, [rsp + 0x88] | 0x00420784 call 0x423ba0 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x00420789 jmp 0x42079f | | } else { 0x00420790 lea rdi, [rsp + 0x88] | 0x00420798 xor esi, esi | esi = 0; 0x0042079a call 0x423cf0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0042079f lea rdi, [rsp + 0xa0] | 0x004207a7 call 0x42a1f0 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x004207ac mov esi, 0x48d400 | esi = 0x48d400; 0x004207b1 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x004207b9 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x004207be mov qword [rsp + 0xd0], 0x48d550 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x004207ca cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x004207d3 je 0x4207eb | 0x004207d5 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x004207dd mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x004207e5 mov rax, qword [rdi] | rax = *(rdi); 0x004207e8 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004207eb mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x004207f7 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x004207ff call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00420804 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0042080c call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x00420811 mov esi, 0x48d400 | esi = 0x48d400; 0x00420816 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0042081e call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x00420823 mov qword [rsp + 0x1f0], 0x48d550 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48d550; 0x0042082f cmp qword [rsp + 0x250], 0x17 | 0x00420838 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x00420840 je 0x41ffa0 | | } 0x00420846 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0042084e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x00420856 mov rax, qword [rdi] | rax = *(rdi); 0x00420859 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0042085c jmp 0x41ffa0 | goto label_0; | label_1: 0x00420861 add rsp, 0x308 | 0x00420868 pop rbx | 0x00420869 pop r12 | 0x0042086b pop r13 | 0x0042086d pop r14 | 0x0042086f pop r15 | 0x00420871 pop rbp | 0x00420872 ret | return rax; | }