; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/assume @ 0x429fa0 */ | #include | ; (fcn) method.void_testCase04_bsl::basic_string_char__std::__1::char_traits_char___bsl.allocator_char_______ () | int64_t method_void_testCase04_bsl::basic_string_char_std::_1::char_traits_char_bsl_allocator_char_ (void) { | int64_t var_10h; | int64_t var_11h; | int64_t var_18h; | int64_t var_1eh; | int64_t var_20h; | int64_t var_30h; | uint32_t var_48h; | uint32_t var_50h; | int64_t var_58h; | int64_t var_60h; | int64_t var_78h; | uint32_t var_80h; | int64_t var_88h; | int64_t var_90h; | int64_t var_98h; | int64_t var_a0h; | uint32_t var_a8h; | uint32_t var_b0h; | int64_t var_b8h; | int64_t var_c0h; | int64_t var_c8h; | int64_t var_ceh; | int64_t var_d0h; | int64_t var_e0h; | int64_t var_f0h; | int64_t var_f8h; | uint32_t var_100h; | int64_t var_108h; | int64_t var_120h; | int64_t var_128h; | int64_t var_130h; | int64_t var_140h; | int64_t var_158h; | /* void testCase04, bsl::allocator > >() */ 0x00429fa0 push rbp | 0x00429fa1 push r15 | 0x00429fa3 push r14 | 0x00429fa5 push r13 | 0x00429fa7 push r12 | 0x00429fa9 push rbx | 0x00429faa sub rsp, 0x228 | 0x00429fb1 lea rdi, [rsp + 0x158] | 0x00429fb9 mov esi, 0x4c9b8b | 0x00429fbe xor edx, edx | 0x00429fc0 call 0x490e00 | BloombergLP::bslma::TestAllocator::TestAllocator(char const*,BloombergLP::bslma::Allocator*) (rsp + 0x158, "test", 0); 0x00429fc5 lea rdi, [rsp + 0x140] | 0x00429fcd call 0x43cb70 | BloombergLP::baljsn::DatumEncoderOptions::DatumEncoderOptions() (rsp + 0x140); 0x00429fd2 mov byte [rsp + 0x140], 1 | *((rsp + 0x140)) = 1; 0x00429fda cmp byte [rip + 0x2f8700], 0 | | if (*(obj.veryVerbose) != 0) { 0x00429fe1 je 0x42a0bb | 0x00429fe7 mov rax, qword [rip + 0x2f8642] | rax = std::__1::cout; 0x00429fee mov esi, 0x722630 | esi = std::__1::cout; 0x00429ff3 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x00429ff7 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x00429fff call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a004 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a00c mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a011 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a016 mov rcx, qword [rax] | rcx = *(rax); 0x0042a019 mov rdi, rax | rdi = rax; 0x0042a01c mov esi, 0xa | esi = 0xa; 0x0042a021 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a024 mov ebx, eax | ebx = eax; 0x0042a026 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a02e call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a033 movsx esi, bl | esi = (int32_t) bl; 0x0042a036 mov edi, 0x722630 | edi = std::__1::cout; 0x0042a03b call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a040 mov edi, 0x722630 | edi = std::__1::cout; 0x0042a045 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a04a mov edi, 0x722630 | 0x0042a04f mov esi, 0x4d0e49 | 0x0042a054 mov edx, 0x23 | 0x0042a059 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "1. Verify we can round-trip strings", 0x23); 0x0042a05e mov rbx, rax | rbx = rax; 0x0042a061 mov rax, qword [rax] | rax = *(rax); 0x0042a064 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a068 add rsi, rbx | rsi += rbx; 0x0042a06b lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a073 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a078 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a080 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a085 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a08a mov rcx, qword [rax] | rcx = *(rax); 0x0042a08d mov rdi, rax | rdi = rax; 0x0042a090 mov esi, 0xa | esi = 0xa; 0x0042a095 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a098 mov ebp, eax | 0x0042a09a lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0a2 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a0a7 movsx esi, bpl | esi = (int32_t) bpl; 0x0042a0ab mov rdi, rbx | rdi = rbx; 0x0042a0ae call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a0b3 mov rdi, rbx | rdi = rbx; 0x0042a0b6 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a0bb cmp byte [rip + 0x2f8620], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042a0c2 je 0x42a19c | 0x0042a0c8 mov rax, qword [rip + 0x2f8561] | rax = std::__1::cout; 0x0042a0cf mov esi, 0x722630 | esi = std::__1::cout; 0x0042a0d4 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042a0d8 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0e0 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a0e5 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0ed mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a0f2 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a0f7 mov rcx, qword [rax] | rcx = *(rax); 0x0042a0fa mov rdi, rax | rdi = rax; 0x0042a0fd mov esi, 0xa | esi = 0xa; 0x0042a102 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a105 mov ebx, eax | ebx = eax; 0x0042a107 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a10f call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a114 movsx esi, bl | esi = (int32_t) bl; 0x0042a117 mov edi, 0x722630 | edi = std::__1::cout; 0x0042a11c call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a121 mov edi, 0x722630 | edi = std::__1::cout; 0x0042a126 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a12b mov edi, 0x722630 | 0x0042a130 mov esi, 0x4d0e6d | 0x0042a135 mov edx, 0x1d | 0x0042a13a call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "\ta. round-trip simple string.", 0x1d); 0x0042a13f mov rbx, rax | rbx = rax; 0x0042a142 mov rax, qword [rax] | rax = *(rax); 0x0042a145 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a149 add rsi, rbx | rsi += rbx; 0x0042a14c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a154 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a159 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a161 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a166 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a16b mov rcx, qword [rax] | rcx = *(rax); 0x0042a16e mov rdi, rax | rdi = rax; 0x0042a171 mov esi, 0xa | esi = 0xa; 0x0042a176 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a179 mov ebp, eax | 0x0042a17b lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a183 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a188 movsx esi, bpl | esi = (int32_t) bpl; 0x0042a18c mov rdi, rbx | rdi = rbx; 0x0042a18f call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a194 mov rdi, rbx | rdi = rbx; 0x0042a197 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a19c mov rax, qword [rip + 0x2faf5d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a1a3 test rax, rax | | if (rax == 0) { 0x0042a1a6 jne 0x42a1ad | 0x0042a1a8 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a1ad mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042a1b6 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042a1be movapd xmm0, xmmword [rip + 0x8c6da] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042a1c6 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042a1cc lea rdi, [rsp + 0x60] | 0x0042a1d1 mov esi, 0x4cf272 | 0x0042a1d6 mov edx, 5 | 0x0042a1db mov ecx, 0x4d060a | 0x0042a1e0 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rsp + 0x60, 0x4cf272, 5, "string<...>::assign(char*...): string too long"); 0x0042a1e5 lea rdi, [rsp + 0xe0] | 0x0042a1ed lea rbx, [rsp + 0x60] | rbx = rsp + 0x60; 0x0042a1f2 mov esi, 0x4cf2a2 | 0x0042a1f7 mov rdx, rbx | 0x0042a1fa call 0x43c960 | bsl::basic_string,bsl::allocator>bsl::operator+,bsl::allocator>(char const*,bsl::basic_string,bsl::allocator>const&) (rsp + 0xe0, 0x4cf2a2, rbx); 0x0042a1ff lea r15, [rsp + 0x30] | r15 = rsp + 0x30; 0x0042a204 lea rsi, [rsp + 0xe0] | 0x0042a20c mov edx, 0x4cf2a2 | 0x0042a211 mov rdi, r15 | 0x0042a214 call 0x43c870 | bsl::basic_string,bsl::allocator>bsl::operator+,bsl::allocator>(bsl::basic_string,bsl::allocator>const&,char const*) (r15, rsp + 0xe0, 0x4cf2a2); 0x0042a219 cmp qword [rsp + 0x100], 0x17 | | if (*((rsp + 0x100)) != 0x17) { 0x0042a222 je 0x42a23a | 0x0042a224 mov rsi, qword [rsp + 0xe0] | rsi = *((rsp + 0xe0)); 0x0042a22c mov rdi, qword [rsp + 0x108] | rdi = *((rsp + 0x108)); 0x0042a234 mov rax, qword [rdi] | rax = *(rdi); 0x0042a237 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a23a mov rsi, qword [rsp + 0x78] | rsi = *((rsp + 0x78)); 0x0042a23f cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a248 je 0x42a24f | 0x0042a24a mov rbx, qword [rsp + 0x60] | rbx = *((rsp + 0x60)); | } 0x0042a24f lea r14, [rsp + 0x158] | r14 = rsp + 0x158; 0x0042a257 mov rdi, rbx | 0x0042a25a mov rdx, r14 | 0x0042a25d call 0x449f60 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (rbx, rsi, r14); 0x0042a262 mov qword [rsp + 0xc0], rax | *((rsp + 0xc0)) = rax; 0x0042a26a mov qword [rsp + 0xc8], rdx | *((rsp + 0xc8)) = rdx; 0x0042a272 mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042a27a mov qword [rsp + 0x90], 0 | *((rsp + 0x90)) = 0; 0x0042a286 movapd xmm0, xmmword [rip + 0x8c612] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042a28e movupd xmmword [rsp + 0xa8], xmm0 | __asm ("movupd xmmword [rsp + 0xa8], xmm0"); 0x0042a297 mov rax, qword [rip + 0x2fae62] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a29e test rax, rax | | if (rax != 0) { 0x0042a2a1 je 0x42a2b5 | 0x0042a2a3 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; 0x0042a2ab mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; 0x0042a2b3 jmp 0x42a2df | | } else { 0x0042a2b5 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042a2ba cmp qword [rsp + 0xb0], 0x17 | 0x0042a2c3 mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; | if (*((rsp + 0xb0)) != 0x17) { 0x0042a2cb je 0x42a2d7 | 0x0042a2cd mov rcx, qword [rsp + 0x90] | rcx = *((rsp + 0x90)); 0x0042a2d5 jmp 0x42a2df | | } else { 0x0042a2d7 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; | } | } 0x0042a2df mov byte [rcx], 0 | 0x0042a2e2 lea rbx, [rsp + 0x90] | rbx = rsp + 0x90; 0x0042a2ea lea rsi, [rsp + 0xc0] | 0x0042a2f2 lea rdx, [rsp + 0x140] | 0x0042a2fa mov rdi, rbx | 0x0042a2fd call 0x43dc70 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0xc0, rsp + 0x140, 0, r8, r9); 0x0042a302 xor edi, edi | edi = 0; 0x0042a304 test eax, eax | 0x0042a306 setne dil | dil = (eax != 0) ? 1 : 0; 0x0042a30a mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042a30f mov edx, 0x2c2 | edx = 0x2c2; 0x0042a314 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a319 mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); 0x0042a31e cmp rbp, qword [rsp + 0xa8] | | if (rbp == *((rsp + 0xa8))) { 0x0042a326 jne 0x42a375 | 0x0042a328 test rbp, rbp | | if (rbp != 0) { 0x0042a32b je 0x42a34a | 0x0042a32d cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a336 je 0x42a351 | 0x0042a338 mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a340 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a346 jne 0x42a361 | goto label_0; | } 0x0042a348 jmp 0x42a366 | | } else { 0x0042a34a xor ebp, ebp | ebp = 0; 0x0042a34c jmp 0x42a3d9 | goto label_1; | } 0x0042a351 lea rsi, [rsp + 0x90] | rsi = rsp + 0x90; 0x0042a359 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) == 0x17) { 0x0042a35f je 0x42a366 | goto label_2; | } | label_0: 0x0042a361 mov r15, qword [rsp + 0x30] | r15 = *((rsp + 0x30)); | } | label_2: 0x0042a366 mov rdi, r15 | rdi = *((rsp + 0x30)); 0x0042a369 mov rdx, rbp | rdx = rbp; 0x0042a36c call 0x404900 | eax = bcmp (); 0x0042a371 test eax, eax | | if (eax == 0) { 0x0042a373 je 0x42a3d9 | goto label_1; | } | } 0x0042a375 mov edi, 0x722630 | 0x0042a37a mov esi, 0x4d1277 | 0x0042a37f mov edx, 4 | 0x0042a384 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d1277, 4); 0x0042a389 mov esi, 0x4d06dd | 0x0042a38e mov edx, 2 | 0x0042a393 mov rdi, rax | 0x0042a396 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a39b lea rsi, [rsp + 0x90] | 0x0042a3a3 mov rdi, rax | 0x0042a3a6 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x90); 0x0042a3ab mov esi, 0x4f01d0 | 0x0042a3b0 mov edx, 1 | 0x0042a3b5 mov rdi, rax | 0x0042a3b8 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042a3bd mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0042a3c2 mov edi, 1 | edi = 1; 0x0042a3c7 mov edx, 0x2c3 | edx = 0x2c3; 0x0042a3cc call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a3d1 mov rbp, qword [rsp + 0xa8] | rbp = *((rsp + 0xa8)); | label_1: 0x0042a3d9 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042a3e3 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0042a3e8 mov qword [rsp + 0x20], r14 | *((rsp + 0x20)) = r14; 0x0042a3ed cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a3f6 je 0x42a400 | 0x0042a3f8 mov rbx, qword [rsp + 0x90] | rbx = *((rsp + 0x90)); | } 0x0042a400 lea rdi, [rsp + 0x130] | 0x0042a408 call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x130); 0x0042a40d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a415 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042a41a mov qword [rsp + 0xe0], 0x4d55d0 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042a426 mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042a42e mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042a436 add rbp, rbx | rbp += rbx; 0x0042a439 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042a441 mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042a449 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042a451 lea rdi, [rsp + 0x10] | 0x0042a456 lea rdx, [rsp + 0xe0] | 0x0042a45e lea rcx, [rsp + 0x130] | 0x0042a466 xor esi, esi | 0x0042a468 call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x10, 0, rsp + 0xe0, rsp + 0x130, r8, r9); 0x0042a46d mov ebx, eax | ebx = eax; 0x0042a46f lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a477 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042a47c lea rdi, [rsp + 0x130] | rdi = rsp + 0x130; 0x0042a484 call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042a489 test ebx, ebx | | if (ebx != 0) { 0x0042a48b je 0x42a4e3 | 0x0042a48d mov edi, 0x722630 | 0x0042a492 mov esi, 0x4cfe77 | 0x0042a497 mov edx, 6 | 0x0042a49c call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042a4a1 mov esi, 0x4d06dd | 0x0042a4a6 mov edx, 2 | 0x0042a4ab mov rdi, rax | 0x0042a4ae call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a4b3 mov rdi, rax | rdi = rax; 0x0042a4b6 mov esi, ebx | esi = ebx; 0x0042a4b8 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042a4bd mov esi, 0x4f01d0 | 0x0042a4c2 mov edx, 1 | 0x0042a4c7 mov rdi, rax | 0x0042a4ca call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042a4cf mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042a4d4 mov edi, 1 | edi = 1; 0x0042a4d9 mov edx, 0x2c7 | edx = 0x2c7; 0x0042a4de call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042a4e3 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); 0x0042a4e8 mov ecx, 0x4030 | ecx = 0x4030; 0x0042a4ed bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x0042a4f1 jb 0x42a55b | 0x0042a4f3 mov edi, 0x722630 | 0x0042a4f8 mov esi, 0x4d0e9c | 0x0042a4fd mov edx, 0x11 | 0x0042a502 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "other->isString()", 0x11); 0x0042a507 mov esi, 0x4d06dd | 0x0042a50c mov edx, 2 | 0x0042a511 mov rdi, rax | 0x0042a514 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a519 mov cl, byte [rsp + 0x1e] | cl = *((rsp + 0x1e)); 0x0042a51d mov esi, 0x4030 | esi = 0x4030; 0x0042a522 shr rsi, cl | rsi >>= cl; 0x0042a525 and esi, 1 | esi &= 1; 0x0042a528 mov rdi, rax | rdi = rax; 0x0042a52b call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042a530 mov esi, 0x4f01d0 | 0x0042a535 mov edx, 1 | 0x0042a53a mov rdi, rax | 0x0042a53d call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042a542 mov esi, 0x4d0e9c | esi = "other->isString()"; 0x0042a547 mov edi, 1 | edi = 1; 0x0042a54c mov edx, 0x2c8 | edx = 0x2c8; 0x0042a551 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a556 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); | } 0x0042a55b cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a564 je 0x42a56d | 0x0042a566 mov rdi, qword [rsp + 0x60] | rdi = *((rsp + 0x60)); 0x0042a56b jmp 0x42a572 | | } else { 0x0042a56d lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; | } 0x0042a572 mov rdx, qword [rsp + 0x78] | rdx = *((rsp + 0x78)); 0x0042a577 cwde | eax = (int32_t) ax; 0x0042a578 cmp eax, 0xe | | if (eax != 0xe) { 0x0042a57b je 0x42a582 | 0x0042a57d cmp eax, 5 | | if (eax != 5) { 0x0042a580 jne 0x42a593 | goto label_3; | } | } 0x0042a582 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042a587 movsxd rax, dword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0042a58c cmp rdx, rax | | if (rdx != rax) { 0x0042a58f je 0x42a5a3 | 0x0042a591 jmp 0x42a5b9 | goto label_4; | label_3: 0x0042a593 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042a598 movsx rax, byte [rsp + 0x10] | rax = *((rsp + 0x10)); 0x0042a59e cmp rdx, rax | | if (rdx != rax) { 0x0042a5a1 jne 0x42a5b9 | goto label_4; | } | } 0x0042a5a3 test rdx, rdx | | if (rdx != 0) { 0x0042a5a6 je 0x42a676 | 0x0042a5ac call 0x404900 | eax = bcmp (); 0x0042a5b1 test eax, eax | | if (eax == 0) { 0x0042a5b3 je 0x42a676 | goto label_5; | } | label_4: 0x0042a5b9 mov edi, 0x722630 | 0x0042a5be mov esi, 0x4d0eae | 0x0042a5c3 mov edx, 0xa | 0x0042a5c8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "EXP_STRING", 0xa); 0x0042a5cd mov esi, 0x4d06dd | 0x0042a5d2 mov edx, 2 | 0x0042a5d7 mov rdi, rax | 0x0042a5da call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a5df lea rsi, [rsp + 0x60] | 0x0042a5e4 mov rdi, rax | 0x0042a5e7 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042a5ec mov esi, 0x4f0293 | 0x0042a5f1 mov edx, 1 | 0x0042a5f6 mov rdi, rax | 0x0042a5f9 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042a5fe mov esi, 0x4d0ec7 | 0x0042a603 mov edx, 0x12 | 0x0042a608 mov rdi, rax | 0x0042a60b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0ec7, 0x12); 0x0042a610 mov esi, 0x4d06dd | 0x0042a615 mov edx, 2 | 0x0042a61a mov rdi, rax | 0x0042a61d call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a622 movsx ecx, word [rsp + 0x1e] | ecx = *((rsp + 0x1e)); 0x0042a627 cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042a62a je 0x42a631 | 0x0042a62c cmp ecx, 5 | | if (ecx != 5) { 0x0042a62f jne 0x42a63d | goto label_6; | } | } 0x0042a631 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042a636 movsxd rdx, dword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x0042a63b jmp 0x42a648 | goto label_7; | label_6: 0x0042a63d lea rsi, [rsp + 0x11] | 0x0042a642 movsx rdx, byte [rsp + 0x10] | rdx = *((rsp + 0x10)); | label_7: 0x0042a648 mov rdi, rax | 0x0042a64b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x0042a650 mov esi, 0x4f01d0 | 0x0042a655 mov edx, 1 | 0x0042a65a mov rdi, rax | 0x0042a65d call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042a662 mov esi, 0x4d0eb9 | esi = "EXP_STRING == other->theString()"; 0x0042a667 mov edi, 1 | edi = 1; 0x0042a66c mov edx, 0x2cb | edx = 0x2cb; 0x0042a671 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_5: 0x0042a676 mov rsi, qword [rsp + 0x20] | 0x0042a67b lea rdi, [rsp + 0x10] | 0x0042a680 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x10, *((rsp + 0x20))); 0x0042a685 cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a68e je 0x42a6a6 | 0x0042a690 mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a698 mov rdi, qword [rsp + 0xb8] | rdi = *((rsp + 0xb8)); 0x0042a6a0 mov rax, qword [rdi] | rax = *(rdi); 0x0042a6a3 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a6a6 mov rsi, qword [rsp + 0xd0] | 0x0042a6ae lea rdi, [rsp + 0xc0] | 0x0042a6b6 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042a6bb cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a6c1 je 0x42a6d3 | 0x0042a6c3 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042a6c8 mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042a6cd mov rax, qword [rdi] | rax = *(rdi); 0x0042a6d0 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a6d3 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a6dc je 0x42a6f1 | 0x0042a6de mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042a6e3 mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042a6eb mov rax, qword [rdi] | rax = *(rdi); 0x0042a6ee call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a6f1 cmp byte [rip + 0x2f7fea], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042a6f8 je 0x42a7d2 | 0x0042a6fe mov rax, qword [rip + 0x2f7f2b] | rax = std::__1::cout; 0x0042a705 mov esi, 0x722630 | esi = std::__1::cout; 0x0042a70a add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042a70e lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a716 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a71b lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a723 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a728 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a72d mov rcx, qword [rax] | rcx = *(rax); 0x0042a730 mov rdi, rax | rdi = rax; 0x0042a733 mov esi, 0xa | esi = 0xa; 0x0042a738 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a73b mov ebx, eax | ebx = eax; 0x0042a73d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a745 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a74a movsx esi, bl | esi = (int32_t) bl; 0x0042a74d mov edi, 0x722630 | edi = std::__1::cout; 0x0042a752 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a757 mov edi, 0x722630 | edi = std::__1::cout; 0x0042a75c call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a761 mov edi, 0x722630 | 0x0042a766 mov esi, 0x4d0eda | 0x0042a76b mov edx, 0x2e | 0x0042a770 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "\tb. round-trip string with special characters.", 0x2e); 0x0042a775 mov rbx, rax | rbx = rax; 0x0042a778 mov rax, qword [rax] | rax = *(rax); 0x0042a77b mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a77f add rsi, rbx | rsi += rbx; 0x0042a782 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a78a call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a78f lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a797 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042a79c call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a7a1 mov rcx, qword [rax] | rcx = *(rax); 0x0042a7a4 mov rdi, rax | rdi = rax; 0x0042a7a7 mov esi, 0xa | esi = 0xa; 0x0042a7ac call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a7af mov ebp, eax | 0x0042a7b1 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a7b9 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a7be movsx esi, bpl | esi = (int32_t) bpl; 0x0042a7c2 mov rdi, rbx | rdi = rbx; 0x0042a7c5 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a7ca mov rdi, rbx | rdi = rbx; 0x0042a7cd call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a7d2 mov rax, qword [rip + 0x2fa927] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a7d9 test rax, rax | | if (rax == 0) { 0x0042a7dc jne 0x42a7e3 | 0x0042a7de call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a7e3 mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042a7ec mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042a7f4 movapd xmm0, xmmword [rip + 0x8c0a4] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042a7fc movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042a802 lea rbx, [rsp + 0x60] | rbx = rsp + 0x60; 0x0042a807 mov esi, 0x4d0f09 | 0x0042a80c mov edx, 0xf | 0x0042a811 mov ecx, 0x4d060a | 0x0042a816 mov rdi, rbx | 0x0042a819 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rbx, "\" \\ \b \f \n \r \t ", 0xf, "string<...>::assign(char*...): string too long"); 0x0042a81e mov rax, qword [rip + 0x2fa8db] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a825 test rax, rax | | if (rax == 0) { 0x0042a828 jne 0x42a82f | 0x0042a82a call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a82f mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042a838 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042a83d movapd xmm0, xmmword [rip + 0x8c05b] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042a845 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042a84b lea r15, [rsp + 0x30] | r15 = rsp + 0x30; 0x0042a850 mov esi, 0x4d0f19 | 0x0042a855 mov edx, 0x1d | 0x0042a85a mov ecx, 0x4d060a | 0x0042a85f mov rdi, r15 | 0x0042a862 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r15, "\"\\\" \\\\ \\b \\f \\n \\r \\t \\u0001\", 0x1d, "string<...>::assign(char*...): string too long"); 0x0042a867 mov rsi, qword [rsp + 0x78] | rsi = *((rsp + 0x78)); 0x0042a86c cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a875 je 0x42a87c | 0x0042a877 mov rbx, qword [rsp + 0x60] | rbx = *((rsp + 0x60)); | } 0x0042a87c lea r14, [rsp + 0x158] | r14 = rsp + 0x158; 0x0042a884 mov rdi, rbx | 0x0042a887 mov rdx, r14 | 0x0042a88a call 0x449f60 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (rbx, rsi, r14); 0x0042a88f mov qword [rsp + 0xc0], rax | *((rsp + 0xc0)) = rax; 0x0042a897 mov qword [rsp + 0xc8], rdx | *((rsp + 0xc8)) = rdx; 0x0042a89f mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042a8a7 mov qword [rsp + 0x90], 0 | *((rsp + 0x90)) = 0; 0x0042a8b3 movapd xmm0, xmmword [rip + 0x8bfe5] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042a8bb movupd xmmword [rsp + 0xa8], xmm0 | __asm ("movupd xmmword [rsp + 0xa8], xmm0"); 0x0042a8c4 mov rax, qword [rip + 0x2fa835] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a8cb test rax, rax | | if (rax != 0) { 0x0042a8ce je 0x42a8e2 | 0x0042a8d0 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; 0x0042a8d8 mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; 0x0042a8e0 jmp 0x42a90c | | } else { 0x0042a8e2 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042a8e7 cmp qword [rsp + 0xb0], 0x17 | 0x0042a8f0 mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; | if (*((rsp + 0xb0)) != 0x17) { 0x0042a8f8 je 0x42a904 | 0x0042a8fa mov rcx, qword [rsp + 0x90] | rcx = *((rsp + 0x90)); 0x0042a902 jmp 0x42a90c | | } else { 0x0042a904 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; | } | } 0x0042a90c mov byte [rcx], 0 | 0x0042a90f lea r12, [rsp + 0x90] | r12 = rsp + 0x90; 0x0042a917 lea rsi, [rsp + 0xc0] | 0x0042a91f lea rdx, [rsp + 0x140] | 0x0042a927 mov rdi, r12 | 0x0042a92a call 0x43dc70 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r12, rsp + 0xc0, rsp + 0x140, 0, r8, r9); 0x0042a92f xor edi, edi | edi = 0; 0x0042a931 test eax, eax | 0x0042a933 setne dil | dil = (eax != 0) ? 1 : 0; 0x0042a937 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042a93c mov edx, 0x2d9 | edx = 0x2d9; 0x0042a941 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a946 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x0042a94b cmp rbx, qword [rsp + 0xa8] | | if (rbx != *((rsp + 0xa8))) { 0x0042a953 jne 0x42a9a4 | goto label_8; | } 0x0042a955 test rbx, rbx | | if (rbx == 0) { 0x0042a958 je 0x42a97c | goto label_9; | } 0x0042a95a cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) == 0x17) { 0x0042a963 je 0x42a983 | goto label_10; | } 0x0042a965 mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a96d cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a973 jne 0x42a993 | goto label_11; | } | do { 0x0042a975 lea rdi, [rsp + 0x30] | rdi = rsp + 0x30; 0x0042a97a jmp 0x42a998 | goto label_12; | label_9: 0x0042a97c xor ebx, ebx | ebx = 0; 0x0042a97e jmp 0x42aa08 | goto label_13; | label_10: 0x0042a983 lea rsi, [rsp + 0x90] | rsi = rsp + 0x90; 0x0042a98b cmp qword [rsp + 0x50], 0x17 | 0x0042a991 je 0x42a975 | | } while (*((rsp + 0x50)) == 0x17); | label_11: 0x0042a993 mov rdi, qword [rsp + 0x30] | rdi = *((rsp + 0x30)); | label_12: 0x0042a998 mov rdx, rbx | rdx = rbx; 0x0042a99b call 0x404900 | eax = bcmp (); 0x0042a9a0 test eax, eax | | if (eax != 0) { 0x0042a9a2 je 0x42aa08 | | label_8: 0x0042a9a4 mov edi, 0x722630 | 0x0042a9a9 mov esi, 0x4d1277 | 0x0042a9ae mov edx, 4 | 0x0042a9b3 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d1277, 4); 0x0042a9b8 mov esi, 0x4d06dd | 0x0042a9bd mov edx, 2 | 0x0042a9c2 mov rdi, rax | 0x0042a9c5 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042a9ca lea rsi, [rsp + 0x90] | 0x0042a9d2 mov rdi, rax | 0x0042a9d5 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x90); 0x0042a9da mov esi, 0x4f01d0 | 0x0042a9df mov edx, 1 | 0x0042a9e4 mov rdi, rax | 0x0042a9e7 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042a9ec mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0042a9f1 mov edi, 1 | edi = 1; 0x0042a9f6 mov edx, 0x2da | edx = 0x2da; 0x0042a9fb call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042aa00 mov rbx, qword [rsp + 0xa8] | rbx = *((rsp + 0xa8)); | } | label_13: 0x0042aa08 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042aa12 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0042aa17 mov qword [rsp + 0x20], r14 | *((rsp + 0x20)) = r14; 0x0042aa1c cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042aa25 je 0x42aa2f | 0x0042aa27 mov r12, qword [rsp + 0x90] | r12 = *((rsp + 0x90)); | } 0x0042aa2f lea rdi, [rsp + 0x130] | 0x0042aa37 call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x130); 0x0042aa3c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042aa44 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042aa49 mov qword [rsp + 0xe0], 0x4d55d0 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042aa55 mov qword [rsp + 0x120], r12 | *((rsp + 0x120)) = r12; 0x0042aa5d mov qword [rsp + 0x128], rbx | *((rsp + 0x128)) = rbx; 0x0042aa65 add rbx, r12 | rbx += r12; 0x0042aa68 mov qword [rsp + 0xf0], r12 | *((rsp + 0xf0)) = r12; 0x0042aa70 mov qword [rsp + 0xf8], r12 | *((rsp + 0xf8)) = r12; 0x0042aa78 mov qword [rsp + 0x100], rbx | *((rsp + 0x100)) = rbx; 0x0042aa80 lea rdi, [rsp + 0x10] | 0x0042aa85 lea rdx, [rsp + 0xe0] | 0x0042aa8d lea rcx, [rsp + 0x130] | 0x0042aa95 xor esi, esi | 0x0042aa97 call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x10, 0, rsp + 0xe0, rsp + 0x130, r8, r9); 0x0042aa9c mov ebx, eax | ebx = eax; 0x0042aa9e lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042aaa6 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042aaab lea rdi, [rsp + 0x130] | rdi = rsp + 0x130; 0x0042aab3 call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042aab8 test ebx, ebx | | if (ebx != 0) { 0x0042aaba je 0x42ab12 | 0x0042aabc mov edi, 0x722630 | 0x0042aac1 mov esi, 0x4cfe77 | 0x0042aac6 mov edx, 6 | 0x0042aacb call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042aad0 mov esi, 0x4d06dd | 0x0042aad5 mov edx, 2 | 0x0042aada mov rdi, rax | 0x0042aadd call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042aae2 mov rdi, rax | rdi = rax; 0x0042aae5 mov esi, ebx | esi = ebx; 0x0042aae7 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042aaec mov esi, 0x4f01d0 | 0x0042aaf1 mov edx, 1 | 0x0042aaf6 mov rdi, rax | 0x0042aaf9 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042aafe mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042ab03 mov edi, 1 | edi = 1; 0x0042ab08 mov edx, 0x2de | edx = 0x2de; 0x0042ab0d call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042ab12 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); 0x0042ab17 mov ecx, 0x4030 | ecx = 0x4030; 0x0042ab1c bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x0042ab20 jb 0x42ab8a | 0x0042ab22 mov edi, 0x722630 | 0x0042ab27 mov esi, 0x4d0e9c | 0x0042ab2c mov edx, 0x11 | 0x0042ab31 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "other->isString()", 0x11); 0x0042ab36 mov esi, 0x4d06dd | 0x0042ab3b mov edx, 2 | 0x0042ab40 mov rdi, rax | 0x0042ab43 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042ab48 mov cl, byte [rsp + 0x1e] | cl = *((rsp + 0x1e)); 0x0042ab4c mov esi, 0x4030 | esi = 0x4030; 0x0042ab51 shr rsi, cl | rsi >>= cl; 0x0042ab54 and esi, 1 | esi &= 1; 0x0042ab57 mov rdi, rax | rdi = rax; 0x0042ab5a call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042ab5f mov esi, 0x4f01d0 | 0x0042ab64 mov edx, 1 | 0x0042ab69 mov rdi, rax | 0x0042ab6c call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042ab71 mov esi, 0x4d0e9c | esi = "other->isString()"; 0x0042ab76 mov edi, 1 | edi = 1; 0x0042ab7b mov edx, 0x2df | edx = 0x2df; 0x0042ab80 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042ab85 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); | } 0x0042ab8a cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042ab93 je 0x42ab9c | 0x0042ab95 mov rdi, qword [rsp + 0x60] | rdi = *((rsp + 0x60)); 0x0042ab9a jmp 0x42aba1 | | } else { 0x0042ab9c lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; | } 0x0042aba1 mov rdx, qword [rsp + 0x78] | rdx = *((rsp + 0x78)); 0x0042aba6 cwde | eax = (int32_t) ax; 0x0042aba7 cmp eax, 0xe | | if (eax != 0xe) { 0x0042abaa je 0x42abb1 | 0x0042abac cmp eax, 5 | | if (eax != 5) { 0x0042abaf jne 0x42abc2 | goto label_14; | } | } 0x0042abb1 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042abb6 movsxd rax, dword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0042abbb cmp rdx, rax | | if (rdx != rax) { 0x0042abbe je 0x42abd2 | 0x0042abc0 jmp 0x42abe8 | goto label_15; | label_14: 0x0042abc2 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042abc7 movsx rax, byte [rsp + 0x10] | rax = *((rsp + 0x10)); 0x0042abcd cmp rdx, rax | | if (rdx != rax) { 0x0042abd0 jne 0x42abe8 | goto label_15; | } | } 0x0042abd2 test rdx, rdx | | if (rdx != 0) { 0x0042abd5 je 0x42aca5 | 0x0042abdb call 0x404900 | eax = bcmp (); 0x0042abe0 test eax, eax | | if (eax == 0) { 0x0042abe2 je 0x42aca5 | goto label_16; | } | label_15: 0x0042abe8 mov edi, 0x722630 | 0x0042abed mov esi, 0x4d0eae | 0x0042abf2 mov edx, 0xa | 0x0042abf7 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "EXP_STRING", 0xa); 0x0042abfc mov esi, 0x4d06dd | 0x0042ac01 mov edx, 2 | 0x0042ac06 mov rdi, rax | 0x0042ac09 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042ac0e lea rsi, [rsp + 0x60] | 0x0042ac13 mov rdi, rax | 0x0042ac16 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042ac1b mov esi, 0x4f0293 | 0x0042ac20 mov edx, 1 | 0x0042ac25 mov rdi, rax | 0x0042ac28 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042ac2d mov esi, 0x4d0ec7 | 0x0042ac32 mov edx, 0x12 | 0x0042ac37 mov rdi, rax | 0x0042ac3a call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0ec7, 0x12); 0x0042ac3f mov esi, 0x4d06dd | 0x0042ac44 mov edx, 2 | 0x0042ac49 mov rdi, rax | 0x0042ac4c call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042ac51 movsx ecx, word [rsp + 0x1e] | ecx = *((rsp + 0x1e)); 0x0042ac56 cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042ac59 je 0x42ac60 | 0x0042ac5b cmp ecx, 5 | | if (ecx != 5) { 0x0042ac5e jne 0x42ac6c | goto label_17; | } | } 0x0042ac60 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042ac65 movsxd rdx, dword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x0042ac6a jmp 0x42ac77 | goto label_18; | label_17: 0x0042ac6c lea rsi, [rsp + 0x11] | 0x0042ac71 movsx rdx, byte [rsp + 0x10] | rdx = *((rsp + 0x10)); | label_18: 0x0042ac77 mov rdi, rax | 0x0042ac7a call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x0042ac7f mov esi, 0x4f01d0 | 0x0042ac84 mov edx, 1 | 0x0042ac89 mov rdi, rax | 0x0042ac8c call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042ac91 mov esi, 0x4d0eb9 | esi = "EXP_STRING == other->theString()"; 0x0042ac96 mov edi, 1 | edi = 1; 0x0042ac9b mov edx, 0x2e2 | edx = 0x2e2; 0x0042aca0 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_16: 0x0042aca5 mov rsi, qword [rsp + 0x20] | 0x0042acaa lea rdi, [rsp + 0x10] | 0x0042acaf call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x10, *((rsp + 0x20))); 0x0042acb4 cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042acbd je 0x42acd5 | 0x0042acbf mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042acc7 mov rdi, qword [rsp + 0xb8] | rdi = *((rsp + 0xb8)); 0x0042accf mov rax, qword [rdi] | rax = *(rdi); 0x0042acd2 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042acd5 mov rsi, qword [rsp + 0xd0] | 0x0042acdd lea rdi, [rsp + 0xc0] | 0x0042ace5 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042acea cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042acf0 je 0x42ad02 | 0x0042acf2 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042acf7 mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042acfc mov rax, qword [rdi] | rax = *(rdi); 0x0042acff call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042ad02 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042ad0b je 0x42ad20 | 0x0042ad0d mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042ad12 mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042ad1a mov rax, qword [rdi] | rax = *(rdi); 0x0042ad1d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042ad20 cmp byte [rip + 0x2f79ba], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042ad27 je 0x42ae01 | 0x0042ad2d mov rax, qword [rip + 0x2f78fc] | rax = std::__1::cout; 0x0042ad34 mov esi, 0x722630 | esi = std::__1::cout; 0x0042ad39 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042ad3d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ad45 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042ad4a lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ad52 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042ad57 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042ad5c mov rcx, qword [rax] | rcx = *(rax); 0x0042ad5f mov rdi, rax | rdi = rax; 0x0042ad62 mov esi, 0xa | esi = 0xa; 0x0042ad67 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042ad6a mov ebx, eax | ebx = eax; 0x0042ad6c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ad74 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042ad79 movsx esi, bl | esi = (int32_t) bl; 0x0042ad7c mov edi, 0x722630 | edi = std::__1::cout; 0x0042ad81 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042ad86 mov edi, 0x722630 | edi = std::__1::cout; 0x0042ad8b call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042ad90 mov edi, 0x722630 | 0x0042ad95 mov esi, 0x4d0f37 | 0x0042ad9a mov edx, 0x22 | 0x0042ad9f call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "2. Verify we can round-trip 'int's", 0x22); 0x0042ada4 mov rbx, rax | rbx = rax; 0x0042ada7 mov rax, qword [rax] | rax = *(rax); 0x0042adaa mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042adae add rsi, rbx | rsi += rbx; 0x0042adb1 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042adb9 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042adbe lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042adc6 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042adcb call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042add0 mov rcx, qword [rax] | rcx = *(rax); 0x0042add3 mov rdi, rax | rdi = rax; 0x0042add6 mov esi, 0xa | esi = 0xa; 0x0042addb call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042adde mov ebp, eax | 0x0042ade0 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ade8 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042aded movsx esi, bpl | esi = (int32_t) bpl; 0x0042adf1 mov rdi, rbx | rdi = rbx; 0x0042adf4 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042adf9 mov rdi, rbx | rdi = rbx; 0x0042adfc call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042ae01 mov rax, qword [rip + 0x2fa2f8] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042ae08 test rax, rax | | if (rax == 0) { 0x0042ae0b jne 0x42ae12 | 0x0042ae0d call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042ae12 mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042ae1b mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042ae23 movapd xmm0, xmmword [rip + 0x8ba75] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042ae2b movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042ae31 lea r12, [rsp + 0x60] | r12 = rsp + 0x60; 0x0042ae36 mov esi, 0x4d10f9 | 0x0042ae3b mov edx, 3 | 0x0042ae40 mov ecx, 0x4d060a | 0x0042ae45 mov rdi, r12 | 0x0042ae48 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r12, 0x4d10f9, 3, "string<...>::assign(char*...): string too long"); 0x0042ae4d movabs rax, 0xa00000000007b | rax = 0xa00000000007b; 0x0042ae57 mov qword [rsp + 0x98], rax | *((rsp + 0x98)) = rax; 0x0042ae5f mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042ae67 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042ae70 movapd xmm0, xmmword [rip + 0x8ba28] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042ae78 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042ae7e mov rax, qword [rip + 0x2fa27b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042ae85 test rax, rax | | if (rax != 0) { 0x0042ae88 je 0x42ae91 | 0x0042ae8a mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042ae8f jmp 0x42aeaf | | } else { 0x0042ae91 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042ae96 cmp qword [rsp + 0x50], 0x17 | 0x0042ae9c mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; | if (*((rsp + 0x50)) != 0x17) { 0x0042aea1 je 0x42aeaa | 0x0042aea3 mov r15, qword [rsp + 0x30] | r15 = *((rsp + 0x30)); 0x0042aea8 jmp 0x42aeaf | | } else { 0x0042aeaa lea r15, [rsp + 0x30] | r15 = rsp + 0x30; | } | } 0x0042aeaf mov byte [r15], 0 | *(r15) = 0; 0x0042aeb3 lea rbx, [rsp + 0x30] | rbx = rsp + 0x30; 0x0042aeb8 lea rsi, [rsp + 0x90] | 0x0042aec0 lea rdx, [rsp + 0x140] | 0x0042aec8 mov rdi, rbx | 0x0042aecb call 0x43dc70 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0x90, rsp + 0x140, rcx, r8, r9); 0x0042aed0 mov ebp, eax | 0x0042aed2 cmp eax, 1 | | if (eax != 1) { 0x0042aed5 je 0x42af2d | 0x0042aed7 mov edi, 0x722630 | 0x0042aedc mov esi, 0x4cfe77 | 0x0042aee1 mov edx, 6 | 0x0042aee6 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042aeeb mov esi, 0x4d06dd | 0x0042aef0 mov edx, 2 | 0x0042aef5 mov rdi, rax | 0x0042aef8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042aefd mov rdi, rax | rdi = rax; 0x0042af00 mov esi, ebp | esi = ebp; 0x0042af02 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042af07 mov esi, 0x4f01d0 | 0x0042af0c mov edx, 1 | 0x0042af11 mov rdi, rax | 0x0042af14 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042af19 mov esi, 0x4d0f5a | esi = "1 == result"; 0x0042af1e mov edi, 1 | edi = 1; 0x0042af23 mov edx, 0x2f0 | edx = 0x2f0; 0x0042af28 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042af2d mov rbp, qword [rsp + 0x78] | rbp = *((rsp + 0x78)); 0x0042af32 cmp rbp, qword [rsp + 0x48] | | if (rbp == *((rsp + 0x48))) { 0x0042af37 jne 0x42af87 | 0x0042af39 test rbp, rbp | | if (rbp != 0) { 0x0042af3c je 0x42af58 | 0x0042af3e cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042af44 je 0x42af5f | 0x0042af46 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042af4b cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042af54 jne 0x42af6f | goto label_19; | } 0x0042af56 jmp 0x42af74 | | } else { 0x0042af58 xor ebp, ebp | ebp = 0; 0x0042af5a jmp 0x42b028 | goto label_20; | } 0x0042af5f lea rsi, [rsp + 0x30] | rsi = rsp + 0x30; 0x0042af64 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) == 0x17) { 0x0042af6d je 0x42af74 | goto label_21; | } | label_19: 0x0042af6f mov r12, qword [rsp + 0x60] | r12 = *((rsp + 0x60)); | } | label_21: 0x0042af74 mov rdi, r12 | rdi = *((rsp + 0x60)); 0x0042af77 mov rdx, rbp | rdx = rbp; 0x0042af7a call 0x404900 | eax = bcmp (); 0x0042af7f test eax, eax | | if (eax == 0) { 0x0042af81 je 0x42b028 | goto label_20; | } | } 0x0042af87 mov edi, 0x722630 | 0x0042af8c mov esi, 0x4d0f66 | 0x0042af91 mov edx, 8 | 0x0042af96 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "EXP_JSON", 8); 0x0042af9b mov esi, 0x4d06dd | 0x0042afa0 mov edx, 2 | 0x0042afa5 mov rdi, rax | 0x0042afa8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042afad lea rsi, [rsp + 0x60] | 0x0042afb2 mov rdi, rax | 0x0042afb5 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042afba mov esi, 0x4f0293 | 0x0042afbf mov edx, 1 | 0x0042afc4 mov rdi, rax | 0x0042afc7 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042afcc mov esi, 0x4d1277 | 0x0042afd1 mov edx, 4 | 0x0042afd6 mov rdi, rax | 0x0042afd9 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1277, 4); 0x0042afde mov esi, 0x4d06dd | 0x0042afe3 mov edx, 2 | 0x0042afe8 mov rdi, rax | 0x0042afeb call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042aff0 lea rsi, [rsp + 0x30] | 0x0042aff5 mov rdi, rax | 0x0042aff8 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x30); 0x0042affd mov esi, 0x4f01d0 | 0x0042b002 mov edx, 1 | 0x0042b007 mov rdi, rax | 0x0042b00a call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b00f mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0042b014 mov edi, 1 | edi = 1; 0x0042b019 mov edx, 0x2f1 | edx = 0x2f1; 0x0042b01e call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042b023 mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); | label_20: 0x0042b028 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042b032 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0042b03a mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042b042 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b048 je 0x42b04f | 0x0042b04a mov rbx, qword [rsp + 0x30] | rbx = *((rsp + 0x30)); | } 0x0042b04f lea rdi, [rsp + 0x10] | 0x0042b054 call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x10); 0x0042b059 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b061 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042b066 mov qword [rsp + 0xe0], 0x4d55d0 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042b072 mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042b07a mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042b082 add rbp, rbx | rbp += rbx; 0x0042b085 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042b08d mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042b095 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042b09d lea rdi, [rsp + 0xc0] | 0x0042b0a5 lea rdx, [rsp + 0xe0] | 0x0042b0ad lea rcx, [rsp + 0x10] | 0x0042b0b2 xor esi, esi | 0x0042b0b4 call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0xc0, 0, rsp + 0xe0, rsp + 0x10, r8, r9); 0x0042b0b9 mov ebx, eax | ebx = eax; 0x0042b0bb lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b0c3 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042b0c8 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0042b0cd call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042b0d2 test ebx, ebx | | if (ebx != 0) { 0x0042b0d4 je 0x42b12c | 0x0042b0d6 mov edi, 0x722630 | 0x0042b0db mov esi, 0x4cfe77 | 0x0042b0e0 mov edx, 6 | 0x0042b0e5 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042b0ea mov esi, 0x4d06dd | 0x0042b0ef mov edx, 2 | 0x0042b0f4 mov rdi, rax | 0x0042b0f7 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b0fc mov rdi, rax | rdi = rax; 0x0042b0ff mov esi, ebx | esi = ebx; 0x0042b101 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b106 mov esi, 0x4f01d0 | 0x0042b10b mov edx, 1 | 0x0042b110 mov rdi, rax | 0x0042b113 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b118 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042b11d mov edi, 1 | edi = 1; 0x0042b122 mov edx, 0x2f5 | edx = 0x2f5; 0x0042b127 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b12c movsx eax, word [rsp + 0xce] | eax = *((rsp + 0xce)); 0x0042b134 cmp eax, 1 | | if (eax != 1) { 0x0042b137 je 0x42b1b0 | 0x0042b139 cmp eax, 0x10 | | if (eax == 0x10) { 0x0042b13c je 0x42b1b0 | goto label_22; | } 0x0042b13e mov edi, 0x722630 | 0x0042b143 mov esi, 0x4d0f6f | 0x0042b148 mov edx, 0x11 | 0x0042b14d call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "other->isDouble()", 0x11); 0x0042b152 mov esi, 0x4d06dd | 0x0042b157 mov edx, 2 | 0x0042b15c mov rdi, rax | 0x0042b15f call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b164 movsx rcx, word [rsp + 0xce] | rcx = *((rsp + 0xce)); 0x0042b16d mov ecx, ecx | 0x0042b16f cmp rcx, 1 | 0x0042b173 sete dl | dl = (rcx == 1) ? 1 : 0; 0x0042b176 cmp rcx, 0x10 | 0x0042b17a sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x0042b17d or cl, dl | cl |= dl; 0x0042b17f movzx esi, cl | esi = (int32_t) cl; 0x0042b182 mov rdi, rax | rdi = rax; 0x0042b185 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042b18a mov esi, 0x4f01d0 | 0x0042b18f mov edx, 1 | 0x0042b194 mov rdi, rax | 0x0042b197 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b19c mov esi, 0x4d0f6f | esi = "other->isDouble()"; 0x0042b1a1 mov edi, 1 | edi = 1; 0x0042b1a6 mov edx, 0x2f6 | edx = 0x2f6; 0x0042b1ab call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_22: 0x0042b1b0 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b1b9 ucomisd xmm0, qword [rip + 0x8b677] | __asm ("ucomisd xmm0, qword [0x004b6838]"); | if (cl == 0) { 0x0042b1c1 jne 0x42b1c9 | | if (cl != 0) { 0x0042b1c3 jnp 0x42b26c | goto label_23; | } | } 0x0042b1c9 mov edi, 0x722630 | 0x0042b1ce mov esi, 0x4d0f81 | 0x0042b1d3 mov edx, 0xb | 0x0042b1d8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "double(obj)", 0xb); 0x0042b1dd mov esi, 0x4d06dd | 0x0042b1e2 mov edx, 2 | 0x0042b1e7 mov rdi, rax | 0x0042b1ea call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b1ef movsd xmm0, qword [rip + 0x8b641] | xmm0 = *(0x004b6838); 0x0042b1f7 mov rdi, rax | rdi = rax; 0x0042b1fa call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b1ff mov esi, 0x4f0293 | 0x0042b204 mov edx, 1 | 0x0042b209 mov rdi, rax | 0x0042b20c call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042b211 mov esi, 0x4d0f9c | 0x0042b216 mov edx, 0x12 | 0x0042b21b mov rdi, rax | 0x0042b21e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0f9c, 0x12); 0x0042b223 mov esi, 0x4d06dd | 0x0042b228 mov edx, 2 | 0x0042b22d mov rdi, rax | 0x0042b230 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b235 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b23e mov rdi, rax | rdi = rax; 0x0042b241 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b246 mov esi, 0x4f01d0 | 0x0042b24b mov edx, 1 | 0x0042b250 mov rdi, rax | 0x0042b253 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b258 mov esi, 0x4d0f8d | esi = "double(obj) == other->theDouble()"; 0x0042b25d mov edi, 1 | edi = 1; 0x0042b262 mov edx, 0x2f9 | edx = 0x2f9; 0x0042b267 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_23: 0x0042b26c mov rsi, qword [rsp + 0xd0] | 0x0042b274 lea rdi, [rsp + 0xc0] | 0x0042b27c call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042b281 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b287 je 0x42b299 | 0x0042b289 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b28e mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042b293 mov rax, qword [rdi] | rax = *(rdi); 0x0042b296 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b299 mov rsi, qword [rsp + 0xa0] | 0x0042b2a1 lea rdi, [rsp + 0x90] | 0x0042b2a9 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x90, *((rsp + 0xa0))); 0x0042b2ae cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b2b7 je 0x42b2cc | 0x0042b2b9 mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042b2be mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042b2c6 mov rax, qword [rdi] | rax = *(rdi); 0x0042b2c9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b2cc cmp byte [rip + 0x2f740e], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042b2d3 je 0x42b3ad | 0x0042b2d9 mov rax, qword [rip + 0x2f7350] | rax = std::__1::cout; 0x0042b2e0 mov esi, 0x722630 | esi = std::__1::cout; 0x0042b2e5 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042b2e9 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b2f1 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b2f6 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b2fe mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042b303 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b308 mov rcx, qword [rax] | rcx = *(rax); 0x0042b30b mov rdi, rax | rdi = rax; 0x0042b30e mov esi, 0xa | esi = 0xa; 0x0042b313 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b316 mov ebx, eax | ebx = eax; 0x0042b318 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b320 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b325 movsx esi, bl | esi = (int32_t) bl; 0x0042b328 mov edi, 0x722630 | edi = std::__1::cout; 0x0042b32d call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b332 mov edi, 0x722630 | edi = std::__1::cout; 0x0042b337 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042b33c mov edi, 0x722630 | 0x0042b341 mov esi, 0x4d0faf | 0x0042b346 mov edx, 0x25 | 0x0042b34b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "3. Verify we can round-trip 'double's", 0x25); 0x0042b350 mov rbx, rax | rbx = rax; 0x0042b353 mov rax, qword [rax] | rax = *(rax); 0x0042b356 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042b35a add rsi, rbx | rsi += rbx; 0x0042b35d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b365 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b36a lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b372 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042b377 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b37c mov rcx, qword [rax] | rcx = *(rax); 0x0042b37f mov rdi, rax | rdi = rax; 0x0042b382 mov esi, 0xa | esi = 0xa; 0x0042b387 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b38a mov ebp, eax | 0x0042b38c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b394 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b399 movsx esi, bpl | esi = (int32_t) bpl; 0x0042b39d mov rdi, rbx | rdi = rbx; 0x0042b3a0 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b3a5 mov rdi, rbx | rdi = rbx; 0x0042b3a8 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042b3ad mov rax, qword [rip + 0x2f9d4c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042b3b4 test rax, rax | | if (rax == 0) { 0x0042b3b7 jne 0x42b3be | 0x0042b3b9 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042b3be mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042b3c7 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042b3cf movapd xmm0, xmmword [rip + 0x8b4c9] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042b3d7 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042b3dd lea r15, [rsp + 0x60] | r15 = rsp + 0x60; 0x0042b3e2 mov esi, 0x4d0fd5 | 0x0042b3e7 mov edx, 5 | 0x0042b3ec mov ecx, 0x4d060a | 0x0042b3f1 mov rdi, r15 | 0x0042b3f4 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r15, "1.375", 5, "string<...>::assign(char*...): string too long"); 0x0042b3f9 movaps xmm0, xmmword [rip + 0x8b590] | xmm0 = *(0x004b6990); 0x0042b400 movaps xmmword [rsp + 0x90], xmm0 | *((rsp + 0x90)) = xmm0; 0x0042b408 mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042b410 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042b419 movapd xmm0, xmmword [rip + 0x8b47f] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042b421 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042b427 mov rax, qword [rip + 0x2f9cd2] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042b42e test rax, rax | | if (rax != 0) { 0x0042b431 je 0x42b43f | 0x0042b433 lea rcx, [rsp + 0x30] | rcx = rsp + 0x30; 0x0042b438 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042b43d jmp 0x42b45d | | } else { 0x0042b43f call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042b444 cmp qword [rsp + 0x50], 0x17 | 0x0042b44a mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; | if (*((rsp + 0x50)) != 0x17) { 0x0042b44f je 0x42b458 | 0x0042b451 mov rcx, qword [rsp + 0x30] | rcx = *((rsp + 0x30)); 0x0042b456 jmp 0x42b45d | | } else { 0x0042b458 lea rcx, [rsp + 0x30] | rcx = rsp + 0x30; | } | } 0x0042b45d mov byte [rcx], 0 | 0x0042b460 lea rbx, [rsp + 0x30] | rbx = rsp + 0x30; 0x0042b465 lea rsi, [rsp + 0x90] | 0x0042b46d lea rdx, [rsp + 0x140] | 0x0042b475 mov rdi, rbx | 0x0042b478 call 0x43dc70 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0x90, rsp + 0x140, 0, r8, r9); 0x0042b47d mov ebp, eax | 0x0042b47f test eax, eax | | if (eax != 0) { 0x0042b481 je 0x42b4d9 | 0x0042b483 mov edi, 0x722630 | 0x0042b488 mov esi, 0x4cfe77 | 0x0042b48d mov edx, 6 | 0x0042b492 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042b497 mov esi, 0x4d06dd | 0x0042b49c mov edx, 2 | 0x0042b4a1 mov rdi, rax | 0x0042b4a4 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b4a9 mov rdi, rax | rdi = rax; 0x0042b4ac mov esi, ebp | esi = ebp; 0x0042b4ae call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b4b3 mov esi, 0x4f01d0 | 0x0042b4b8 mov edx, 1 | 0x0042b4bd mov rdi, rax | 0x0042b4c0 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b4c5 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042b4ca mov edi, 1 | edi = 1; 0x0042b4cf mov edx, 0x306 | edx = 0x306; 0x0042b4d4 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b4d9 mov rbp, qword [rsp + 0x78] | rbp = *((rsp + 0x78)); 0x0042b4de cmp rbp, qword [rsp + 0x48] | | if (rbp == *((rsp + 0x48))) { 0x0042b4e3 jne 0x42b533 | 0x0042b4e5 test rbp, rbp | | if (rbp != 0) { 0x0042b4e8 je 0x42b504 | 0x0042b4ea cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b4f0 je 0x42b50b | 0x0042b4f2 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b4f7 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b500 jne 0x42b51b | goto label_24; | } 0x0042b502 jmp 0x42b520 | | } else { 0x0042b504 xor ebp, ebp | ebp = 0; 0x0042b506 jmp 0x42b5d4 | goto label_25; | } 0x0042b50b lea rsi, [rsp + 0x30] | rsi = rsp + 0x30; 0x0042b510 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) == 0x17) { 0x0042b519 je 0x42b520 | goto label_26; | } | label_24: 0x0042b51b mov r15, qword [rsp + 0x60] | r15 = *((rsp + 0x60)); | } | label_26: 0x0042b520 mov rdi, r15 | rdi = *((rsp + 0x60)); 0x0042b523 mov rdx, rbp | rdx = rbp; 0x0042b526 call 0x404900 | eax = bcmp (); 0x0042b52b test eax, eax | | if (eax == 0) { 0x0042b52d je 0x42b5d4 | goto label_25; | } | } 0x0042b533 mov edi, 0x722630 | 0x0042b538 mov esi, 0x4d0f66 | 0x0042b53d mov edx, 8 | 0x0042b542 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "EXP_JSON", 8); 0x0042b547 mov esi, 0x4d06dd | 0x0042b54c mov edx, 2 | 0x0042b551 mov rdi, rax | 0x0042b554 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b559 lea rsi, [rsp + 0x60] | 0x0042b55e mov rdi, rax | 0x0042b561 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042b566 mov esi, 0x4f0293 | 0x0042b56b mov edx, 1 | 0x0042b570 mov rdi, rax | 0x0042b573 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042b578 mov esi, 0x4d1277 | 0x0042b57d mov edx, 4 | 0x0042b582 mov rdi, rax | 0x0042b585 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1277, 4); 0x0042b58a mov esi, 0x4d06dd | 0x0042b58f mov edx, 2 | 0x0042b594 mov rdi, rax | 0x0042b597 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b59c lea rsi, [rsp + 0x30] | 0x0042b5a1 mov rdi, rax | 0x0042b5a4 call 0x4226b0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x30); 0x0042b5a9 mov esi, 0x4f01d0 | 0x0042b5ae mov edx, 1 | 0x0042b5b3 mov rdi, rax | 0x0042b5b6 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b5bb mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0042b5c0 mov edi, 1 | edi = 1; 0x0042b5c5 mov edx, 0x307 | edx = 0x307; 0x0042b5ca call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042b5cf mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); | label_25: 0x0042b5d4 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042b5de mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0042b5e6 mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042b5ee cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b5f4 je 0x42b5fb | 0x0042b5f6 mov rbx, qword [rsp + 0x30] | rbx = *((rsp + 0x30)); | } 0x0042b5fb lea rdi, [rsp + 0x10] | 0x0042b600 call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x10); 0x0042b605 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b60d call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042b612 mov qword [rsp + 0xe0], 0x4d55d0 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042b61e mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042b626 mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042b62e add rbp, rbx | rbp += rbx; 0x0042b631 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042b639 mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042b641 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042b649 lea rdi, [rsp + 0xc0] | 0x0042b651 lea rdx, [rsp + 0xe0] | 0x0042b659 lea rcx, [rsp + 0x10] | 0x0042b65e xor esi, esi | 0x0042b660 call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0xc0, 0, rsp + 0xe0, rsp + 0x10, r8, r9); 0x0042b665 mov ebx, eax | ebx = eax; 0x0042b667 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b66f call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042b674 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0042b679 call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042b67e test ebx, ebx | | if (ebx != 0) { 0x0042b680 je 0x42b6d8 | 0x0042b682 mov edi, 0x722630 | 0x0042b687 mov esi, 0x4cfe77 | 0x0042b68c mov edx, 6 | 0x0042b691 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cfe77, 6); 0x0042b696 mov esi, 0x4d06dd | 0x0042b69b mov edx, 2 | 0x0042b6a0 mov rdi, rax | 0x0042b6a3 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b6a8 mov rdi, rax | rdi = rax; 0x0042b6ab mov esi, ebx | esi = ebx; 0x0042b6ad call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b6b2 mov esi, 0x4f01d0 | 0x0042b6b7 mov edx, 1 | 0x0042b6bc mov rdi, rax | 0x0042b6bf call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b6c4 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042b6c9 mov edi, 1 | edi = 1; 0x0042b6ce mov edx, 0x30b | edx = 0x30b; 0x0042b6d3 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b6d8 movsx eax, word [rsp + 0xce] | eax = *((rsp + 0xce)); 0x0042b6e0 cmp eax, 1 | | if (eax != 1) { 0x0042b6e3 je 0x42b75c | 0x0042b6e5 cmp eax, 0x10 | | if (eax == 0x10) { 0x0042b6e8 je 0x42b75c | goto label_27; | } 0x0042b6ea mov edi, 0x722630 | 0x0042b6ef mov esi, 0x4d0f6f | 0x0042b6f4 mov edx, 0x11 | 0x0042b6f9 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "other->isDouble()", 0x11); 0x0042b6fe mov esi, 0x4d06dd | 0x0042b703 mov edx, 2 | 0x0042b708 mov rdi, rax | 0x0042b70b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b710 movsx rcx, word [rsp + 0xce] | rcx = *((rsp + 0xce)); 0x0042b719 mov ecx, ecx | 0x0042b71b cmp rcx, 1 | 0x0042b71f sete dl | dl = (rcx == 1) ? 1 : 0; 0x0042b722 cmp rcx, 0x10 | 0x0042b726 sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x0042b729 or cl, dl | cl |= dl; 0x0042b72b movzx esi, cl | esi = (int32_t) cl; 0x0042b72e mov rdi, rax | rdi = rax; 0x0042b731 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042b736 mov esi, 0x4f01d0 | 0x0042b73b mov edx, 1 | 0x0042b740 mov rdi, rax | 0x0042b743 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b748 mov esi, 0x4d0f6f | esi = "other->isDouble()"; 0x0042b74d mov edi, 1 | edi = 1; 0x0042b752 mov edx, 0x30c | edx = 0x30c; 0x0042b757 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_27: 0x0042b75c movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b765 ucomisd xmm0, qword [rip + 0x8b0d3] | __asm ("ucomisd xmm0, qword [0x004b6840]"); | if (cl == 0) { 0x0042b76d jne 0x42b775 | | if (cl != 0) { 0x0042b76f jnp 0x42b818 | goto label_28; | } | } 0x0042b775 mov edi, 0x722630 | 0x0042b77a mov esi, 0x4cf69d | 0x0042b77f mov edx, 3 | 0x0042b784 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4cf69d, 3); 0x0042b789 mov esi, 0x4d06dd | 0x0042b78e mov edx, 2 | 0x0042b793 mov rdi, rax | 0x0042b796 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b79b movsd xmm0, qword [rip + 0x8b09d] | xmm0 = *(0x004b6840); 0x0042b7a3 mov rdi, rax | rdi = rax; 0x0042b7a6 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b7ab mov esi, 0x4f0293 | 0x0042b7b0 mov edx, 1 | 0x0042b7b5 mov rdi, rax | 0x0042b7b8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042b7bd mov esi, 0x4d0f9c | 0x0042b7c2 mov edx, 0x12 | 0x0042b7c7 mov rdi, rax | 0x0042b7ca call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0f9c, 0x12); 0x0042b7cf mov esi, 0x4d06dd | 0x0042b7d4 mov edx, 2 | 0x0042b7d9 mov rdi, rax | 0x0042b7dc call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042b7e1 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b7ea mov rdi, rax | rdi = rax; 0x0042b7ed call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b7f2 mov esi, 0x4f01d0 | 0x0042b7f7 mov edx, 1 | 0x0042b7fc mov rdi, rax | 0x0042b7ff call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042b804 mov esi, 0x4d0fdb | esi = "obj == other->theDouble()"; 0x0042b809 mov edi, 1 | edi = 1; 0x0042b80e mov edx, 0x30d | edx = 0x30d; 0x0042b813 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_28: 0x0042b818 mov rsi, qword [rsp + 0xd0] | 0x0042b820 lea rdi, [rsp + 0xc0] | 0x0042b828 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042b82d cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b833 je 0x42b845 | 0x0042b835 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b83a mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042b83f mov rax, qword [rdi] | rax = *(rdi); 0x0042b842 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b845 mov rsi, qword [rsp + 0xa0] | 0x0042b84d lea rdi, [rsp + 0x90] | 0x0042b855 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x90, *((rsp + 0xa0))); 0x0042b85a cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b863 je 0x42b878 | 0x0042b865 mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042b86a mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042b872 mov rax, qword [rdi] | rax = *(rdi); 0x0042b875 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b878 cmp byte [rip + 0x2f6e62], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042b87f je 0x42b959 | 0x0042b885 mov rax, qword [rip + 0x2f6da4] | rax = std::__1::cout; 0x0042b88c mov esi, 0x722630 | esi = std::__1::cout; 0x0042b891 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042b895 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b89d call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b8a2 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b8aa mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042b8af call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b8b4 mov rcx, qword [rax] | rcx = *(rax); 0x0042b8b7 mov rdi, rax | rdi = rax; 0x0042b8ba mov esi, 0xa | esi = 0xa; 0x0042b8bf call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b8c2 mov ebx, eax | ebx = eax; 0x0042b8c4 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b8cc call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b8d1 movsx esi, bl | esi = (int32_t) bl; 0x0042b8d4 mov edi, 0x722630 | edi = std::__1::cout; 0x0042b8d9 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b8de mov edi, 0x722630 | edi = std::__1::cout; 0x0042b8e3 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042b8e8 mov edi, 0x722630 | 0x0042b8ed mov esi, 0x4d0ff5 | 0x0042b8f2 mov edx, 0x23 | 0x0042b8f7 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "4. Verify we can round-trip 'bool's", 0x23); 0x0042b8fc mov rbx, rax | rbx = rax; 0x0042b8ff mov rax, qword [rax] | rax = *(rax); 0x0042b902 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042b906 add rsi, rbx | rsi += rbx; 0x0042b909 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b911 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b916 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b91e mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042b923 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b928 mov rcx, qword [rax] | rcx = *(rax); 0x0042b92b mov rdi, rax | rdi = rax; 0x0042b92e mov esi, 0xa | esi = 0xa; 0x0042b933 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b936 mov ebp, eax | 0x0042b938 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b940 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b945 movsx esi, bpl | esi = (int32_t) bpl; 0x0042b949 mov rdi, rbx | rdi = rbx; 0x0042b94c call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b951 mov rdi, rbx | rdi = rbx; 0x0042b954 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042b959 cmp byte [rip + 0x2f6d82], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042b960 je 0x42ba3a | 0x0042b966 mov rax, qword [rip + 0x2f6cc3] | rax = std::__1::cout; 0x0042b96d mov esi, 0x722630 | esi = std::__1::cout; 0x0042b972 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042b976 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b97e call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b983 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b98b mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042b990 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b995 mov rcx, qword [rax] | rcx = *(rax); 0x0042b998 mov rdi, rax | rdi = rax; 0x0042b99b mov esi, 0xa | esi = 0xa; 0x0042b9a0 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b9a3 mov ebx, eax | ebx = eax; 0x0042b9a5 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b9ad call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b9b2 movsx esi, bl | esi = (int32_t) bl; 0x0042b9b5 mov edi, 0x722630 | edi = std::__1::cout; 0x0042b9ba call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b9bf mov edi, 0x722630 | edi = std::__1::cout; 0x0042b9c4 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042b9c9 mov edi, 0x722630 | 0x0042b9ce mov esi, 0x4d1019 | 0x0042b9d3 mov edx, 9 | 0x0042b9d8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "\ta. false", 9); 0x0042b9dd mov rbx, rax | rbx = rax; 0x0042b9e0 mov rax, qword [rax] | rax = *(rax); 0x0042b9e3 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042b9e7 add rsi, rbx | rsi += rbx; 0x0042b9ea lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b9f2 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b9f7 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b9ff mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042ba04 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042ba09 mov rcx, qword [rax] | rcx = *(rax); 0x0042ba0c mov rdi, rax | rdi = rax; 0x0042ba0f mov esi, 0xa | esi = 0xa; 0x0042ba14 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042ba17 mov ebp, eax | 0x0042ba19 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ba21 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042ba26 movsx esi, bpl | esi = (int32_t) bpl; 0x0042ba2a mov rdi, rbx | rdi = rbx; 0x0042ba2d call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042ba32 mov rdi, rbx | rdi = rbx; 0x0042ba35 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042ba3a mov rax, qword [rip + 0x2f96bf] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042ba41 test rax, rax | | if (rax == 0) { 0x0042ba44 jne 0x42ba4b | 0x0042ba46 call 0x4903d0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042ba4b mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042ba54 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042ba5c movapd xmm0, xmmword [rip + 0x8ae3c] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042ba64 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042ba6a lea r15, [rsp + 0x60] | r15 = rsp + 0x60; 0x0042ba6f mov esi, 0x4d101d | 0x0042ba74 mov edx, 5 | 0x0042ba79 mov ecx, 0x4d060a | 0x0042ba7e mov rdi, r15 | 0x0042ba81 call 0x494290 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r15, 0x4d101d, 5, "string<...>::assign(char*...): string too long"); 0x0042ba86 movabs r12, 0x3000000000000 | r12 = 0x3000000000000; 0x0042ba90 mov qword [rsp + 0x98], r12 | *((rsp + 0x98)) = r12; 0x0042ba98 mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042baa0 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042baa9 movapd xmm0, xmmword [rip + 0x8adef] | __asm ("movapd xmm0, xmmword [0x004b68a0]"); 0x0042bab1 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042bab7 mov rax, qword [rip + 0x2f9642] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042babe test rax, rax | | /* Beware that this jump is a conditional jump. | * r2dec transformed it as a return, due being the | * last instruction. Please, check 'pdda' output | * for more hints. */ 0x0042bac1 je 0x42bacf | return void (*0x42bacf)() (); | }