; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/none @ 0x429fe0 */ | #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 > >() */ 0x00429fe0 push rbp | 0x00429fe1 push r15 | 0x00429fe3 push r14 | 0x00429fe5 push r13 | 0x00429fe7 push r12 | 0x00429fe9 push rbx | 0x00429fea sub rsp, 0x228 | 0x00429ff1 lea rdi, [rsp + 0x158] | 0x00429ff9 mov esi, 0x4ca739 | 0x00429ffe xor edx, edx | 0x0042a000 call 0x491970 | BloombergLP::bslma::TestAllocator::TestAllocator(char const*,BloombergLP::bslma::Allocator*) (rsp + 0x158, "test", 0); 0x0042a005 lea rdi, [rsp + 0x140] | 0x0042a00d call 0x43cd20 | BloombergLP::baljsn::DatumEncoderOptions::DatumEncoderOptions() (rsp + 0x140); 0x0042a012 mov byte [rsp + 0x140], 1 | *((rsp + 0x140)) = 1; 0x0042a01a cmp byte [rip + 0x2f96c0], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042a021 je 0x42a0fb | 0x0042a027 mov rax, qword [rip + 0x2f9602] | rax = std::__1::cout; 0x0042a02e mov esi, 0x723630 | esi = std::__1::cout; 0x0042a033 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042a037 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a03f call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a044 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a04c mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a051 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a056 mov rcx, qword [rax] | rcx = *(rax); 0x0042a059 mov rdi, rax | rdi = rax; 0x0042a05c mov esi, 0xa | esi = 0xa; 0x0042a061 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a064 mov ebx, eax | ebx = eax; 0x0042a066 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a06e call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a073 movsx esi, bl | esi = (int32_t) bl; 0x0042a076 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a07b call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a080 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a085 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a08a mov edi, 0x723630 | 0x0042a08f mov esi, 0x4d19f5 | 0x0042a094 mov edx, 0x23 | 0x0042a099 call 0x43afb0 | 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); 0x0042a09e mov rbx, rax | rbx = rax; 0x0042a0a1 mov rax, qword [rax] | rax = *(rax); 0x0042a0a4 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a0a8 add rsi, rbx | rsi += rbx; 0x0042a0ab lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0b3 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a0b8 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0c0 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a0c5 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a0ca mov rcx, qword [rax] | rcx = *(rax); 0x0042a0cd mov rdi, rax | rdi = rax; 0x0042a0d0 mov esi, 0xa | esi = 0xa; 0x0042a0d5 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a0d8 mov ebp, eax | 0x0042a0da lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a0e2 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a0e7 movsx esi, bpl | esi = (int32_t) bpl; 0x0042a0eb mov rdi, rbx | rdi = rbx; 0x0042a0ee call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a0f3 mov rdi, rbx | rdi = rbx; 0x0042a0f6 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a0fb cmp byte [rip + 0x2f95e0], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042a102 je 0x42a1dc | 0x0042a108 mov rax, qword [rip + 0x2f9521] | rax = std::__1::cout; 0x0042a10f mov esi, 0x723630 | esi = std::__1::cout; 0x0042a114 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042a118 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a120 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a125 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a12d mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a132 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a137 mov rcx, qword [rax] | rcx = *(rax); 0x0042a13a mov rdi, rax | rdi = rax; 0x0042a13d mov esi, 0xa | esi = 0xa; 0x0042a142 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a145 mov ebx, eax | ebx = eax; 0x0042a147 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a14f call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a154 movsx esi, bl | esi = (int32_t) bl; 0x0042a157 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a15c call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a161 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a166 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a16b mov edi, 0x723630 | 0x0042a170 mov esi, 0x4d1a19 | 0x0042a175 mov edx, 0x1d | 0x0042a17a call 0x43afb0 | 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); 0x0042a17f mov rbx, rax | rbx = rax; 0x0042a182 mov rax, qword [rax] | rax = *(rax); 0x0042a185 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a189 add rsi, rbx | rsi += rbx; 0x0042a18c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a194 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a199 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a1a1 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a1a6 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a1ab mov rcx, qword [rax] | rcx = *(rax); 0x0042a1ae mov rdi, rax | rdi = rax; 0x0042a1b1 mov esi, 0xa | esi = 0xa; 0x0042a1b6 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a1b9 mov ebp, eax | 0x0042a1bb lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a1c3 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a1c8 movsx esi, bpl | esi = (int32_t) bpl; 0x0042a1cc mov rdi, rbx | rdi = rbx; 0x0042a1cf call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a1d4 mov rdi, rbx | rdi = rbx; 0x0042a1d7 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a1dc mov rax, qword [rip + 0x2fbf1d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a1e3 test rax, rax | | if (rax == 0) { 0x0042a1e6 jne 0x42a1ed | 0x0042a1e8 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a1ed mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042a1f6 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042a1fe movapd xmm0, xmmword [rip + 0x8d24a] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042a206 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042a20c lea rdi, [rsp + 0x60] | 0x0042a211 mov esi, 0x4cfe20 | 0x0042a216 mov edx, 5 | 0x0042a21b mov ecx, 0x4d11b6 | 0x0042a220 call 0x494e00 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (rsp + 0x60, 0x4cfe20, 5, "string<...>::assign(char*...): string too long"); 0x0042a225 lea rdi, [rsp + 0xe0] | 0x0042a22d lea rbx, [rsp + 0x60] | rbx = rsp + 0x60; 0x0042a232 mov esi, 0x4cfe50 | 0x0042a237 mov rdx, rbx | 0x0042a23a call 0x43cb10 | bsl::basic_string,bsl::allocator>bsl::operator+,bsl::allocator>(char const*,bsl::basic_string,bsl::allocator>const&) (rsp + 0xe0, 0x4cfe50, rbx); 0x0042a23f lea r15, [rsp + 0x30] | r15 = rsp + 0x30; 0x0042a244 lea rsi, [rsp + 0xe0] | 0x0042a24c mov edx, 0x4cfe50 | 0x0042a251 mov rdi, r15 | 0x0042a254 call 0x43ca20 | bsl::basic_string,bsl::allocator>bsl::operator+,bsl::allocator>(bsl::basic_string,bsl::allocator>const&,char const*) (r15, rsp + 0xe0, 0x4cfe50); 0x0042a259 cmp qword [rsp + 0x100], 0x17 | | if (*((rsp + 0x100)) != 0x17) { 0x0042a262 je 0x42a27a | 0x0042a264 mov rsi, qword [rsp + 0xe0] | rsi = *((rsp + 0xe0)); 0x0042a26c mov rdi, qword [rsp + 0x108] | rdi = *((rsp + 0x108)); 0x0042a274 mov rax, qword [rdi] | rax = *(rdi); 0x0042a277 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a27a mov rsi, qword [rsp + 0x78] | rsi = *((rsp + 0x78)); 0x0042a27f cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a288 je 0x42a28f | 0x0042a28a mov rbx, qword [rsp + 0x60] | rbx = *((rsp + 0x60)); | } 0x0042a28f lea r14, [rsp + 0x158] | r14 = rsp + 0x158; 0x0042a297 mov rdi, rbx | 0x0042a29a mov rdx, r14 | 0x0042a29d call 0x44a580 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (rbx, rsi, r14); 0x0042a2a2 mov qword [rsp + 0xc0], rax | *((rsp + 0xc0)) = rax; 0x0042a2aa mov qword [rsp + 0xc8], rdx | *((rsp + 0xc8)) = rdx; 0x0042a2b2 mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042a2ba mov qword [rsp + 0x90], 0 | *((rsp + 0x90)) = 0; 0x0042a2c6 movapd xmm0, xmmword [rip + 0x8d182] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042a2ce movupd xmmword [rsp + 0xa8], xmm0 | __asm ("movupd xmmword [rsp + 0xa8], xmm0"); 0x0042a2d7 mov rax, qword [rip + 0x2fbe22] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a2de test rax, rax | | if (rax != 0) { 0x0042a2e1 je 0x42a2f5 | 0x0042a2e3 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; 0x0042a2eb mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; 0x0042a2f3 jmp 0x42a31f | | } else { 0x0042a2f5 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042a2fa cmp qword [rsp + 0xb0], 0x17 | 0x0042a303 mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; | if (*((rsp + 0xb0)) != 0x17) { 0x0042a30b je 0x42a317 | 0x0042a30d mov rcx, qword [rsp + 0x90] | rcx = *((rsp + 0x90)); 0x0042a315 jmp 0x42a31f | | } else { 0x0042a317 lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; | } | } 0x0042a31f mov byte [rcx], 0 | 0x0042a322 lea rbx, [rsp + 0x90] | rbx = rsp + 0x90; 0x0042a32a lea rsi, [rsp + 0xc0] | 0x0042a332 lea rdx, [rsp + 0x140] | 0x0042a33a mov rdi, rbx | 0x0042a33d call 0x43de20 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0xc0, rsp + 0x140, 0, r8, r9); 0x0042a342 xor edi, edi | edi = 0; 0x0042a344 test eax, eax | 0x0042a346 setne dil | dil = (eax != 0) ? 1 : 0; 0x0042a34a mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042a34f mov edx, 0x2c2 | edx = 0x2c2; 0x0042a354 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a359 mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); 0x0042a35e cmp rbp, qword [rsp + 0xa8] | | if (rbp == *((rsp + 0xa8))) { 0x0042a366 jne 0x42a3b5 | 0x0042a368 test rbp, rbp | | if (rbp != 0) { 0x0042a36b je 0x42a38a | 0x0042a36d cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a376 je 0x42a391 | 0x0042a378 mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a380 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a386 jne 0x42a3a1 | goto label_0; | } 0x0042a388 jmp 0x42a3a6 | | } else { 0x0042a38a xor ebp, ebp | ebp = 0; 0x0042a38c jmp 0x42a419 | goto label_1; | } 0x0042a391 lea rsi, [rsp + 0x90] | rsi = rsp + 0x90; 0x0042a399 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) == 0x17) { 0x0042a39f je 0x42a3a6 | goto label_2; | } | label_0: 0x0042a3a1 mov r15, qword [rsp + 0x30] | r15 = *((rsp + 0x30)); | } | label_2: 0x0042a3a6 mov rdi, r15 | rdi = *((rsp + 0x30)); 0x0042a3a9 mov rdx, rbp | rdx = rbp; 0x0042a3ac call 0x404900 | eax = bcmp (); 0x0042a3b1 test eax, eax | | if (eax == 0) { 0x0042a3b3 je 0x42a419 | goto label_1; | } | } 0x0042a3b5 mov edi, 0x723630 | 0x0042a3ba mov esi, 0x4d1e23 | 0x0042a3bf mov edx, 4 | 0x0042a3c4 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d1e23, 4); 0x0042a3c9 mov esi, 0x4d1289 | 0x0042a3ce mov edx, 2 | 0x0042a3d3 mov rdi, rax | 0x0042a3d6 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042a3db lea rsi, [rsp + 0x90] | 0x0042a3e3 mov rdi, rax | 0x0042a3e6 call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x90); 0x0042a3eb mov esi, 0x4f0e70 | 0x0042a3f0 mov edx, 1 | 0x0042a3f5 mov rdi, rax | 0x0042a3f8 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042a3fd mov esi, 0x4d1a37 | esi = "EXP_JSON == json"; 0x0042a402 mov edi, 1 | edi = 1; 0x0042a407 mov edx, 0x2c3 | edx = 0x2c3; 0x0042a40c call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a411 mov rbp, qword [rsp + 0xa8] | rbp = *((rsp + 0xa8)); | label_1: 0x0042a419 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042a423 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0042a428 mov qword [rsp + 0x20], r14 | *((rsp + 0x20)) = r14; 0x0042a42d cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a436 je 0x42a440 | 0x0042a438 mov rbx, qword [rsp + 0x90] | rbx = *((rsp + 0x90)); | } 0x0042a440 lea rdi, [rsp + 0x130] | 0x0042a448 call 0x43cc00 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x130); 0x0042a44d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a455 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042a45a mov qword [rsp + 0xe0], 0x4d6270 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042a466 mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042a46e mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042a476 add rbp, rbx | rbp += rbx; 0x0042a479 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042a481 mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042a489 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042a491 lea rdi, [rsp + 0x10] | 0x0042a496 lea rdx, [rsp + 0xe0] | 0x0042a49e lea rcx, [rsp + 0x130] | 0x0042a4a6 xor esi, esi | 0x0042a4a8 call 0x43cfd0 | 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); 0x0042a4ad mov ebx, eax | ebx = eax; 0x0042a4af lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a4b7 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042a4bc lea rdi, [rsp + 0x130] | rdi = rsp + 0x130; 0x0042a4c4 call 0x43cc20 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042a4c9 test ebx, ebx | | if (ebx != 0) { 0x0042a4cb je 0x42a523 | 0x0042a4cd mov edi, 0x723630 | 0x0042a4d2 mov esi, 0x4d0a25 | 0x0042a4d7 mov edx, 6 | 0x0042a4dc call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042a4e1 mov esi, 0x4d1289 | 0x0042a4e6 mov edx, 2 | 0x0042a4eb mov rdi, rax | 0x0042a4ee call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042a4f3 mov rdi, rax | rdi = rax; 0x0042a4f6 mov esi, ebx | esi = ebx; 0x0042a4f8 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042a4fd mov esi, 0x4f0e70 | 0x0042a502 mov edx, 1 | 0x0042a507 mov rdi, rax | 0x0042a50a call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042a50f mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042a514 mov edi, 1 | edi = 1; 0x0042a519 mov edx, 0x2c7 | edx = 0x2c7; 0x0042a51e call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042a523 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); 0x0042a528 mov ecx, 0x4030 | ecx = 0x4030; 0x0042a52d bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x0042a531 jb 0x42a59b | 0x0042a533 mov edi, 0x723630 | 0x0042a538 mov esi, 0x4d1a48 | 0x0042a53d mov edx, 0x11 | 0x0042a542 call 0x43afb0 | 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); 0x0042a547 mov esi, 0x4d1289 | 0x0042a54c mov edx, 2 | 0x0042a551 mov rdi, rax | 0x0042a554 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042a559 mov cl, byte [rsp + 0x1e] | cl = *((rsp + 0x1e)); 0x0042a55d mov esi, 0x4030 | esi = 0x4030; 0x0042a562 shr rsi, cl | rsi >>= cl; 0x0042a565 and esi, 1 | esi &= 1; 0x0042a568 mov rdi, rax | rdi = rax; 0x0042a56b call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042a570 mov esi, 0x4f0e70 | 0x0042a575 mov edx, 1 | 0x0042a57a mov rdi, rax | 0x0042a57d call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042a582 mov esi, 0x4d1a48 | esi = "other->isString()"; 0x0042a587 mov edi, 1 | edi = 1; 0x0042a58c mov edx, 0x2c8 | edx = 0x2c8; 0x0042a591 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a596 movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); | } 0x0042a59b cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a5a4 je 0x42a5ad | 0x0042a5a6 mov rdi, qword [rsp + 0x60] | rdi = *((rsp + 0x60)); 0x0042a5ab jmp 0x42a5b2 | | } else { 0x0042a5ad lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; | } 0x0042a5b2 mov rdx, qword [rsp + 0x78] | rdx = *((rsp + 0x78)); 0x0042a5b7 movsx ecx, ax | ecx = (int32_t) ax; 0x0042a5ba cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042a5bd je 0x42a5e2 | 0x0042a5bf cmp ecx, 5 | | if (ecx != 5) { 0x0042a5c2 je 0x42a5e2 | 0x0042a5c4 xor esi, esi | esi = 0; 0x0042a5c6 mov eax, 0 | eax = 0; 0x0042a5cb cmp ecx, 4 | | if (ecx == 4) { 0x0042a5ce jne 0x42a5db | 0x0042a5d0 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042a5d5 movsx rax, byte [rsp + 0x10] | rax = *((rsp + 0x10)); | } 0x0042a5db cmp rdx, rax | | if (rdx == rax) { 0x0042a5de je 0x42a5f1 | goto label_3; | } 0x0042a5e0 jmp 0x42a607 | | } | } else { 0x0042a5e2 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042a5e7 movsxd rax, dword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0042a5ec cmp rdx, rax | | if (rdx != rax) { 0x0042a5ef jne 0x42a607 | goto label_4; | } | label_3: 0x0042a5f1 test rdx, rdx | | if (rdx == 0) { 0x0042a5f4 je 0x42a6d0 | goto label_5; | } 0x0042a5fa call 0x404900 | eax = bcmp (); 0x0042a5ff test eax, eax | | if (eax == 0) { 0x0042a601 je 0x42a6d0 | goto label_5; | } | } | label_4: 0x0042a607 mov edi, 0x723630 | 0x0042a60c mov esi, 0x4d1a5a | 0x0042a611 mov edx, 0xa | 0x0042a616 call 0x43afb0 | 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); 0x0042a61b mov esi, 0x4d1289 | 0x0042a620 mov edx, 2 | 0x0042a625 mov rdi, rax | 0x0042a628 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042a62d lea rsi, [rsp + 0x60] | 0x0042a632 mov rdi, rax | 0x0042a635 call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042a63a mov esi, 0x4f0f33 | 0x0042a63f mov edx, 1 | 0x0042a644 mov rdi, rax | 0x0042a647 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042a64c mov esi, 0x4d1a73 | 0x0042a651 mov edx, 0x12 | 0x0042a656 mov rdi, rax | 0x0042a659 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1a73, 0x12); 0x0042a65e mov esi, 0x4d1289 | 0x0042a663 mov edx, 2 | 0x0042a668 mov rdi, rax | 0x0042a66b call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042a670 movsx ecx, word [rsp + 0x1e] | ecx = *((rsp + 0x1e)); 0x0042a675 cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042a678 je 0x42a698 | 0x0042a67a cmp ecx, 5 | | if (ecx != 5) { 0x0042a67d je 0x42a698 | 0x0042a67f xor esi, esi | esi = 0; 0x0042a681 mov edx, 0 | edx = 0; 0x0042a686 cmp ecx, 4 | | if (ecx != 4) { 0x0042a689 jne 0x42a6a2 | goto label_6; | } 0x0042a68b lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042a690 movsx rdx, byte [rsp + 0x10] | rdx = *((rsp + 0x10)); 0x0042a696 jmp 0x42a6a2 | | } | } else { 0x0042a698 mov rsi, qword [rsp + 0x10] | 0x0042a69d movsxd rdx, dword [rsp + 0x18] | rdx = *((rsp + 0x18)); | } | label_6: 0x0042a6a2 mov rdi, rax | 0x0042a6a5 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, *((rsp + 0x10)), rdx); 0x0042a6aa mov esi, 0x4f0e70 | 0x0042a6af mov edx, 1 | 0x0042a6b4 mov rdi, rax | 0x0042a6b7 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042a6bc mov esi, 0x4d1a65 | esi = "EXP_STRING == other->theString()"; 0x0042a6c1 mov edi, 1 | edi = 1; 0x0042a6c6 mov edx, 0x2cb | edx = 0x2cb; 0x0042a6cb call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_5: 0x0042a6d0 mov rsi, qword [rsp + 0x20] | 0x0042a6d5 lea rdi, [rsp + 0x10] | 0x0042a6da call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x10, *((rsp + 0x20))); 0x0042a6df cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042a6e8 je 0x42a700 | 0x0042a6ea mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a6f2 mov rdi, qword [rsp + 0xb8] | rdi = *((rsp + 0xb8)); 0x0042a6fa mov rax, qword [rdi] | rax = *(rdi); 0x0042a6fd call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a700 mov rsi, qword [rsp + 0xd0] | 0x0042a708 lea rdi, [rsp + 0xc0] | 0x0042a710 call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042a715 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a71b je 0x42a72d | 0x0042a71d mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042a722 mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042a727 mov rax, qword [rdi] | rax = *(rdi); 0x0042a72a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a72d cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a736 je 0x42a74b | 0x0042a738 mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042a73d mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042a745 mov rax, qword [rdi] | rax = *(rdi); 0x0042a748 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042a74b cmp byte [rip + 0x2f8f90], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042a752 je 0x42a82c | 0x0042a758 mov rax, qword [rip + 0x2f8ed1] | rax = std::__1::cout; 0x0042a75f mov esi, 0x723630 | esi = std::__1::cout; 0x0042a764 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042a768 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a770 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a775 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a77d mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a782 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a787 mov rcx, qword [rax] | rcx = *(rax); 0x0042a78a mov rdi, rax | rdi = rax; 0x0042a78d mov esi, 0xa | esi = 0xa; 0x0042a792 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a795 mov ebx, eax | ebx = eax; 0x0042a797 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a79f call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a7a4 movsx esi, bl | esi = (int32_t) bl; 0x0042a7a7 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a7ac call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a7b1 mov edi, 0x723630 | edi = std::__1::cout; 0x0042a7b6 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042a7bb mov edi, 0x723630 | 0x0042a7c0 mov esi, 0x4d1a86 | 0x0042a7c5 mov edx, 0x2e | 0x0042a7ca call 0x43afb0 | 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); 0x0042a7cf mov rbx, rax | rbx = rax; 0x0042a7d2 mov rax, qword [rax] | rax = *(rax); 0x0042a7d5 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042a7d9 add rsi, rbx | rsi += rbx; 0x0042a7dc lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a7e4 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042a7e9 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a7f1 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042a7f6 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042a7fb mov rcx, qword [rax] | rcx = *(rax); 0x0042a7fe mov rdi, rax | rdi = rax; 0x0042a801 mov esi, 0xa | esi = 0xa; 0x0042a806 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042a809 mov ebp, eax | 0x0042a80b lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042a813 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042a818 movsx esi, bpl | esi = (int32_t) bpl; 0x0042a81c mov rdi, rbx | rdi = rbx; 0x0042a81f call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042a824 mov rdi, rbx | rdi = rbx; 0x0042a827 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042a82c mov rax, qword [rip + 0x2fb8cd] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a833 test rax, rax | | if (rax == 0) { 0x0042a836 jne 0x42a83d | 0x0042a838 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a83d mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042a846 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042a84e movapd xmm0, xmmword [rip + 0x8cbfa] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042a856 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042a85c lea rbx, [rsp + 0x60] | rbx = rsp + 0x60; 0x0042a861 mov esi, 0x4d1ab5 | 0x0042a866 mov edx, 0xf | 0x0042a86b mov ecx, 0x4d11b6 | 0x0042a870 mov rdi, rbx | 0x0042a873 call 0x494e00 | 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"); 0x0042a878 mov rax, qword [rip + 0x2fb881] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a87f test rax, rax | | if (rax == 0) { 0x0042a882 jne 0x42a889 | 0x0042a884 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042a889 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042a892 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042a897 movapd xmm0, xmmword [rip + 0x8cbb1] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042a89f movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042a8a5 lea r15, [rsp + 0x30] | r15 = rsp + 0x30; 0x0042a8aa mov esi, 0x4d1ac5 | 0x0042a8af mov edx, 0x1d | 0x0042a8b4 mov ecx, 0x4d11b6 | 0x0042a8b9 mov rdi, r15 | 0x0042a8bc call 0x494e00 | 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"); 0x0042a8c1 mov rsi, qword [rsp + 0x78] | rsi = *((rsp + 0x78)); 0x0042a8c6 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042a8cf je 0x42a8d6 | 0x0042a8d1 mov rbx, qword [rsp + 0x60] | rbx = *((rsp + 0x60)); | } 0x0042a8d6 lea r14, [rsp + 0x158] | r14 = rsp + 0x158; 0x0042a8de mov rdi, rbx | 0x0042a8e1 mov rdx, r14 | 0x0042a8e4 call 0x44a580 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (rbx, rsi, r14); 0x0042a8e9 mov qword [rsp + 0xc0], rax | *((rsp + 0xc0)) = rax; 0x0042a8f1 mov qword [rsp + 0xc8], rdx | *((rsp + 0xc8)) = rdx; 0x0042a8f9 mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042a901 mov qword [rsp + 0x90], 0 | *((rsp + 0x90)) = 0; 0x0042a90d movapd xmm0, xmmword [rip + 0x8cb3b] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042a915 movupd xmmword [rsp + 0xa8], xmm0 | __asm ("movupd xmmword [rsp + 0xa8], xmm0"); 0x0042a91e mov rax, qword [rip + 0x2fb7db] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042a925 test rax, rax | | if (rax != 0) { 0x0042a928 je 0x42a93c | 0x0042a92a lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; 0x0042a932 mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; 0x0042a93a jmp 0x42a966 | | } else { 0x0042a93c call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042a941 cmp qword [rsp + 0xb0], 0x17 | 0x0042a94a mov qword [rsp + 0xb8], rax | *((rsp + 0xb8)) = rax; | if (*((rsp + 0xb0)) != 0x17) { 0x0042a952 je 0x42a95e | 0x0042a954 mov rcx, qword [rsp + 0x90] | rcx = *((rsp + 0x90)); 0x0042a95c jmp 0x42a966 | | } else { 0x0042a95e lea rcx, [rsp + 0x90] | rcx = rsp + 0x90; | } | } 0x0042a966 mov byte [rcx], 0 | 0x0042a969 lea r12, [rsp + 0x90] | r12 = rsp + 0x90; 0x0042a971 lea rsi, [rsp + 0xc0] | 0x0042a979 lea rdx, [rsp + 0x140] | 0x0042a981 mov rdi, r12 | 0x0042a984 call 0x43de20 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r12, rsp + 0xc0, rsp + 0x140, 0, r8, r9); 0x0042a989 xor edi, edi | edi = 0; 0x0042a98b test eax, eax | 0x0042a98d setne dil | dil = (eax != 0) ? 1 : 0; 0x0042a991 mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042a996 mov edx, 0x2d9 | edx = 0x2d9; 0x0042a99b call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042a9a0 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x0042a9a5 cmp rbx, qword [rsp + 0xa8] | | if (rbx != *((rsp + 0xa8))) { 0x0042a9ad jne 0x42a9fe | goto label_7; | } 0x0042a9af test rbx, rbx | | if (rbx == 0) { 0x0042a9b2 je 0x42a9d6 | goto label_8; | } 0x0042a9b4 cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) == 0x17) { 0x0042a9bd je 0x42a9dd | goto label_9; | } 0x0042a9bf mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042a9c7 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042a9cd jne 0x42a9ed | goto label_10; | } | do { 0x0042a9cf lea rdi, [rsp + 0x30] | rdi = rsp + 0x30; 0x0042a9d4 jmp 0x42a9f2 | goto label_11; | label_8: 0x0042a9d6 xor ebx, ebx | ebx = 0; 0x0042a9d8 jmp 0x42aa62 | goto label_12; | label_9: 0x0042a9dd lea rsi, [rsp + 0x90] | rsi = rsp + 0x90; 0x0042a9e5 cmp qword [rsp + 0x50], 0x17 | 0x0042a9eb je 0x42a9cf | | } while (*((rsp + 0x50)) == 0x17); | label_10: 0x0042a9ed mov rdi, qword [rsp + 0x30] | rdi = *((rsp + 0x30)); | label_11: 0x0042a9f2 mov rdx, rbx | rdx = rbx; 0x0042a9f5 call 0x404900 | eax = bcmp (); 0x0042a9fa test eax, eax | | if (eax != 0) { 0x0042a9fc je 0x42aa62 | | label_7: 0x0042a9fe mov edi, 0x723630 | 0x0042aa03 mov esi, 0x4d1e23 | 0x0042aa08 mov edx, 4 | 0x0042aa0d call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d1e23, 4); 0x0042aa12 mov esi, 0x4d1289 | 0x0042aa17 mov edx, 2 | 0x0042aa1c mov rdi, rax | 0x0042aa1f call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042aa24 lea rsi, [rsp + 0x90] | 0x0042aa2c mov rdi, rax | 0x0042aa2f call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x90); 0x0042aa34 mov esi, 0x4f0e70 | 0x0042aa39 mov edx, 1 | 0x0042aa3e mov rdi, rax | 0x0042aa41 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042aa46 mov esi, 0x4d1a37 | esi = "EXP_JSON == json"; 0x0042aa4b mov edi, 1 | edi = 1; 0x0042aa50 mov edx, 0x2da | edx = 0x2da; 0x0042aa55 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042aa5a mov rbx, qword [rsp + 0xa8] | rbx = *((rsp + 0xa8)); | } | label_12: 0x0042aa62 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042aa6c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0042aa71 mov qword [rsp + 0x20], r14 | *((rsp + 0x20)) = r14; 0x0042aa76 cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042aa7f je 0x42aa89 | 0x0042aa81 mov r12, qword [rsp + 0x90] | r12 = *((rsp + 0x90)); | } 0x0042aa89 lea rdi, [rsp + 0x130] | 0x0042aa91 call 0x43cc00 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x130); 0x0042aa96 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042aa9e call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042aaa3 mov qword [rsp + 0xe0], 0x4d6270 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042aaaf mov qword [rsp + 0x120], r12 | *((rsp + 0x120)) = r12; 0x0042aab7 mov qword [rsp + 0x128], rbx | *((rsp + 0x128)) = rbx; 0x0042aabf add rbx, r12 | rbx += r12; 0x0042aac2 mov qword [rsp + 0xf0], r12 | *((rsp + 0xf0)) = r12; 0x0042aaca mov qword [rsp + 0xf8], r12 | *((rsp + 0xf8)) = r12; 0x0042aad2 mov qword [rsp + 0x100], rbx | *((rsp + 0x100)) = rbx; 0x0042aada lea rdi, [rsp + 0x10] | 0x0042aadf lea rdx, [rsp + 0xe0] | 0x0042aae7 lea rcx, [rsp + 0x130] | 0x0042aaef xor esi, esi | 0x0042aaf1 call 0x43cfd0 | 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); 0x0042aaf6 mov ebx, eax | ebx = eax; 0x0042aaf8 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ab00 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042ab05 lea rdi, [rsp + 0x130] | rdi = rsp + 0x130; 0x0042ab0d call 0x43cc20 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042ab12 test ebx, ebx | | if (ebx != 0) { 0x0042ab14 je 0x42ab6c | 0x0042ab16 mov edi, 0x723630 | 0x0042ab1b mov esi, 0x4d0a25 | 0x0042ab20 mov edx, 6 | 0x0042ab25 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042ab2a mov esi, 0x4d1289 | 0x0042ab2f mov edx, 2 | 0x0042ab34 mov rdi, rax | 0x0042ab37 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042ab3c mov rdi, rax | rdi = rax; 0x0042ab3f mov esi, ebx | esi = ebx; 0x0042ab41 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042ab46 mov esi, 0x4f0e70 | 0x0042ab4b mov edx, 1 | 0x0042ab50 mov rdi, rax | 0x0042ab53 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042ab58 mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042ab5d mov edi, 1 | edi = 1; 0x0042ab62 mov edx, 0x2de | edx = 0x2de; 0x0042ab67 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042ab6c movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); 0x0042ab71 mov ecx, 0x4030 | ecx = 0x4030; 0x0042ab76 bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x0042ab7a jb 0x42abe4 | 0x0042ab7c mov edi, 0x723630 | 0x0042ab81 mov esi, 0x4d1a48 | 0x0042ab86 mov edx, 0x11 | 0x0042ab8b call 0x43afb0 | 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); 0x0042ab90 mov esi, 0x4d1289 | 0x0042ab95 mov edx, 2 | 0x0042ab9a mov rdi, rax | 0x0042ab9d call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042aba2 mov cl, byte [rsp + 0x1e] | cl = *((rsp + 0x1e)); 0x0042aba6 mov esi, 0x4030 | esi = 0x4030; 0x0042abab shr rsi, cl | rsi >>= cl; 0x0042abae and esi, 1 | esi &= 1; 0x0042abb1 mov rdi, rax | rdi = rax; 0x0042abb4 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042abb9 mov esi, 0x4f0e70 | 0x0042abbe mov edx, 1 | 0x0042abc3 mov rdi, rax | 0x0042abc6 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042abcb mov esi, 0x4d1a48 | esi = "other->isString()"; 0x0042abd0 mov edi, 1 | edi = 1; 0x0042abd5 mov edx, 0x2df | edx = 0x2df; 0x0042abda call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042abdf movzx eax, word [rsp + 0x1e] | eax = *((rsp + 0x1e)); | } 0x0042abe4 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042abed je 0x42abf6 | 0x0042abef mov rdi, qword [rsp + 0x60] | rdi = *((rsp + 0x60)); 0x0042abf4 jmp 0x42abfb | | } else { 0x0042abf6 lea rdi, [rsp + 0x60] | rdi = rsp + 0x60; | } 0x0042abfb mov rdx, qword [rsp + 0x78] | rdx = *((rsp + 0x78)); 0x0042ac00 movsx ecx, ax | ecx = (int32_t) ax; 0x0042ac03 cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042ac06 je 0x42ac2b | 0x0042ac08 cmp ecx, 5 | | if (ecx != 5) { 0x0042ac0b je 0x42ac2b | 0x0042ac0d xor esi, esi | esi = 0; 0x0042ac0f mov eax, 0 | eax = 0; 0x0042ac14 cmp ecx, 4 | | if (ecx == 4) { 0x0042ac17 jne 0x42ac24 | 0x0042ac19 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042ac1e movsx rax, byte [rsp + 0x10] | rax = *((rsp + 0x10)); | } 0x0042ac24 cmp rdx, rax | | if (rdx == rax) { 0x0042ac27 je 0x42ac3a | goto label_13; | } 0x0042ac29 jmp 0x42ac50 | | } | } else { 0x0042ac2b mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0042ac30 movsxd rax, dword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0042ac35 cmp rdx, rax | | if (rdx != rax) { 0x0042ac38 jne 0x42ac50 | goto label_14; | } | label_13: 0x0042ac3a test rdx, rdx | | if (rdx == 0) { 0x0042ac3d je 0x42ad19 | goto label_15; | } 0x0042ac43 call 0x404900 | eax = bcmp (); 0x0042ac48 test eax, eax | | if (eax == 0) { 0x0042ac4a je 0x42ad19 | goto label_15; | } | } | label_14: 0x0042ac50 mov edi, 0x723630 | 0x0042ac55 mov esi, 0x4d1a5a | 0x0042ac5a mov edx, 0xa | 0x0042ac5f call 0x43afb0 | 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); 0x0042ac64 mov esi, 0x4d1289 | 0x0042ac69 mov edx, 2 | 0x0042ac6e mov rdi, rax | 0x0042ac71 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042ac76 lea rsi, [rsp + 0x60] | 0x0042ac7b mov rdi, rax | 0x0042ac7e call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042ac83 mov esi, 0x4f0f33 | 0x0042ac88 mov edx, 1 | 0x0042ac8d mov rdi, rax | 0x0042ac90 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042ac95 mov esi, 0x4d1a73 | 0x0042ac9a mov edx, 0x12 | 0x0042ac9f mov rdi, rax | 0x0042aca2 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1a73, 0x12); 0x0042aca7 mov esi, 0x4d1289 | 0x0042acac mov edx, 2 | 0x0042acb1 mov rdi, rax | 0x0042acb4 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042acb9 movsx ecx, word [rsp + 0x1e] | ecx = *((rsp + 0x1e)); 0x0042acbe cmp ecx, 0xe | | if (ecx != 0xe) { 0x0042acc1 je 0x42ace1 | 0x0042acc3 cmp ecx, 5 | | if (ecx != 5) { 0x0042acc6 je 0x42ace1 | 0x0042acc8 xor esi, esi | esi = 0; 0x0042acca mov edx, 0 | edx = 0; 0x0042accf cmp ecx, 4 | | if (ecx != 4) { 0x0042acd2 jne 0x42aceb | goto label_16; | } 0x0042acd4 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; 0x0042acd9 movsx rdx, byte [rsp + 0x10] | rdx = *((rsp + 0x10)); 0x0042acdf jmp 0x42aceb | | } | } else { 0x0042ace1 mov rsi, qword [rsp + 0x10] | 0x0042ace6 movsxd rdx, dword [rsp + 0x18] | rdx = *((rsp + 0x18)); | } | label_16: 0x0042aceb mov rdi, rax | 0x0042acee call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, *((rsp + 0x10)), rdx); 0x0042acf3 mov esi, 0x4f0e70 | 0x0042acf8 mov edx, 1 | 0x0042acfd mov rdi, rax | 0x0042ad00 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042ad05 mov esi, 0x4d1a65 | esi = "EXP_STRING == other->theString()"; 0x0042ad0a mov edi, 1 | edi = 1; 0x0042ad0f mov edx, 0x2e2 | edx = 0x2e2; 0x0042ad14 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_15: 0x0042ad19 mov rsi, qword [rsp + 0x20] | 0x0042ad1e lea rdi, [rsp + 0x10] | 0x0042ad23 call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x10, *((rsp + 0x20))); 0x0042ad28 cmp qword [rsp + 0xb0], 0x17 | | if (*((rsp + 0xb0)) != 0x17) { 0x0042ad31 je 0x42ad49 | 0x0042ad33 mov rsi, qword [rsp + 0x90] | rsi = *((rsp + 0x90)); 0x0042ad3b mov rdi, qword [rsp + 0xb8] | rdi = *((rsp + 0xb8)); 0x0042ad43 mov rax, qword [rdi] | rax = *(rdi); 0x0042ad46 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042ad49 mov rsi, qword [rsp + 0xd0] | 0x0042ad51 lea rdi, [rsp + 0xc0] | 0x0042ad59 call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042ad5e cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042ad64 je 0x42ad76 | 0x0042ad66 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042ad6b mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042ad70 mov rax, qword [rdi] | rax = *(rdi); 0x0042ad73 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042ad76 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042ad7f je 0x42ad94 | 0x0042ad81 mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042ad86 mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042ad8e mov rax, qword [rdi] | rax = *(rdi); 0x0042ad91 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042ad94 cmp byte [rip + 0x2f8946], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042ad9b je 0x42ae75 | 0x0042ada1 mov rax, qword [rip + 0x2f8888] | rax = std::__1::cout; 0x0042ada8 mov esi, 0x723630 | esi = std::__1::cout; 0x0042adad add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 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, 0x723550 | 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 ebx, eax | ebx = eax; 0x0042ade0 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ade8 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042aded movsx esi, bl | esi = (int32_t) bl; 0x0042adf0 mov edi, 0x723630 | edi = std::__1::cout; 0x0042adf5 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042adfa mov edi, 0x723630 | edi = std::__1::cout; 0x0042adff call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042ae04 mov edi, 0x723630 | 0x0042ae09 mov esi, 0x4d1ae3 | 0x0042ae0e mov edx, 0x22 | 0x0042ae13 call 0x43afb0 | 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); 0x0042ae18 mov rbx, rax | rbx = rax; 0x0042ae1b mov rax, qword [rax] | rax = *(rax); 0x0042ae1e mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042ae22 add rsi, rbx | rsi += rbx; 0x0042ae25 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ae2d call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042ae32 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ae3a mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042ae3f call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042ae44 mov rcx, qword [rax] | rcx = *(rax); 0x0042ae47 mov rdi, rax | rdi = rax; 0x0042ae4a mov esi, 0xa | esi = 0xa; 0x0042ae4f call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042ae52 mov ebp, eax | 0x0042ae54 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ae5c call 0x404ba0 | std::_1::locale::~locale() (); 0x0042ae61 movsx esi, bpl | esi = (int32_t) bpl; 0x0042ae65 mov rdi, rbx | rdi = rbx; 0x0042ae68 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042ae6d mov rdi, rbx | rdi = rbx; 0x0042ae70 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042ae75 mov rax, qword [rip + 0x2fb284] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042ae7c test rax, rax | | if (rax == 0) { 0x0042ae7f jne 0x42ae86 | 0x0042ae81 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042ae86 mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042ae8f mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042ae97 movapd xmm0, xmmword [rip + 0x8c5b1] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042ae9f movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042aea5 lea r12, [rsp + 0x60] | r12 = rsp + 0x60; 0x0042aeaa mov esi, 0x4d1ca5 | 0x0042aeaf mov edx, 3 | 0x0042aeb4 mov ecx, 0x4d11b6 | 0x0042aeb9 mov rdi, r12 | 0x0042aebc call 0x494e00 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r12, 0x4d1ca5, 3, "string<...>::assign(char*...): string too long"); 0x0042aec1 movabs rax, 0xa00000000007b | rax = 0xa00000000007b; 0x0042aecb mov qword [rsp + 0x98], rax | *((rsp + 0x98)) = rax; 0x0042aed3 mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042aedb mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042aee4 movapd xmm0, xmmword [rip + 0x8c564] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042aeec movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042aef2 mov rax, qword [rip + 0x2fb207] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042aef9 test rax, rax | | if (rax != 0) { 0x0042aefc je 0x42af05 | 0x0042aefe mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042af03 jmp 0x42af23 | | } else { 0x0042af05 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042af0a cmp qword [rsp + 0x50], 0x17 | 0x0042af10 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; | if (*((rsp + 0x50)) != 0x17) { 0x0042af15 je 0x42af1e | 0x0042af17 mov r15, qword [rsp + 0x30] | r15 = *((rsp + 0x30)); 0x0042af1c jmp 0x42af23 | | } else { 0x0042af1e lea r15, [rsp + 0x30] | r15 = rsp + 0x30; | } | } 0x0042af23 mov byte [r15], 0 | *(r15) = 0; 0x0042af27 lea rbx, [rsp + 0x30] | rbx = rsp + 0x30; 0x0042af2c lea rsi, [rsp + 0x90] | 0x0042af34 lea rdx, [rsp + 0x140] | 0x0042af3c mov rdi, rbx | 0x0042af3f call 0x43de20 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0x90, rsp + 0x140, rcx, r8, r9); 0x0042af44 mov ebp, eax | 0x0042af46 cmp eax, 1 | | if (eax != 1) { 0x0042af49 je 0x42afa1 | 0x0042af4b mov edi, 0x723630 | 0x0042af50 mov esi, 0x4d0a25 | 0x0042af55 mov edx, 6 | 0x0042af5a call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042af5f mov esi, 0x4d1289 | 0x0042af64 mov edx, 2 | 0x0042af69 mov rdi, rax | 0x0042af6c call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042af71 mov rdi, rax | rdi = rax; 0x0042af74 mov esi, ebp | esi = ebp; 0x0042af76 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042af7b mov esi, 0x4f0e70 | 0x0042af80 mov edx, 1 | 0x0042af85 mov rdi, rax | 0x0042af88 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042af8d mov esi, 0x4d1b06 | esi = "1 == result"; 0x0042af92 mov edi, 1 | edi = 1; 0x0042af97 mov edx, 0x2f0 | edx = 0x2f0; 0x0042af9c call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042afa1 mov rbp, qword [rsp + 0x78] | rbp = *((rsp + 0x78)); 0x0042afa6 cmp rbp, qword [rsp + 0x48] | | if (rbp == *((rsp + 0x48))) { 0x0042afab jne 0x42affb | 0x0042afad test rbp, rbp | | if (rbp != 0) { 0x0042afb0 je 0x42afcc | 0x0042afb2 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042afb8 je 0x42afd3 | 0x0042afba mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042afbf cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042afc8 jne 0x42afe3 | goto label_17; | } 0x0042afca jmp 0x42afe8 | | } else { 0x0042afcc xor ebp, ebp | ebp = 0; 0x0042afce jmp 0x42b09c | goto label_18; | } 0x0042afd3 lea rsi, [rsp + 0x30] | rsi = rsp + 0x30; 0x0042afd8 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) == 0x17) { 0x0042afe1 je 0x42afe8 | goto label_19; | } | label_17: 0x0042afe3 mov r12, qword [rsp + 0x60] | r12 = *((rsp + 0x60)); | } | label_19: 0x0042afe8 mov rdi, r12 | rdi = *((rsp + 0x60)); 0x0042afeb mov rdx, rbp | rdx = rbp; 0x0042afee call 0x404900 | eax = bcmp (); 0x0042aff3 test eax, eax | | if (eax == 0) { 0x0042aff5 je 0x42b09c | goto label_18; | } | } 0x0042affb mov edi, 0x723630 | 0x0042b000 mov esi, 0x4d1b12 | 0x0042b005 mov edx, 8 | 0x0042b00a call 0x43afb0 | 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); 0x0042b00f mov esi, 0x4d1289 | 0x0042b014 mov edx, 2 | 0x0042b019 mov rdi, rax | 0x0042b01c call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b021 lea rsi, [rsp + 0x60] | 0x0042b026 mov rdi, rax | 0x0042b029 call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042b02e mov esi, 0x4f0f33 | 0x0042b033 mov edx, 1 | 0x0042b038 mov rdi, rax | 0x0042b03b call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042b040 mov esi, 0x4d1e23 | 0x0042b045 mov edx, 4 | 0x0042b04a mov rdi, rax | 0x0042b04d call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1e23, 4); 0x0042b052 mov esi, 0x4d1289 | 0x0042b057 mov edx, 2 | 0x0042b05c mov rdi, rax | 0x0042b05f call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b064 lea rsi, [rsp + 0x30] | 0x0042b069 mov rdi, rax | 0x0042b06c call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x30); 0x0042b071 mov esi, 0x4f0e70 | 0x0042b076 mov edx, 1 | 0x0042b07b mov rdi, rax | 0x0042b07e call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b083 mov esi, 0x4d1a37 | esi = "EXP_JSON == json"; 0x0042b088 mov edi, 1 | edi = 1; 0x0042b08d mov edx, 0x2f1 | edx = 0x2f1; 0x0042b092 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042b097 mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); | label_18: 0x0042b09c movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042b0a6 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0042b0ae mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042b0b6 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b0bc je 0x42b0c3 | 0x0042b0be mov rbx, qword [rsp + 0x30] | rbx = *((rsp + 0x30)); | } 0x0042b0c3 lea rdi, [rsp + 0x10] | 0x0042b0c8 call 0x43cc00 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x10); 0x0042b0cd lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b0d5 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042b0da mov qword [rsp + 0xe0], 0x4d6270 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042b0e6 mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042b0ee mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042b0f6 add rbp, rbx | rbp += rbx; 0x0042b0f9 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042b101 mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042b109 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042b111 lea rdi, [rsp + 0xc0] | 0x0042b119 lea rdx, [rsp + 0xe0] | 0x0042b121 lea rcx, [rsp + 0x10] | 0x0042b126 xor esi, esi | 0x0042b128 call 0x43cfd0 | 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); 0x0042b12d mov ebx, eax | ebx = eax; 0x0042b12f lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b137 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042b13c lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0042b141 call 0x43cc20 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042b146 test ebx, ebx | | if (ebx != 0) { 0x0042b148 je 0x42b1a0 | 0x0042b14a mov edi, 0x723630 | 0x0042b14f mov esi, 0x4d0a25 | 0x0042b154 mov edx, 6 | 0x0042b159 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042b15e mov esi, 0x4d1289 | 0x0042b163 mov edx, 2 | 0x0042b168 mov rdi, rax | 0x0042b16b call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b170 mov rdi, rax | rdi = rax; 0x0042b173 mov esi, ebx | esi = ebx; 0x0042b175 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b17a mov esi, 0x4f0e70 | 0x0042b17f mov edx, 1 | 0x0042b184 mov rdi, rax | 0x0042b187 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b18c mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042b191 mov edi, 1 | edi = 1; 0x0042b196 mov edx, 0x2f5 | edx = 0x2f5; 0x0042b19b call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b1a0 movsx eax, word [rsp + 0xce] | eax = *((rsp + 0xce)); 0x0042b1a8 cmp eax, 1 | | if (eax != 1) { 0x0042b1ab je 0x42b224 | 0x0042b1ad cmp eax, 0x10 | | if (eax == 0x10) { 0x0042b1b0 je 0x42b224 | goto label_20; | } 0x0042b1b2 mov edi, 0x723630 | 0x0042b1b7 mov esi, 0x4d1b1b | 0x0042b1bc mov edx, 0x11 | 0x0042b1c1 call 0x43afb0 | 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); 0x0042b1c6 mov esi, 0x4d1289 | 0x0042b1cb mov edx, 2 | 0x0042b1d0 mov rdi, rax | 0x0042b1d3 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b1d8 movsx rcx, word [rsp + 0xce] | rcx = *((rsp + 0xce)); 0x0042b1e1 mov ecx, ecx | 0x0042b1e3 cmp rcx, 1 | 0x0042b1e7 sete dl | dl = (rcx == 1) ? 1 : 0; 0x0042b1ea cmp rcx, 0x10 | 0x0042b1ee sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x0042b1f1 or cl, dl | cl |= dl; 0x0042b1f3 movzx esi, cl | esi = (int32_t) cl; 0x0042b1f6 mov rdi, rax | rdi = rax; 0x0042b1f9 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042b1fe mov esi, 0x4f0e70 | 0x0042b203 mov edx, 1 | 0x0042b208 mov rdi, rax | 0x0042b20b call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b210 mov esi, 0x4d1b1b | esi = "other->isDouble()"; 0x0042b215 mov edi, 1 | edi = 1; 0x0042b21a mov edx, 0x2f6 | edx = 0x2f6; 0x0042b21f call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_20: 0x0042b224 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b22d ucomisd xmm0, qword [rip + 0x8c1b3] | __asm ("ucomisd xmm0, qword [0x004b73e8]"); | if (cl == 0) { 0x0042b235 jne 0x42b23d | | if (cl != 0) { 0x0042b237 jnp 0x42b2e0 | goto label_21; | } | } 0x0042b23d mov edi, 0x723630 | 0x0042b242 mov esi, 0x4d1b2d | 0x0042b247 mov edx, 0xb | 0x0042b24c call 0x43afb0 | 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); 0x0042b251 mov esi, 0x4d1289 | 0x0042b256 mov edx, 2 | 0x0042b25b mov rdi, rax | 0x0042b25e call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b263 movsd xmm0, qword [rip + 0x8c17d] | xmm0 = *(0x004b73e8); 0x0042b26b mov rdi, rax | rdi = rax; 0x0042b26e call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b273 mov esi, 0x4f0f33 | 0x0042b278 mov edx, 1 | 0x0042b27d mov rdi, rax | 0x0042b280 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042b285 mov esi, 0x4d1b48 | 0x0042b28a mov edx, 0x12 | 0x0042b28f mov rdi, rax | 0x0042b292 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1b48, 0x12); 0x0042b297 mov esi, 0x4d1289 | 0x0042b29c mov edx, 2 | 0x0042b2a1 mov rdi, rax | 0x0042b2a4 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b2a9 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b2b2 mov rdi, rax | rdi = rax; 0x0042b2b5 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b2ba mov esi, 0x4f0e70 | 0x0042b2bf mov edx, 1 | 0x0042b2c4 mov rdi, rax | 0x0042b2c7 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b2cc mov esi, 0x4d1b39 | esi = "double(obj) == other->theDouble()"; 0x0042b2d1 mov edi, 1 | edi = 1; 0x0042b2d6 mov edx, 0x2f9 | edx = 0x2f9; 0x0042b2db call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_21: 0x0042b2e0 mov rsi, qword [rsp + 0xd0] | 0x0042b2e8 lea rdi, [rsp + 0xc0] | 0x0042b2f0 call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042b2f5 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b2fb je 0x42b30d | 0x0042b2fd mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b302 mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042b307 mov rax, qword [rdi] | rax = *(rdi); 0x0042b30a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b30d mov rsi, qword [rsp + 0xa0] | 0x0042b315 lea rdi, [rsp + 0x90] | 0x0042b31d call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x90, *((rsp + 0xa0))); 0x0042b322 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b32b je 0x42b340 | 0x0042b32d mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042b332 mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042b33a mov rax, qword [rdi] | rax = *(rdi); 0x0042b33d call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b340 cmp byte [rip + 0x2f839a], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042b347 je 0x42b421 | 0x0042b34d mov rax, qword [rip + 0x2f82dc] | rax = std::__1::cout; 0x0042b354 mov esi, 0x723630 | esi = std::__1::cout; 0x0042b359 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 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, 0x723550 | 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 ebx, eax | ebx = eax; 0x0042b38c lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b394 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b399 movsx esi, bl | esi = (int32_t) bl; 0x0042b39c mov edi, 0x723630 | edi = std::__1::cout; 0x0042b3a1 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b3a6 mov edi, 0x723630 | edi = std::__1::cout; 0x0042b3ab call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042b3b0 mov edi, 0x723630 | 0x0042b3b5 mov esi, 0x4d1b5b | 0x0042b3ba mov edx, 0x25 | 0x0042b3bf call 0x43afb0 | 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); 0x0042b3c4 mov rbx, rax | rbx = rax; 0x0042b3c7 mov rax, qword [rax] | rax = *(rax); 0x0042b3ca mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042b3ce add rsi, rbx | rsi += rbx; 0x0042b3d1 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b3d9 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b3de lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b3e6 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042b3eb call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b3f0 mov rcx, qword [rax] | rcx = *(rax); 0x0042b3f3 mov rdi, rax | rdi = rax; 0x0042b3f6 mov esi, 0xa | esi = 0xa; 0x0042b3fb call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b3fe mov ebp, eax | 0x0042b400 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b408 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b40d movsx esi, bpl | esi = (int32_t) bpl; 0x0042b411 mov rdi, rbx | rdi = rbx; 0x0042b414 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b419 mov rdi, rbx | rdi = rbx; 0x0042b41c call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042b421 mov rax, qword [rip + 0x2facd8] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042b428 test rax, rax | | if (rax == 0) { 0x0042b42b jne 0x42b432 | 0x0042b42d call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042b432 mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042b43b mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042b443 movapd xmm0, xmmword [rip + 0x8c005] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042b44b movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042b451 lea r15, [rsp + 0x60] | r15 = rsp + 0x60; 0x0042b456 mov esi, 0x4d1b81 | 0x0042b45b mov edx, 5 | 0x0042b460 mov ecx, 0x4d11b6 | 0x0042b465 mov rdi, r15 | 0x0042b468 call 0x494e00 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r15, "1.375", 5, "string<...>::assign(char*...): string too long"); 0x0042b46d movaps xmm0, xmmword [rip + 0x8c0cc] | xmm0 = *(0x004b7540); 0x0042b474 movaps xmmword [rsp + 0x90], xmm0 | *((rsp + 0x90)) = xmm0; 0x0042b47c mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042b484 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042b48d movapd xmm0, xmmword [rip + 0x8bfbb] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042b495 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042b49b mov rax, qword [rip + 0x2fac5e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042b4a2 test rax, rax | | if (rax != 0) { 0x0042b4a5 je 0x42b4b3 | 0x0042b4a7 lea rcx, [rsp + 0x30] | rcx = rsp + 0x30; 0x0042b4ac mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042b4b1 jmp 0x42b4d1 | | } else { 0x0042b4b3 call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0042b4b8 cmp qword [rsp + 0x50], 0x17 | 0x0042b4be mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; | if (*((rsp + 0x50)) != 0x17) { 0x0042b4c3 je 0x42b4cc | 0x0042b4c5 mov rcx, qword [rsp + 0x30] | rcx = *((rsp + 0x30)); 0x0042b4ca jmp 0x42b4d1 | | } else { 0x0042b4cc lea rcx, [rsp + 0x30] | rcx = rsp + 0x30; | } | } 0x0042b4d1 mov byte [rcx], 0 | 0x0042b4d4 lea rbx, [rsp + 0x30] | rbx = rsp + 0x30; 0x0042b4d9 lea rsi, [rsp + 0x90] | 0x0042b4e1 lea rdx, [rsp + 0x140] | 0x0042b4e9 mov rdi, rbx | 0x0042b4ec call 0x43de20 | eax = BloombergLP::baljsn::DatumUtil::encode(bsl::basic_string,bsl::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0x90, rsp + 0x140, 0, r8, r9); 0x0042b4f1 mov ebp, eax | 0x0042b4f3 test eax, eax | | if (eax != 0) { 0x0042b4f5 je 0x42b54d | 0x0042b4f7 mov edi, 0x723630 | 0x0042b4fc mov esi, 0x4d0a25 | 0x0042b501 mov edx, 6 | 0x0042b506 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042b50b mov esi, 0x4d1289 | 0x0042b510 mov edx, 2 | 0x0042b515 mov rdi, rax | 0x0042b518 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b51d mov rdi, rax | rdi = rax; 0x0042b520 mov esi, ebp | esi = ebp; 0x0042b522 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b527 mov esi, 0x4f0e70 | 0x0042b52c mov edx, 1 | 0x0042b531 mov rdi, rax | 0x0042b534 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b539 mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042b53e mov edi, 1 | edi = 1; 0x0042b543 mov edx, 0x306 | edx = 0x306; 0x0042b548 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b54d mov rbp, qword [rsp + 0x78] | rbp = *((rsp + 0x78)); 0x0042b552 cmp rbp, qword [rsp + 0x48] | | if (rbp == *((rsp + 0x48))) { 0x0042b557 jne 0x42b5a7 | 0x0042b559 test rbp, rbp | | if (rbp != 0) { 0x0042b55c je 0x42b578 | 0x0042b55e cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b564 je 0x42b57f | 0x0042b566 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b56b cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b574 jne 0x42b58f | goto label_22; | } 0x0042b576 jmp 0x42b594 | | } else { 0x0042b578 xor ebp, ebp | ebp = 0; 0x0042b57a jmp 0x42b648 | goto label_23; | } 0x0042b57f lea rsi, [rsp + 0x30] | rsi = rsp + 0x30; 0x0042b584 cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) == 0x17) { 0x0042b58d je 0x42b594 | goto label_24; | } | label_22: 0x0042b58f mov r15, qword [rsp + 0x60] | r15 = *((rsp + 0x60)); | } | label_24: 0x0042b594 mov rdi, r15 | rdi = *((rsp + 0x60)); 0x0042b597 mov rdx, rbp | rdx = rbp; 0x0042b59a call 0x404900 | eax = bcmp (); 0x0042b59f test eax, eax | | if (eax == 0) { 0x0042b5a1 je 0x42b648 | goto label_23; | } | } 0x0042b5a7 mov edi, 0x723630 | 0x0042b5ac mov esi, 0x4d1b12 | 0x0042b5b1 mov edx, 8 | 0x0042b5b6 call 0x43afb0 | 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); 0x0042b5bb mov esi, 0x4d1289 | 0x0042b5c0 mov edx, 2 | 0x0042b5c5 mov rdi, rax | 0x0042b5c8 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b5cd lea rsi, [rsp + 0x60] | 0x0042b5d2 mov rdi, rax | 0x0042b5d5 call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x60); 0x0042b5da mov esi, 0x4f0f33 | 0x0042b5df mov edx, 1 | 0x0042b5e4 mov rdi, rax | 0x0042b5e7 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042b5ec mov esi, 0x4d1e23 | 0x0042b5f1 mov edx, 4 | 0x0042b5f6 mov rdi, rax | 0x0042b5f9 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1e23, 4); 0x0042b5fe mov esi, 0x4d1289 | 0x0042b603 mov edx, 2 | 0x0042b608 mov rdi, rax | 0x0042b60b call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b610 lea rsi, [rsp + 0x30] | 0x0042b615 mov rdi, rax | 0x0042b618 call 0x4226f0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rsp + 0x30); 0x0042b61d mov esi, 0x4f0e70 | 0x0042b622 mov edx, 1 | 0x0042b627 mov rdi, rax | 0x0042b62a call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b62f mov esi, 0x4d1a37 | esi = "EXP_JSON == json"; 0x0042b634 mov edi, 1 | edi = 1; 0x0042b639 mov edx, 0x307 | edx = 0x307; 0x0042b63e call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042b643 mov rbp, qword [rsp + 0x48] | rbp = *((rsp + 0x48)); | label_23: 0x0042b648 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042b652 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0042b65a mov qword [rsp + 0xd0], r14 | *((rsp + 0xd0)) = r14; 0x0042b662 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b668 je 0x42b66f | 0x0042b66a mov rbx, qword [rsp + 0x30] | rbx = *((rsp + 0x30)); | } 0x0042b66f lea rdi, [rsp + 0x10] | 0x0042b674 call 0x43cc00 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x10); 0x0042b679 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b681 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042b686 mov qword [rsp + 0xe0], 0x4d6270 | *((rsp + 0xe0)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042b692 mov qword [rsp + 0x120], rbx | *((rsp + 0x120)) = rbx; 0x0042b69a mov qword [rsp + 0x128], rbp | *((rsp + 0x128)) = rbp; 0x0042b6a2 add rbp, rbx | rbp += rbx; 0x0042b6a5 mov qword [rsp + 0xf0], rbx | *((rsp + 0xf0)) = rbx; 0x0042b6ad mov qword [rsp + 0xf8], rbx | *((rsp + 0xf8)) = rbx; 0x0042b6b5 mov qword [rsp + 0x100], rbp | *((rsp + 0x100)) = rbp; 0x0042b6bd lea rdi, [rsp + 0xc0] | 0x0042b6c5 lea rdx, [rsp + 0xe0] | 0x0042b6cd lea rcx, [rsp + 0x10] | 0x0042b6d2 xor esi, esi | 0x0042b6d4 call 0x43cfd0 | 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); 0x0042b6d9 mov ebx, eax | ebx = eax; 0x0042b6db lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b6e3 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042b6e8 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0042b6ed call 0x43cc20 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042b6f2 test ebx, ebx | | if (ebx != 0) { 0x0042b6f4 je 0x42b74c | 0x0042b6f6 mov edi, 0x723630 | 0x0042b6fb mov esi, 0x4d0a25 | 0x0042b700 mov edx, 6 | 0x0042b705 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d0a25, 6); 0x0042b70a mov esi, 0x4d1289 | 0x0042b70f mov edx, 2 | 0x0042b714 mov rdi, rax | 0x0042b717 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b71c mov rdi, rax | rdi = rax; 0x0042b71f mov esi, ebx | esi = ebx; 0x0042b721 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042b726 mov esi, 0x4f0e70 | 0x0042b72b mov edx, 1 | 0x0042b730 mov rdi, rax | 0x0042b733 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b738 mov esi, 0x4d0a20 | esi = "0 == result"; 0x0042b73d mov edi, 1 | edi = 1; 0x0042b742 mov edx, 0x30b | edx = 0x30b; 0x0042b747 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042b74c movsx eax, word [rsp + 0xce] | eax = *((rsp + 0xce)); 0x0042b754 cmp eax, 1 | | if (eax != 1) { 0x0042b757 je 0x42b7d0 | 0x0042b759 cmp eax, 0x10 | | if (eax == 0x10) { 0x0042b75c je 0x42b7d0 | goto label_25; | } 0x0042b75e mov edi, 0x723630 | 0x0042b763 mov esi, 0x4d1b1b | 0x0042b768 mov edx, 0x11 | 0x0042b76d call 0x43afb0 | 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); 0x0042b772 mov esi, 0x4d1289 | 0x0042b777 mov edx, 2 | 0x0042b77c mov rdi, rax | 0x0042b77f call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b784 movsx rcx, word [rsp + 0xce] | rcx = *((rsp + 0xce)); 0x0042b78d mov ecx, ecx | 0x0042b78f cmp rcx, 1 | 0x0042b793 sete dl | dl = (rcx == 1) ? 1 : 0; 0x0042b796 cmp rcx, 0x10 | 0x0042b79a sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x0042b79d or cl, dl | cl |= dl; 0x0042b79f movzx esi, cl | esi = (int32_t) cl; 0x0042b7a2 mov rdi, rax | rdi = rax; 0x0042b7a5 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042b7aa mov esi, 0x4f0e70 | 0x0042b7af mov edx, 1 | 0x0042b7b4 mov rdi, rax | 0x0042b7b7 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b7bc mov esi, 0x4d1b1b | esi = "other->isDouble()"; 0x0042b7c1 mov edi, 1 | edi = 1; 0x0042b7c6 mov edx, 0x30c | edx = 0x30c; 0x0042b7cb call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_25: 0x0042b7d0 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b7d9 ucomisd xmm0, qword [rip + 0x8bc0f] | __asm ("ucomisd xmm0, qword [0x004b73f0]"); | if (cl == 0) { 0x0042b7e1 jne 0x42b7e9 | | if (cl != 0) { 0x0042b7e3 jnp 0x42b88c | goto label_26; | } | } 0x0042b7e9 mov edi, 0x723630 | 0x0042b7ee mov esi, 0x4d024b | 0x0042b7f3 mov edx, 3 | 0x0042b7f8 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, 0x4d024b, 3); 0x0042b7fd mov esi, 0x4d1289 | 0x0042b802 mov edx, 2 | 0x0042b807 mov rdi, rax | 0x0042b80a call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b80f movsd xmm0, qword [rip + 0x8bbd9] | xmm0 = *(0x004b73f0); 0x0042b817 mov rdi, rax | rdi = rax; 0x0042b81a call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b81f mov esi, 0x4f0f33 | 0x0042b824 mov edx, 1 | 0x0042b829 mov rdi, rax | 0x0042b82c call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0f33, 1); 0x0042b831 mov esi, 0x4d1b48 | 0x0042b836 mov edx, 0x12 | 0x0042b83b mov rdi, rax | 0x0042b83e call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1b48, 0x12); 0x0042b843 mov esi, 0x4d1289 | 0x0042b848 mov edx, 2 | 0x0042b84d mov rdi, rax | 0x0042b850 call 0x43afb0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1289, 2); 0x0042b855 movsd xmm0, qword [rsp + 0xc0] | xmm0 = *((rsp + 0xc0)); 0x0042b85e mov rdi, rax | rdi = rax; 0x0042b861 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x0042b866 mov esi, 0x4f0e70 | 0x0042b86b mov edx, 1 | 0x0042b870 mov rdi, rax | 0x0042b873 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0e70, 1); 0x0042b878 mov esi, 0x4d1b87 | esi = "obj == other->theDouble()"; 0x0042b87d mov edi, 1 | edi = 1; 0x0042b882 mov edx, 0x30d | edx = 0x30d; 0x0042b887 call 0x422600 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_26: 0x0042b88c mov rsi, qword [rsp + 0xd0] | 0x0042b894 lea rdi, [rsp + 0xc0] | 0x0042b89c call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xc0, *((rsp + 0xd0))); 0x0042b8a1 cmp qword [rsp + 0x50], 0x17 | | if (*((rsp + 0x50)) != 0x17) { 0x0042b8a7 je 0x42b8b9 | 0x0042b8a9 mov rsi, qword [rsp + 0x30] | rsi = *((rsp + 0x30)); 0x0042b8ae mov rdi, qword [rsp + 0x58] | rdi = *((rsp + 0x58)); 0x0042b8b3 mov rax, qword [rdi] | rax = *(rdi); 0x0042b8b6 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b8b9 mov rsi, qword [rsp + 0xa0] | 0x0042b8c1 lea rdi, [rsp + 0x90] | 0x0042b8c9 call 0x44a760 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x90, *((rsp + 0xa0))); 0x0042b8ce cmp qword [rsp + 0x80], 0x17 | | if (*((rsp + 0x80)) != 0x17) { 0x0042b8d7 je 0x42b8ec | 0x0042b8d9 mov rsi, qword [rsp + 0x60] | rsi = *((rsp + 0x60)); 0x0042b8de mov rdi, qword [rsp + 0x88] | rdi = *((rsp + 0x88)); 0x0042b8e6 mov rax, qword [rdi] | rax = *(rdi); 0x0042b8e9 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0042b8ec cmp byte [rip + 0x2f7dee], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042b8f3 je 0x42b9cd | 0x0042b8f9 mov rax, qword [rip + 0x2f7d30] | rax = std::__1::cout; 0x0042b900 mov esi, 0x723630 | esi = std::__1::cout; 0x0042b905 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 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, 0x723550 | 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 ebx, eax | ebx = eax; 0x0042b938 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b940 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b945 movsx esi, bl | esi = (int32_t) bl; 0x0042b948 mov edi, 0x723630 | edi = std::__1::cout; 0x0042b94d call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b952 mov edi, 0x723630 | edi = std::__1::cout; 0x0042b957 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042b95c mov edi, 0x723630 | 0x0042b961 mov esi, 0x4d1ba1 | 0x0042b966 mov edx, 0x23 | 0x0042b96b call 0x43afb0 | 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); 0x0042b970 mov rbx, rax | rbx = rax; 0x0042b973 mov rax, qword [rax] | rax = *(rax); 0x0042b976 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042b97a add rsi, rbx | rsi += rbx; 0x0042b97d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b985 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042b98a lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b992 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042b997 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042b99c mov rcx, qword [rax] | rcx = *(rax); 0x0042b99f mov rdi, rax | rdi = rax; 0x0042b9a2 mov esi, 0xa | esi = 0xa; 0x0042b9a7 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042b9aa mov ebp, eax | 0x0042b9ac lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042b9b4 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042b9b9 movsx esi, bpl | esi = (int32_t) bpl; 0x0042b9bd mov rdi, rbx | rdi = rbx; 0x0042b9c0 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042b9c5 mov rdi, rbx | rdi = rbx; 0x0042b9c8 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042b9cd cmp byte [rip + 0x2f7d0e], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042b9d4 je 0x42baae | 0x0042b9da mov rax, qword [rip + 0x2f7c4f] | rax = std::__1::cout; 0x0042b9e1 mov esi, 0x723630 | esi = std::__1::cout; 0x0042b9e6 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 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, 0x723550 | 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 ebx, eax | ebx = eax; 0x0042ba19 lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ba21 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042ba26 movsx esi, bl | esi = (int32_t) bl; 0x0042ba29 mov edi, 0x723630 | edi = std::__1::cout; 0x0042ba2e call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042ba33 mov edi, 0x723630 | edi = std::__1::cout; 0x0042ba38 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042ba3d mov edi, 0x723630 | 0x0042ba42 mov esi, 0x4d1bc5 | 0x0042ba47 mov edx, 9 | 0x0042ba4c call 0x43afb0 | 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); 0x0042ba51 mov rbx, rax | rbx = rax; 0x0042ba54 mov rax, qword [rax] | rax = *(rax); 0x0042ba57 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042ba5b add rsi, rbx | rsi += rbx; 0x0042ba5e lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ba66 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042ba6b lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ba73 mov esi, 0x723550 | esi = std::__1::ctype::id; 0x0042ba78 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042ba7d mov rcx, qword [rax] | rcx = *(rax); 0x0042ba80 mov rdi, rax | rdi = rax; 0x0042ba83 mov esi, 0xa | esi = 0xa; 0x0042ba88 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042ba8b mov ebp, eax | 0x0042ba8d lea rdi, [rsp + 0xe0] | rdi = rsp + 0xe0; 0x0042ba95 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042ba9a movsx esi, bpl | esi = (int32_t) bpl; 0x0042ba9e mov rdi, rbx | rdi = rbx; 0x0042baa1 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042baa6 mov rdi, rbx | rdi = rbx; 0x0042baa9 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042baae mov rax, qword [rip + 0x2fa64b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042bab5 test rax, rax | | if (rax == 0) { 0x0042bab8 jne 0x42babf | 0x0042baba call 0x490f40 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0042babf mov qword [rsp + 0x60], 0 | *((rsp + 0x60)) = 0; 0x0042bac8 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0042bad0 movapd xmm0, xmmword [rip + 0x8b978] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042bad8 movupd xmmword [rsp + 0x78], xmm0 | __asm ("movupd xmmword [rsp + 0x78], xmm0"); 0x0042bade lea r15, [rsp + 0x60] | r15 = rsp + 0x60; 0x0042bae3 mov esi, 0x4d1bc9 | 0x0042bae8 mov edx, 5 | 0x0042baed mov ecx, 0x4d11b6 | 0x0042baf2 mov rdi, r15 | 0x0042baf5 call 0x494e00 | bsl::basic_string,bsl::allocator>::privateAppend(char const*,unsigned long,char const*) (r15, 0x4d1bc9, 5, "string<...>::assign(char*...): string too long"); 0x0042bafa movabs r12, 0x3000000000000 | r12 = 0x3000000000000; 0x0042bb04 mov qword [rsp + 0x98], r12 | *((rsp + 0x98)) = r12; 0x0042bb0c mov qword [rsp + 0xa0], r14 | *((rsp + 0xa0)) = r14; 0x0042bb14 mov qword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x0042bb1d movapd xmm0, xmmword [rip + 0x8b92b] | __asm ("movapd xmm0, xmmword [0x004b7450]"); 0x0042bb25 movupd xmmword [rsp + 0x48], xmm0 | __asm ("movupd xmmword [rsp + 0x48], xmm0"); 0x0042bb2b mov rax, qword [rip + 0x2fa5ce] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0042bb32 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. */ 0x0042bb35 je 0x42bb43 | return void (*0x42bb43)() (); | }