; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/assume @ 0x42f9a0 */ | #include | ; (fcn) method.void_testCase04_std::__1::basic_string_char__std::__1::char_traits_char___std::__1.allocator_char_______ () | int64_t method_void_testCase04_std::_1::basic_string_char_std::_1::char_traits_char_std::_1_allocator_char_ (void) { | int64_t var_10h; | int64_t var_11h; | int64_t var_18h; | int64_t var_20h; | int64_t var_30h; | int64_t var_31h; | int64_t var_35h; | int64_t var_38h; | int64_t var_40h; | int64_t var_50h; | int64_t var_51h; | uint32_t var_58h; | uint32_t var_5eh; | int64_t var_60h; | int64_t var_70h; | int64_t var_71h; | int64_t var_78h; | int64_t var_80h; | int64_t var_90h; | int64_t var_a0h; | int64_t var_a8h; | int64_t var_b0h; | int64_t var_d0h; | int64_t var_d8h; | int64_t var_e0h; | int64_t var_e8h; | int64_t var_f0h; | int64_t var_108h; | int64_t var_118h; | int64_t var_130h; | int64_t var_138h; | /* void testCase04, std::__1::allocator > >() */ 0x0042f9a0 push rbp | 0x0042f9a1 push r15 | 0x0042f9a3 push r14 | 0x0042f9a5 push r13 | 0x0042f9a7 push r12 | 0x0042f9a9 push rbx | 0x0042f9aa sub rsp, 0x208 | 0x0042f9b1 lea rdi, [rsp + 0x138] | 0x0042f9b9 mov esi, 0x4c9b8b | 0x0042f9be xor edx, edx | 0x0042f9c0 call 0x490e00 | BloombergLP::bslma::TestAllocator::TestAllocator(char const*,BloombergLP::bslma::Allocator*) (rsp + 0x138, "test", 0); 0x0042f9c5 lea rdi, [rsp + 0x118] | 0x0042f9cd call 0x43cb70 | BloombergLP::baljsn::DatumEncoderOptions::DatumEncoderOptions() (rsp + 0x118); 0x0042f9d2 mov byte [rsp + 0x118], 1 | *((rsp + 0x118)) = 1; 0x0042f9da cmp byte [rip + 0x2f2d00], 0 | | if (*(obj.veryVerbose) != 0) { 0x0042f9e1 je 0x42fabb | 0x0042f9e7 mov rax, qword [rip + 0x2f2c42] | rax = std::__1::cout; 0x0042f9ee mov esi, 0x722630 | esi = std::__1::cout; 0x0042f9f3 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042f9f7 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042f9ff call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042fa04 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fa0c mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042fa11 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042fa16 mov rcx, qword [rax] | rcx = *(rax); 0x0042fa19 mov rdi, rax | rdi = rax; 0x0042fa1c mov esi, 0xa | esi = 0xa; 0x0042fa21 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042fa24 mov ebx, eax | ebx = eax; 0x0042fa26 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fa2e call 0x404ba0 | std::_1::locale::~locale() (); 0x0042fa33 movsx esi, bl | esi = (int32_t) bl; 0x0042fa36 mov edi, 0x722630 | edi = std::__1::cout; 0x0042fa3b call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042fa40 mov edi, 0x722630 | edi = std::__1::cout; 0x0042fa45 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042fa4a mov edi, 0x722630 | 0x0042fa4f mov esi, 0x4d0e49 | 0x0042fa54 mov edx, 0x23 | 0x0042fa59 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); 0x0042fa5e mov rbx, rax | rbx = rax; 0x0042fa61 mov rax, qword [rax] | rax = *(rax); 0x0042fa64 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042fa68 add rsi, rbx | rsi += rbx; 0x0042fa6b lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fa73 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042fa78 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fa80 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042fa85 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042fa8a mov rcx, qword [rax] | rcx = *(rax); 0x0042fa8d mov rdi, rax | rdi = rax; 0x0042fa90 mov esi, 0xa | esi = 0xa; 0x0042fa95 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042fa98 mov ebp, eax | 0x0042fa9a lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042faa2 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042faa7 movsx esi, bpl | esi = (int32_t) bpl; 0x0042faab mov rdi, rbx | rdi = rbx; 0x0042faae call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042fab3 mov rdi, rbx | rdi = rbx; 0x0042fab6 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042fabb cmp byte [rip + 0x2f2c20], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0042fac2 je 0x42fb9c | 0x0042fac8 mov rax, qword [rip + 0x2f2b61] | rax = std::__1::cout; 0x0042facf mov esi, 0x722630 | esi = std::__1::cout; 0x0042fad4 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x0042fad8 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fae0 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042fae5 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042faed mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042faf2 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042faf7 mov rcx, qword [rax] | rcx = *(rax); 0x0042fafa mov rdi, rax | rdi = rax; 0x0042fafd mov esi, 0xa | esi = 0xa; 0x0042fb02 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042fb05 mov ebx, eax | ebx = eax; 0x0042fb07 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fb0f call 0x404ba0 | std::_1::locale::~locale() (); 0x0042fb14 movsx esi, bl | esi = (int32_t) bl; 0x0042fb17 mov edi, 0x722630 | edi = std::__1::cout; 0x0042fb1c call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042fb21 mov edi, 0x722630 | edi = std::__1::cout; 0x0042fb26 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0042fb2b mov edi, 0x722630 | 0x0042fb30 mov esi, 0x4d0e6d | 0x0042fb35 mov edx, 0x1d | 0x0042fb3a 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); 0x0042fb3f mov rbx, rax | rbx = rax; 0x0042fb42 mov rax, qword [rax] | rax = *(rax); 0x0042fb45 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0042fb49 add rsi, rbx | rsi += rbx; 0x0042fb4c lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fb54 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0042fb59 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fb61 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0042fb66 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0042fb6b mov rcx, qword [rax] | rcx = *(rax); 0x0042fb6e mov rdi, rax | rdi = rax; 0x0042fb71 mov esi, 0xa | esi = 0xa; 0x0042fb76 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0042fb79 mov ebp, eax | 0x0042fb7b lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fb83 call 0x404ba0 | std::_1::locale::~locale() (); 0x0042fb88 movsx esi, bpl | esi = (int32_t) bpl; 0x0042fb8c mov rdi, rbx | rdi = rbx; 0x0042fb8f call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0042fb94 mov rdi, rbx | rdi = rbx; 0x0042fb97 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0042fb9c mov byte [rsp + 0x30], 0xa | *((rsp + 0x30)) = 0xa; 0x0042fba1 mov dword [rsp + 0x31], 0x6c6c6568 | *((rsp + 0x31)) = 0x6c6c6568; 0x0042fba9 mov word [rsp + 0x35], 0x6f | *((rsp + 0x35)) = 0x6f; 0x0042fbb0 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fbb8 lea rdx, [rsp + 0x30] | rdx = rsp + 0x30; 0x0042fbbd mov esi, 0x4cf2a2 | esi = 0x4cf2a2; 0x0042fbc2 call 0x4047d0 | std::_1::basic_string,std::_1::allocator>std::_1::operator+,std::_1::allocator>(char const*,std::_1::basic_string,std::_1::allocator>const&) (); 0x0042fbc7 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fbcf mov esi, 0x4cf2a2 | esi = 0x4cf2a2; 0x0042fbd4 call 0x404c40 | rax = std::_1::basic_string,std::_1::allocator>::append(char const*) (); 0x0042fbd9 mov rcx, qword [rax + 0x10] | rcx = *((rax + 0x10)); 0x0042fbdd mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x0042fbe2 movupd xmm0, xmmword [rax] | __asm ("movupd xmm0, xmmword [rax]"); 0x0042fbe6 movapd xmmword [rsp + 0x10], xmm0 | __asm ("movapd xmmword [rsp + 0x10], xmm0"); 0x0042fbec xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x0042fbf0 movupd xmmword [rax], xmm0 | __asm ("movupd xmmword [rax], xmm0"); 0x0042fbf4 mov qword [rax + 0x10], 0 | *((rax + 0x10)) = 0; 0x0042fbfc test byte [rsp + 0x90], 1 | | if ((*((rsp + 0x90)) & 1) != 0) { 0x0042fc04 je 0x42fc13 | 0x0042fc06 mov rdi, qword [rsp + 0xa0] | rdi = *((rsp + 0xa0)); 0x0042fc0e call 0x4046c0 | delete (); | } 0x0042fc13 lea rdi, [rsp + 0x31] | rdi = rsp + 0x31; 0x0042fc18 movzx esi, byte [rsp + 0x30] | esi = *((rsp + 0x30)); 0x0042fc1d test sil, 1 | | if ((sil & 1) != 0) { 0x0042fc21 je 0x42fc2f | 0x0042fc23 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0042fc28 mov rsi, qword [rsp + 0x38] | rsi = *((rsp + 0x38)); 0x0042fc2d jmp 0x42fc32 | | } else { 0x0042fc2f shr rsi, 1 | rsi >>= 1; | } 0x0042fc32 lea r15, [rsp + 0x138] | r15 = rsp + 0x138; 0x0042fc3a mov rdx, r15 | 0x0042fc3d call 0x449f60 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (rdi, rsi, r15); 0x0042fc42 mov qword [rsp + 0xe0], rax | *((rsp + 0xe0)) = rax; 0x0042fc4a mov qword [rsp + 0xe8], rdx | *((rsp + 0xe8)) = rdx; 0x0042fc52 mov qword [rsp + 0xf0], r15 | *((rsp + 0xf0)) = r15; 0x0042fc5a xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x0042fc5e movapd xmmword [rsp + 0x70], xmm0 | __asm ("movapd xmmword [rsp + 0x70], xmm0"); 0x0042fc64 mov qword [rsp + 0x80], 0 | *((rsp + 0x80)) = 0; 0x0042fc70 lea rbx, [rsp + 0x70] | rbx = rsp + 0x70; 0x0042fc75 lea rsi, [rsp + 0xe0] | 0x0042fc7d lea rdx, [rsp + 0x118] | 0x0042fc85 mov rdi, rbx | 0x0042fc88 call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x0042fc8d xor edi, edi | edi = 0; 0x0042fc8f test eax, eax | 0x0042fc91 setne dil | dil = (eax != 0) ? 1 : 0; 0x0042fc95 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042fc9a mov edx, 0x2c2 | edx = 0x2c2; 0x0042fc9f call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042fca4 movzx ecx, byte [rsp + 0x10] | ecx = *((rsp + 0x10)); 0x0042fca9 mov rax, rcx | rax = rcx; 0x0042fcac shr rax, 1 | rax >>= 1; 0x0042fcaf mov rdx, rax | rdx = rax; 0x0042fcb2 mov qword [rsp + 0x130], rcx | *((rsp + 0x130)) = rcx; 0x0042fcba test cl, 1 | | if ((cl & 1) != 0) { 0x0042fcbd je 0x42fcc4 | 0x0042fcbf mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); | } 0x0042fcc4 movzx r13d, byte [rsp + 0x70] | r13d = *((rsp + 0x70)); 0x0042fcca mov rbp, r13 | 0x0042fccd shr rbp, 1 | rbp >>= 1; 0x0042fcd0 and r13b, 1 | r13b &= 1; 0x0042fcd4 mov r14, qword [rsp + 0x78] | r14 = *((rsp + 0x78)); 0x0042fcd9 mov rcx, r14 | rcx = *((rsp + 0x78)); | if (r13b == 0) { 0x0042fcdc cmove rcx, rbp | rcx = rbp; | } 0x0042fce0 cmp rdx, rcx | | if (rdx != rcx) { 0x0042fce3 jne 0x42fd28 | goto label_1; | } 0x0042fce5 test r13b, r13b | 0x0042fce8 mov r12, qword [rsp + 0x80] | r12 = *((rsp + 0x80)); 0x0042fcf0 lea rsi, [rsp + 0x71] | rsi = rsp + 0x71; | if (r13b != 0) { 0x0042fcf5 cmovne rsi, r12 | rsi = r12; | } 0x0042fcf9 test byte [rsp + 0x130], 1 | | if ((*((rsp + 0x130)) & 1) == 0) { 0x0042fd01 je 0x430034 | goto label_3; | } 0x0042fd07 mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); | if ((*((rsp + 0x130)) & 1) == 0) { 0x0042fd0c je 0x43003f | goto label_4; | } | do { 0x0042fd12 test rdx, rdx | | if (rdx != 0) { 0x0042fd15 je 0x42fdb9 | 0x0042fd1b call 0x404900 | eax = bcmp (); 0x0042fd20 test eax, eax | | if (eax == 0) { 0x0042fd22 je 0x42fdb9 | goto label_0; | } | label_1: 0x0042fd28 mov edi, 0x722630 | 0x0042fd2d mov esi, 0x4d1277 | 0x0042fd32 mov edx, 4 | 0x0042fd37 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); 0x0042fd3c mov esi, 0x4d06dd | 0x0042fd41 mov edx, 2 | 0x0042fd46 mov rdi, rax | 0x0042fd49 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042fd4e movzx edx, byte [rsp + 0x70] | edx = *((rsp + 0x70)); 0x0042fd53 test dl, 1 | | if ((dl & 1) != 0) { 0x0042fd56 je 0x42fd67 | 0x0042fd58 mov rsi, qword [rsp + 0x80] | rsi = *((rsp + 0x80)); 0x0042fd60 mov rdx, qword [rsp + 0x78] | rdx = *((rsp + 0x78)); 0x0042fd65 jmp 0x42fd6f | | } else { 0x0042fd67 shr rdx, 1 | rdx >>= 1; 0x0042fd6a lea rsi, [rsp + 0x71] | | } 0x0042fd6f mov rdi, rax | 0x0042fd72 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x71, rdx); 0x0042fd77 mov esi, 0x4f01d0 | 0x0042fd7c mov edx, 1 | 0x0042fd81 mov rdi, rax | 0x0042fd84 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042fd89 mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0042fd8e mov edi, 1 | edi = 1; 0x0042fd93 mov edx, 0x2c3 | edx = 0x2c3; 0x0042fd98 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042fd9d movzx ebp, byte [rsp + 0x70] | ebp = *((rsp + 0x70)); 0x0042fda2 mov r14, qword [rsp + 0x78] | r14 = *((rsp + 0x78)); 0x0042fda7 mov r12, qword [rsp + 0x80] | r12 = *((rsp + 0x80)); 0x0042fdaf mov r13d, ebp | r13d = ebp; 0x0042fdb2 and r13b, 1 | r13b &= 1; 0x0042fdb6 shr rbp, 1 | rbp >>= 1; | } | label_0: 0x0042fdb9 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x0042fdc3 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x0042fdc8 mov qword [rsp + 0x60], r15 | *((rsp + 0x60)) = r15; 0x0042fdcd inc rbx | rbx++; 0x0042fdd0 test r13b, r13b | | if (r13b != 0) { 0x0042fdd3 cmovne rbx, r12 | rbx = r12; | } | if (r13b != 0) { 0x0042fdd7 cmovne rbp, r14 | | } 0x0042fddb lea rdi, [rsp + 0x108] | 0x0042fde3 call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x108); 0x0042fde8 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fdf0 call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x0042fdf5 mov qword [rsp + 0x90], 0x4d55d0 | *((rsp + 0x90)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0042fe01 mov qword [rsp + 0xd0], rbx | *((rsp + 0xd0)) = rbx; 0x0042fe09 mov qword [rsp + 0xd8], rbp | *((rsp + 0xd8)) = rbp; 0x0042fe11 add rbp, rbx | rbp += rbx; 0x0042fe14 mov qword [rsp + 0xa0], rbx | *((rsp + 0xa0)) = rbx; 0x0042fe1c mov qword [rsp + 0xa8], rbx | *((rsp + 0xa8)) = rbx; 0x0042fe24 mov qword [rsp + 0xb0], rbp | *((rsp + 0xb0)) = rbp; 0x0042fe2c lea rdi, [rsp + 0x50] | 0x0042fe31 lea rdx, [rsp + 0x90] | 0x0042fe39 lea rcx, [rsp + 0x108] | 0x0042fe41 xor esi, esi | 0x0042fe43 call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x50, 0, rsp + 0x90, rsp + 0x108, r8, r9); 0x0042fe48 mov ebx, eax | ebx = eax; 0x0042fe4a lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0042fe52 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0042fe57 lea rdi, [rsp + 0x108] | rdi = rsp + 0x108; 0x0042fe5f call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0042fe64 test ebx, ebx | 0x0042fe66 lea rbp, [rsp + 0x31] | rbp = rsp + 0x31; | if (ebx != 0) { 0x0042fe6b je 0x42fec3 | 0x0042fe6d mov edi, 0x722630 | 0x0042fe72 mov esi, 0x4cfe77 | 0x0042fe77 mov edx, 6 | 0x0042fe7c 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); 0x0042fe81 mov esi, 0x4d06dd | 0x0042fe86 mov edx, 2 | 0x0042fe8b mov rdi, rax | 0x0042fe8e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042fe93 mov rdi, rax | rdi = rax; 0x0042fe96 mov esi, ebx | esi = ebx; 0x0042fe98 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0042fe9d mov esi, 0x4f01d0 | 0x0042fea2 mov edx, 1 | 0x0042fea7 mov rdi, rax | 0x0042feaa call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042feaf mov esi, 0x4cfe72 | esi = "0 == result"; 0x0042feb4 mov edi, 1 | edi = 1; 0x0042feb9 mov edx, 0x2c7 | edx = 0x2c7; 0x0042febe call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0042fec3 movzx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); 0x0042fec8 mov ecx, 0x4030 | ecx = 0x4030; 0x0042fecd bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x0042fed1 jb 0x42ff3b | 0x0042fed3 mov edi, 0x722630 | 0x0042fed8 mov esi, 0x4d0e9c | 0x0042fedd mov edx, 0x11 | 0x0042fee2 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); 0x0042fee7 mov esi, 0x4d06dd | 0x0042feec mov edx, 2 | 0x0042fef1 mov rdi, rax | 0x0042fef4 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042fef9 mov cl, byte [rsp + 0x5e] | cl = *((rsp + 0x5e)); 0x0042fefd mov esi, 0x4030 | esi = 0x4030; 0x0042ff02 shr rsi, cl | rsi >>= cl; 0x0042ff05 and esi, 1 | esi &= 1; 0x0042ff08 mov rdi, rax | rdi = rax; 0x0042ff0b call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0042ff10 mov esi, 0x4f01d0 | 0x0042ff15 mov edx, 1 | 0x0042ff1a mov rdi, rax | 0x0042ff1d call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0042ff22 mov esi, 0x4d0e9c | esi = "other->isString()"; 0x0042ff27 mov edi, 1 | edi = 1; 0x0042ff2c mov edx, 0x2c8 | edx = 0x2c8; 0x0042ff31 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0042ff36 movzx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); | } 0x0042ff3b movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x0042ff40 test dl, 1 | | if ((dl & 1) != 0) { 0x0042ff43 je 0x42ff51 | 0x0042ff45 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0042ff4a mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x0042ff4f jmp 0x42ff57 | | } else { 0x0042ff51 shr rdx, 1 | rdx >>= 1; 0x0042ff54 mov rdi, rbp | rdi = rbp; | } 0x0042ff57 cwde | eax = (int32_t) ax; 0x0042ff58 cmp eax, 0xe | | if (eax != 0xe) { 0x0042ff5b je 0x42ff62 | 0x0042ff5d cmp eax, 5 | | if (eax != 5) { 0x0042ff60 jne 0x42ff73 | goto label_5; | } | } 0x0042ff62 mov rsi, qword [rsp + 0x50] | rsi = *((rsp + 0x50)); 0x0042ff67 movsxd rax, dword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x0042ff6c cmp rdx, rax | | if (rdx != rax) { 0x0042ff6f je 0x42ff83 | 0x0042ff71 jmp 0x42ff99 | goto label_6; | label_5: 0x0042ff73 lea rsi, [rsp + 0x51] | rsi = rsp + 0x51; 0x0042ff78 movsx rax, byte [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0042ff7e cmp rdx, rax | | if (rdx != rax) { 0x0042ff81 jne 0x42ff99 | goto label_6; | } | } 0x0042ff83 test rdx, rdx | | if (rdx == 0) { 0x0042ff86 je 0x4300a4 | goto label_7; | } 0x0042ff8c call 0x404900 | eax = bcmp (); 0x0042ff91 test eax, eax | | if (eax == 0) { 0x0042ff93 je 0x4300a4 | goto label_7; | } | label_6: 0x0042ff99 mov edi, 0x722630 | 0x0042ff9e mov esi, 0x4d0eae | 0x0042ffa3 mov edx, 0xa | 0x0042ffa8 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); 0x0042ffad mov esi, 0x4d06dd | 0x0042ffb2 mov edx, 2 | 0x0042ffb7 mov rdi, rax | 0x0042ffba call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0042ffbf movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x0042ffc4 test dl, 1 | | if ((dl & 1) != 0) { 0x0042ffc7 je 0x42ffd5 | 0x0042ffc9 mov rbp, qword [rsp + 0x40] | rbp = *((rsp + 0x40)); 0x0042ffce mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x0042ffd3 jmp 0x42ffd8 | | } else { 0x0042ffd5 shr rdx, 1 | rdx >>= 1; | } 0x0042ffd8 mov rdi, rax | 0x0042ffdb mov rsi, rbp | 0x0042ffde call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rbp, rdx); 0x0042ffe3 mov esi, 0x4f0293 | 0x0042ffe8 mov edx, 1 | 0x0042ffed mov rdi, rax | 0x0042fff0 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x0042fff5 mov esi, 0x4d0ec7 | 0x0042fffa mov edx, 0x12 | 0x0042ffff mov rdi, rax | 0x00430002 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0ec7, 0x12); 0x00430007 mov esi, 0x4d06dd | 0x0043000c mov edx, 2 | 0x00430011 mov rdi, rax | 0x00430014 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430019 movsx ecx, word [rsp + 0x5e] | ecx = *((rsp + 0x5e)); 0x0043001e cmp ecx, 0xe | | if (ecx != 0xe) { 0x00430021 je 0x430028 | 0x00430023 cmp ecx, 5 | | if (ecx != 5) { 0x00430026 jne 0x43006b | goto label_8; | } | } 0x00430028 mov rsi, qword [rsp + 0x50] | rsi = *((rsp + 0x50)); 0x0043002d movsxd rdx, dword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x00430032 jmp 0x430076 | goto label_9; | label_3: 0x00430034 lea rdi, [rsp + 0x11] | rdi = rsp + 0x11; 0x00430039 jne 0x42fd12 | | } while (ecx != 5); | label_4: 0x0043003f test rdx, rdx | | if (rdx == 0) { 0x00430042 je 0x42fdb9 | goto label_0; | } 0x00430048 xor ecx, ecx | ecx = 0; 0x0043004a nop word [rax + rax] | | label_2: 0x00430050 movzx edx, byte [rsp + rcx + 0x11] | edx = *((rsp + rcx + 0x11)); 0x00430055 cmp dl, byte [rsi + rcx] | | if (dl != *((rsi + rcx))) { 0x00430058 jne 0x42fd28 | goto label_1; | } 0x0043005e inc rcx | rcx++; 0x00430061 cmp rax, rcx | | if (rax != rcx) { 0x00430064 jne 0x430050 | goto label_2; | } 0x00430066 jmp 0x42fdb9 | goto label_0; | label_8: 0x0043006b lea rsi, [rsp + 0x51] | 0x00430070 movsx rdx, byte [rsp + 0x50] | rdx = *((rsp + 0x50)); | label_9: 0x00430076 mov rdi, rax | 0x00430079 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x51, rdx); 0x0043007e mov esi, 0x4f01d0 | 0x00430083 mov edx, 1 | 0x00430088 mov rdi, rax | 0x0043008b call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430090 mov esi, 0x4d0eb9 | esi = "EXP_STRING == other->theString()"; 0x00430095 mov edi, 1 | edi = 1; 0x0043009a mov edx, 0x2cb | edx = 0x2cb; 0x0043009f call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_7: 0x004300a4 mov rsi, qword [rsp + 0x60] | 0x004300a9 lea rdi, [rsp + 0x50] | 0x004300ae call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x50, *((rsp + 0x60))); 0x004300b3 test byte [rsp + 0x70], 1 | | if ((*((rsp + 0x70)) & 1) != 0) { 0x004300b8 je 0x4300c7 | 0x004300ba mov rdi, qword [rsp + 0x80] | rdi = *((rsp + 0x80)); 0x004300c2 call 0x4046c0 | delete (); | } 0x004300c7 mov rsi, qword [rsp + 0xf0] | 0x004300cf lea rdi, [rsp + 0xe0] | 0x004300d7 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xe0, *((rsp + 0xf0))); 0x004300dc test byte [rsp + 0x130], 1 | | if ((*((rsp + 0x130)) & 1) != 0) { 0x004300e4 jne 0x4300fb | goto label_10; | } 0x004300e6 test byte [rsp + 0x30], 1 | | if ((*((rsp + 0x30)) & 1) != 0) { 0x004300eb jne 0x43010c | goto label_11; | } | do { 0x004300ed cmp byte [rip + 0x2f25ee], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004300f4 jne 0x430123 | goto label_12; | } 0x004300f6 jmp 0x4301f7 | goto label_13; | label_10: 0x004300fb mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); 0x00430100 call 0x4046c0 | delete (); 0x00430105 test byte [rsp + 0x30], 1 | 0x0043010a je 0x4300ed | | } while ((*((rsp + 0x30)) & 1) == 0); | label_11: 0x0043010c mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x00430111 call 0x4046c0 | delete (); 0x00430116 cmp byte [rip + 0x2f25c5], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0043011d je 0x4301f7 | | label_12: 0x00430123 mov rax, qword [rip + 0x2f2506] | rax = std::__1::cout; 0x0043012a mov esi, 0x722630 | esi = std::__1::cout; 0x0043012f add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x00430133 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043013b call 0x404a70 | std::_1::ios_base::getloc()const (); 0x00430140 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430148 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0043014d call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00430152 mov rcx, qword [rax] | rcx = *(rax); 0x00430155 mov rdi, rax | rdi = rax; 0x00430158 mov esi, 0xa | esi = 0xa; 0x0043015d call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00430160 mov ebx, eax | ebx = eax; 0x00430162 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043016a call 0x404ba0 | std::_1::locale::~locale() (); 0x0043016f movsx esi, bl | esi = (int32_t) bl; 0x00430172 mov edi, 0x722630 | edi = std::__1::cout; 0x00430177 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0043017c mov edi, 0x722630 | edi = std::__1::cout; 0x00430181 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x00430186 mov edi, 0x722630 | 0x0043018b mov esi, 0x4d0eda | 0x00430190 mov edx, 0x2e | 0x00430195 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); 0x0043019a mov rbx, rax | rbx = rax; 0x0043019d mov rax, qword [rax] | rax = *(rax); 0x004301a0 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x004301a4 add rsi, rbx | rsi += rbx; 0x004301a7 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004301af call 0x404a70 | std::_1::ios_base::getloc()const (); 0x004301b4 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004301bc mov esi, 0x722550 | esi = std::__1::ctype::id; 0x004301c1 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x004301c6 mov rcx, qword [rax] | rcx = *(rax); 0x004301c9 mov rdi, rax | rdi = rax; 0x004301cc mov esi, 0xa | esi = 0xa; 0x004301d1 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x004301d4 mov ebp, eax | 0x004301d6 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004301de call 0x404ba0 | std::_1::locale::~locale() (); 0x004301e3 movsx esi, bpl | esi = (int32_t) bpl; 0x004301e7 mov rdi, rbx | rdi = rbx; 0x004301ea call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x004301ef mov rdi, rbx | rdi = rbx; 0x004301f2 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } | label_13: 0x004301f7 mov byte [rsp + 0x30], 0x1e | *((rsp + 0x30)) = 0x1e; 0x004301fc movabs rax, 0x200c2008205c2022 | rax = 0x200c2008205c2022; 0x00430206 mov qword [rsp + 0x31], rax | *((rsp + 0x31)) = rax; 0x0043020b movabs rax, 0x12009200d200a20 | rax = 0x12009200d200a20; 0x00430215 mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x0043021a mov byte [rsp + 0x40], 0 | *((rsp + 0x40)) = 0; 0x0043021f mov edi, 0x20 | edi = 0x20; 0x00430224 call 0x4045f0 | rax = operatornew(unsigned long) (); 0x00430229 mov r12, rax | r12 = rax; 0x0043022c lea r15, [rsp + 0x31] | r15 = rsp + 0x31; 0x00430231 movups xmm0, xmmword [rip + 0xa0cee] | __asm ("movups xmm0, xmmword [0x004d0f26]"); 0x00430238 movups xmmword [rax + 0xd], xmm0 | __asm ("movups xmmword [rax + 0xd], xmm0"); 0x0043023c movdqu xmm0, xmmword [rip + 0xa0cd5] | __asm ("movdqu xmm0, xmmword [str._____b__f__n__r__t_u0001_]"); 0x00430244 movdqu xmmword [rax], xmm0 | __asm ("movdqu xmmword [rax], xmm0"); 0x00430248 mov byte [rax + 0x1d], 0 | *((rax + 0x1d)) = 0; 0x0043024c lea r14, [rsp + 0x138] | r14 = rsp + 0x138; 0x00430254 mov esi, 0xf | 0x00430259 mov rdi, r15 | 0x0043025c mov rdx, r14 | 0x0043025f call 0x449f60 | rax = BloombergLP::bdld::Datum::copyString(char const*,unsigned long,BloombergLP::bslma::Allocator*) (r15, 0xf, r14); 0x00430264 mov qword [rsp + 0xe0], rax | *((rsp + 0xe0)) = rax; 0x0043026c mov qword [rsp + 0xe8], rdx | *((rsp + 0xe8)) = rdx; 0x00430274 mov qword [rsp + 0xf0], r14 | *((rsp + 0xf0)) = r14; 0x0043027c pxor xmm0, xmm0 | xmm0 = 0; 0x00430280 movdqa xmmword [rsp + 0x10], xmm0 | __asm ("movdqa xmmword [rsp + 0x10], xmm0"); 0x00430286 mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0043028f lea rbx, [rsp + 0x10] | rbx = rsp + 0x10; 0x00430294 lea rsi, [rsp + 0xe0] | 0x0043029c lea rdx, [rsp + 0x118] | 0x004302a4 mov rdi, rbx | 0x004302a7 call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (rbx, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x004302ac xor edi, edi | edi = 0; 0x004302ae test eax, eax | 0x004302b0 setne dil | dil = (eax != 0) ? 1 : 0; 0x004302b4 mov esi, 0x4cfe72 | esi = "0 == result"; 0x004302b9 mov edx, 0x2d9 | edx = 0x2d9; 0x004302be call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x004302c3 movzx ecx, byte [rsp + 0x10] | ecx = *((rsp + 0x10)); 0x004302c8 mov rbp, rcx | 0x004302cb shr rbp, 1 | rbp >>= 1; 0x004302ce and cl, 1 | cl &= 1; 0x004302d1 mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004302d6 mov rdx, rax | rdx = *((rsp + 0x18)); | if (cl == 0) { 0x004302d9 cmove rdx, rbp | rdx = rbp; | } 0x004302dd cmp rdx, 0x1d | | if (rdx == 0x1d) { 0x004302e1 jne 0x430320 | 0x004302e3 test cl, cl | 0x004302e5 mov rdx, qword [rsp + 0x20] | rdx = *((rsp + 0x20)); 0x004302ea lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; | if (cl != 0) { 0x004302ef cmovne rsi, rdx | rsi = rdx; | } 0x004302f3 movdqu xmm0, xmmword [r12] | __asm ("movdqu xmm0, xmmword [r12]"); 0x004302f9 movdqu xmm1, xmmword [r12 + 0xd] | __asm ("movdqu xmm1, xmmword [r12 + 0xd]"); 0x00430300 movdqu xmm2, xmmword [rsi] | __asm ("movdqu xmm2, xmmword [rsi]"); 0x00430304 pxor xmm2, xmm0 | xmm2 ^= xmm0; 0x00430308 movdqu xmm0, xmmword [rsi + 0xd] | __asm ("movdqu xmm0, xmmword [rsi + 0xd]"); 0x0043030d pxor xmm0, xmm1 | xmm0 ^= xmm1; 0x00430311 por xmm0, xmm2 | xmm0 |= xmm2; 0x00430315 ptest xmm0, xmm0 | __asm ("ptest xmm0, xmm0"); | if (cl == 0) { 0x0043031a je 0x4303a9 | goto label_14; | } | } 0x00430320 mov edi, 0x722630 | 0x00430325 mov esi, 0x4d1277 | 0x0043032a mov edx, 4 | 0x0043032f 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); 0x00430334 mov esi, 0x4d06dd | 0x00430339 mov edx, 2 | 0x0043033e mov rdi, rax | 0x00430341 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430346 movzx edx, byte [rsp + 0x10] | edx = *((rsp + 0x10)); 0x0043034b test dl, 1 | | if ((dl & 1) != 0) { 0x0043034e je 0x43035c | 0x00430350 mov rsi, qword [rsp + 0x20] | rsi = *((rsp + 0x20)); 0x00430355 mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x0043035a jmp 0x430364 | | } else { 0x0043035c shr rdx, 1 | rdx >>= 1; 0x0043035f lea rsi, [rsp + 0x11] | | } 0x00430364 mov rdi, rax | 0x00430367 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x0043036c mov esi, 0x4f01d0 | 0x00430371 mov edx, 1 | 0x00430376 mov rdi, rax | 0x00430379 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043037e mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x00430383 mov edi, 1 | edi = 1; 0x00430388 mov edx, 0x2da | edx = 0x2da; 0x0043038d call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00430392 movzx ebp, byte [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x00430397 mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x0043039c mov rdx, qword [rsp + 0x20] | rdx = *((rsp + 0x20)); 0x004303a1 mov ecx, ebp | ecx = ebp; 0x004303a3 and cl, 1 | cl &= 1; 0x004303a6 shr rbp, 1 | rbp >>= 1; | label_14: 0x004303a9 movabs rsi, 0x2000000000000 | rsi = 0x2000000000000; 0x004303b3 mov qword [rsp + 0x58], rsi | *((rsp + 0x58)) = rsi; 0x004303b8 mov qword [rsp + 0x60], r14 | *((rsp + 0x60)) = r14; 0x004303bd inc rbx | rbx++; 0x004303c0 test cl, cl | | if (cl != 0) { 0x004303c2 cmovne rbx, rdx | rbx = rdx; | } | if (cl != 0) { 0x004303c6 cmovne rbp, rax | | } 0x004303ca lea rdi, [rsp + 0x70] | 0x004303cf call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x70); 0x004303d4 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004303dc call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x004303e1 mov qword [rsp + 0x90], 0x4d55d0 | *((rsp + 0x90)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x004303ed mov qword [rsp + 0xd0], rbx | *((rsp + 0xd0)) = rbx; 0x004303f5 mov qword [rsp + 0xd8], rbp | *((rsp + 0xd8)) = rbp; 0x004303fd add rbp, rbx | rbp += rbx; 0x00430400 mov qword [rsp + 0xa0], rbx | *((rsp + 0xa0)) = rbx; 0x00430408 mov qword [rsp + 0xa8], rbx | *((rsp + 0xa8)) = rbx; 0x00430410 mov qword [rsp + 0xb0], rbp | *((rsp + 0xb0)) = rbp; 0x00430418 lea rdi, [rsp + 0x50] | 0x0043041d lea rdx, [rsp + 0x90] | 0x00430425 lea rcx, [rsp + 0x70] | 0x0043042a xor esi, esi | 0x0043042c call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x50, 0, rsp + 0x90, rsp + 0x70, r8, r9); 0x00430431 mov ebx, eax | ebx = eax; 0x00430433 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043043b call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00430440 lea rdi, [rsp + 0x70] | rdi = rsp + 0x70; 0x00430445 call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x0043044a test ebx, ebx | | if (ebx != 0) { 0x0043044c je 0x4304a4 | 0x0043044e mov edi, 0x722630 | 0x00430453 mov esi, 0x4cfe77 | 0x00430458 mov edx, 6 | 0x0043045d 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); 0x00430462 mov esi, 0x4d06dd | 0x00430467 mov edx, 2 | 0x0043046c mov rdi, rax | 0x0043046f call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430474 mov rdi, rax | rdi = rax; 0x00430477 mov esi, ebx | esi = ebx; 0x00430479 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0043047e mov esi, 0x4f01d0 | 0x00430483 mov edx, 1 | 0x00430488 mov rdi, rax | 0x0043048b call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430490 mov esi, 0x4cfe72 | esi = "0 == result"; 0x00430495 mov edi, 1 | edi = 1; 0x0043049a mov edx, 0x2de | edx = 0x2de; 0x0043049f call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x004304a4 movzx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); 0x004304a9 mov ecx, 0x4030 | ecx = 0x4030; 0x004304ae bt rcx, rax | | if (((rcx >> rax) & 1) >= 0) { 0x004304b2 jb 0x43051c | 0x004304b4 mov edi, 0x722630 | 0x004304b9 mov esi, 0x4d0e9c | 0x004304be mov edx, 0x11 | 0x004304c3 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); 0x004304c8 mov esi, 0x4d06dd | 0x004304cd mov edx, 2 | 0x004304d2 mov rdi, rax | 0x004304d5 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004304da mov cl, byte [rsp + 0x5e] | cl = *((rsp + 0x5e)); 0x004304de mov esi, 0x4030 | esi = 0x4030; 0x004304e3 shr rsi, cl | rsi >>= cl; 0x004304e6 and esi, 1 | esi &= 1; 0x004304e9 mov rdi, rax | rdi = rax; 0x004304ec call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x004304f1 mov esi, 0x4f01d0 | 0x004304f6 mov edx, 1 | 0x004304fb mov rdi, rax | 0x004304fe call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430503 mov esi, 0x4d0e9c | esi = "other->isString()"; 0x00430508 mov edi, 1 | edi = 1; 0x0043050d mov edx, 0x2df | edx = 0x2df; 0x00430512 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00430517 movzx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); | } 0x0043051c movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x00430521 test dl, 1 | | if ((dl & 1) != 0) { 0x00430524 je 0x430532 | 0x00430526 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0043052b mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x00430530 jmp 0x430538 | | } else { 0x00430532 shr rdx, 1 | rdx >>= 1; 0x00430535 mov rdi, r15 | rdi = r15; | } 0x00430538 cwde | eax = (int32_t) ax; 0x00430539 cmp eax, 0xe | | if (eax != 0xe) { 0x0043053c je 0x430543 | 0x0043053e cmp eax, 5 | | if (eax != 5) { 0x00430541 jne 0x430554 | goto label_15; | } | } 0x00430543 mov rsi, qword [rsp + 0x50] | rsi = *((rsp + 0x50)); 0x00430548 movsxd rax, dword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x0043054d cmp rdx, rax | | if (rdx != rax) { 0x00430550 je 0x430564 | 0x00430552 jmp 0x43057a | goto label_16; | label_15: 0x00430554 lea rsi, [rsp + 0x51] | rsi = rsp + 0x51; 0x00430559 movsx rax, byte [rsp + 0x50] | rax = *((rsp + 0x50)); 0x0043055f cmp rdx, rax | | if (rdx != rax) { 0x00430562 jne 0x43057a | goto label_16; | } | } 0x00430564 test rdx, rdx | | if (rdx != 0) { 0x00430567 je 0x43064e | 0x0043056d call 0x404900 | eax = bcmp (); 0x00430572 test eax, eax | | if (eax == 0) { 0x00430574 je 0x43064e | goto label_17; | } | label_16: 0x0043057a mov edi, 0x722630 | 0x0043057f mov esi, 0x4d0eae | 0x00430584 mov edx, 0xa | 0x00430589 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); 0x0043058e mov esi, 0x4d06dd | 0x00430593 mov edx, 2 | 0x00430598 mov rdi, rax | 0x0043059b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004305a0 movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x004305a5 test dl, 1 | | if ((dl & 1) != 0) { 0x004305a8 je 0x4305b6 | 0x004305aa mov r15, qword [rsp + 0x40] | r15 = *((rsp + 0x40)); 0x004305af mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x004305b4 jmp 0x4305b9 | | } else { 0x004305b6 shr rdx, 1 | rdx >>= 1; | } 0x004305b9 mov rdi, rax | 0x004305bc mov rsi, r15 | 0x004305bf call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, r15, rdx); 0x004305c4 mov esi, 0x4f0293 | 0x004305c9 mov edx, 1 | 0x004305ce mov rdi, rax | 0x004305d1 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x004305d6 mov esi, 0x4d0ec7 | 0x004305db mov edx, 0x12 | 0x004305e0 mov rdi, rax | 0x004305e3 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0ec7, 0x12); 0x004305e8 mov esi, 0x4d06dd | 0x004305ed mov edx, 2 | 0x004305f2 mov rdi, rax | 0x004305f5 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004305fa movsx ecx, word [rsp + 0x5e] | ecx = *((rsp + 0x5e)); 0x004305ff cmp ecx, 0xe | | if (ecx != 0xe) { 0x00430602 je 0x430609 | 0x00430604 cmp ecx, 5 | | if (ecx != 5) { 0x00430607 jne 0x430615 | goto label_18; | } | } 0x00430609 mov rsi, qword [rsp + 0x50] | rsi = *((rsp + 0x50)); 0x0043060e movsxd rdx, dword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x00430613 jmp 0x430620 | goto label_19; | label_18: 0x00430615 lea rsi, [rsp + 0x51] | 0x0043061a movsx rdx, byte [rsp + 0x50] | rdx = *((rsp + 0x50)); | label_19: 0x00430620 mov rdi, rax | 0x00430623 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x51, rdx); 0x00430628 mov esi, 0x4f01d0 | 0x0043062d mov edx, 1 | 0x00430632 mov rdi, rax | 0x00430635 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043063a mov esi, 0x4d0eb9 | esi = "EXP_STRING == other->theString()"; 0x0043063f mov edi, 1 | edi = 1; 0x00430644 mov edx, 0x2e2 | edx = 0x2e2; 0x00430649 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_17: 0x0043064e mov rsi, qword [rsp + 0x60] | 0x00430653 lea rdi, [rsp + 0x50] | 0x00430658 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x50, *((rsp + 0x60))); 0x0043065d test byte [rsp + 0x10], 1 | | if ((*((rsp + 0x10)) & 1) != 0) { 0x00430662 je 0x43066e | 0x00430664 mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); 0x00430669 call 0x4046c0 | delete (); | } 0x0043066e mov rsi, qword [rsp + 0xf0] | 0x00430676 lea rdi, [rsp + 0xe0] | 0x0043067e call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xe0, *((rsp + 0xf0))); 0x00430683 mov rdi, r12 | rdi = r12; 0x00430686 call 0x4046c0 | delete (); 0x0043068b test byte [rsp + 0x30], 1 | | if ((*((rsp + 0x30)) & 1) != 0) { 0x00430690 je 0x43069c | 0x00430692 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x00430697 call 0x4046c0 | delete (); | } 0x0043069c cmp byte [rip + 0x2f203e], 0 | | if (*(obj.veryVerbose) != 0) { 0x004306a3 je 0x43077d | 0x004306a9 mov rax, qword [rip + 0x2f1f80] | rax = std::__1::cout; 0x004306b0 mov esi, 0x722630 | esi = std::__1::cout; 0x004306b5 add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x004306b9 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004306c1 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x004306c6 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004306ce mov esi, 0x722550 | esi = std::__1::ctype::id; 0x004306d3 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x004306d8 mov rcx, qword [rax] | rcx = *(rax); 0x004306db mov rdi, rax | rdi = rax; 0x004306de mov esi, 0xa | esi = 0xa; 0x004306e3 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x004306e6 mov ebx, eax | ebx = eax; 0x004306e8 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004306f0 call 0x404ba0 | std::_1::locale::~locale() (); 0x004306f5 movsx esi, bl | esi = (int32_t) bl; 0x004306f8 mov edi, 0x722630 | edi = std::__1::cout; 0x004306fd call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x00430702 mov edi, 0x722630 | edi = std::__1::cout; 0x00430707 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x0043070c mov edi, 0x722630 | 0x00430711 mov esi, 0x4d0f37 | 0x00430716 mov edx, 0x22 | 0x0043071b 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); 0x00430720 mov rbx, rax | rbx = rax; 0x00430723 mov rax, qword [rax] | rax = *(rax); 0x00430726 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x0043072a add rsi, rbx | rsi += rbx; 0x0043072d lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430735 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0043073a lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430742 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x00430747 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0043074c mov rcx, qword [rax] | rcx = *(rax); 0x0043074f mov rdi, rax | rdi = rax; 0x00430752 mov esi, 0xa | esi = 0xa; 0x00430757 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0043075a mov ebp, eax | 0x0043075c lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430764 call 0x404ba0 | std::_1::locale::~locale() (); 0x00430769 movsx esi, bpl | esi = (int32_t) bpl; 0x0043076d mov rdi, rbx | rdi = rbx; 0x00430770 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x00430775 mov rdi, rbx | rdi = rbx; 0x00430778 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x0043077d mov byte [rsp + 0x30], 6 | *((rsp + 0x30)) = 6; 0x00430782 mov dword [rsp + 0x31], 0x333231 | *((rsp + 0x31)) = 0x333231; 0x0043078a movabs rax, 0xa00000000007b | rax = 0xa00000000007b; 0x00430794 mov qword [rsp + 0xe8], rax | *((rsp + 0xe8)) = rax; 0x0043079c mov qword [rsp + 0xf0], r14 | *((rsp + 0xf0)) = r14; 0x004307a4 pxor xmm0, xmm0 | xmm0 = 0; 0x004307a8 movdqa xmmword [rsp + 0x10], xmm0 | __asm ("movdqa xmmword [rsp + 0x10], xmm0"); 0x004307ae mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x004307b7 lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x004307bc lea rsi, [rsp + 0xe0] | 0x004307c4 lea rdx, [rsp + 0x118] | 0x004307cc mov rdi, r12 | 0x004307cf call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r12, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x004307d4 mov ebp, eax | 0x004307d6 cmp eax, 1 | | if (eax != 1) { 0x004307d9 je 0x430831 | 0x004307db mov edi, 0x722630 | 0x004307e0 mov esi, 0x4cfe77 | 0x004307e5 mov edx, 6 | 0x004307ea 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); 0x004307ef mov esi, 0x4d06dd | 0x004307f4 mov edx, 2 | 0x004307f9 mov rdi, rax | 0x004307fc call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430801 mov rdi, rax | rdi = rax; 0x00430804 mov esi, ebp | esi = ebp; 0x00430806 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0043080b mov esi, 0x4f01d0 | 0x00430810 mov edx, 1 | 0x00430815 mov rdi, rax | 0x00430818 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043081d mov esi, 0x4d0f5a | esi = "1 == result"; 0x00430822 mov edi, 1 | edi = 1; 0x00430827 mov edx, 0x2f0 | edx = 0x2f0; 0x0043082c call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00430831 movzx ecx, byte [rsp + 0x30] | ecx = *((rsp + 0x30)); 0x00430836 mov rax, rcx | rax = rcx; 0x00430839 shr rax, 1 | rax >>= 1; 0x0043083c mov rdx, rax | rdx = rax; 0x0043083f test cl, 1 | | if ((cl & 1) != 0) { 0x00430842 je 0x430849 | 0x00430844 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); | } 0x00430849 lea r15, [rsp + 0x31] | r15 = rsp + 0x31; 0x0043084e movzx ebx, byte [rsp + 0x10] | ebx = *((rsp + 0x10)); 0x00430853 mov rbp, rbx | 0x00430856 shr rbp, 1 | rbp >>= 1; 0x00430859 and bl, 1 | bl &= 1; 0x0043085c mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x00430861 mov rsi, r13 | rsi = *((rsp + 0x18)); | if (bl == 0) { 0x00430864 cmove rsi, rbp | rsi = rbp; | } 0x00430868 cmp rdx, rsi | | if (rdx != rsi) { 0x0043086b jne 0x4308cd | goto label_20; | } 0x0043086d test bl, bl | 0x0043086f mov r14, qword [rsp + 0x20] | r14 = *((rsp + 0x20)); 0x00430874 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; | if (bl != 0) { 0x00430879 cmovne rsi, r14 | rsi = r14; | } 0x0043087d mov rdi, r15 | rdi = r15; 0x00430880 test cl, 1 | | if ((cl & 1) != 0) { 0x00430883 je 0x43088a | 0x00430885 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } | if ((cl & 1) != 0) { 0x0043088a jne 0x4308b7 | goto label_21; | } 0x0043088c test rdx, rdx | | if (rdx == 0) { 0x0043088f je 0x4309b0 | goto label_22; | } 0x00430895 xor ecx, ecx | ecx = 0; 0x00430897 nop word [rax + rax] | | do { 0x004308a0 movzx edx, byte [rsp + rcx + 0x31] | edx = *((rsp + rcx + 0x31)); 0x004308a5 cmp dl, byte [rsi + rcx] | | if (dl != *((rsi + rcx))) { 0x004308a8 jne 0x4308cd | goto label_20; | } 0x004308aa inc rcx | rcx++; 0x004308ad cmp rax, rcx | 0x004308b0 jne 0x4308a0 | | } while (rax != rcx); 0x004308b2 jmp 0x4309b0 | goto label_22; | label_21: 0x004308b7 test rdx, rdx | | if (rdx != 0) { 0x004308ba je 0x4309b0 | 0x004308c0 call 0x404900 | eax = bcmp (); 0x004308c5 test eax, eax | | if (eax == 0) { 0x004308c7 je 0x4309b0 | goto label_22; | } | label_20: 0x004308cd mov edi, 0x722630 | 0x004308d2 mov esi, 0x4d0f66 | 0x004308d7 mov edx, 8 | 0x004308dc 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); 0x004308e1 mov esi, 0x4d06dd | 0x004308e6 mov edx, 2 | 0x004308eb mov rdi, rax | 0x004308ee call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004308f3 movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x004308f8 test dl, 1 | | if ((dl & 1) != 0) { 0x004308fb je 0x430909 | 0x004308fd mov r15, qword [rsp + 0x40] | r15 = *((rsp + 0x40)); 0x00430902 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x00430907 jmp 0x43090c | | } else { 0x00430909 shr rdx, 1 | rdx >>= 1; | } 0x0043090c mov rdi, rax | 0x0043090f mov rsi, r15 | 0x00430912 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, r15, rdx); 0x00430917 mov esi, 0x4f0293 | 0x0043091c mov edx, 1 | 0x00430921 mov rdi, rax | 0x00430924 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00430929 mov esi, 0x4d1277 | 0x0043092e mov edx, 4 | 0x00430933 mov rdi, rax | 0x00430936 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1277, 4); 0x0043093b mov esi, 0x4d06dd | 0x00430940 mov edx, 2 | 0x00430945 mov rdi, rax | 0x00430948 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0043094d movzx edx, byte [rsp + 0x10] | edx = *((rsp + 0x10)); 0x00430952 test dl, 1 | | if ((dl & 1) != 0) { 0x00430955 je 0x430963 | 0x00430957 mov rsi, qword [rsp + 0x20] | rsi = *((rsp + 0x20)); 0x0043095c mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x00430961 jmp 0x43096b | | } else { 0x00430963 shr rdx, 1 | rdx >>= 1; 0x00430966 lea rsi, [rsp + 0x11] | | } 0x0043096b mov rdi, rax | 0x0043096e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x00430973 mov esi, 0x4f01d0 | 0x00430978 mov edx, 1 | 0x0043097d mov rdi, rax | 0x00430980 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430985 mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x0043098a mov edi, 1 | edi = 1; 0x0043098f mov edx, 0x2f1 | edx = 0x2f1; 0x00430994 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00430999 movzx ebp, byte [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x0043099e mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x004309a3 mov r14, qword [rsp + 0x20] | r14 = *((rsp + 0x20)); 0x004309a8 mov ebx, ebp | ebx = ebp; 0x004309aa and bl, 1 | bl &= 1; 0x004309ad shr rbp, 1 | rbp >>= 1; | } | label_22: 0x004309b0 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x004309ba mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x004309bf lea rax, [rsp + 0x138] | rax = rsp + 0x138; 0x004309c7 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004309cc inc r12 | r12++; 0x004309cf test bl, bl | | if (bl != 0) { 0x004309d1 cmovne r12, r14 | r12 = r14; | } | if (bl != 0) { 0x004309d5 cmovne rbp, r13 | | } 0x004309d9 lea rdi, [rsp + 0x70] | 0x004309de call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x70); 0x004309e3 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004309eb call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x004309f0 mov qword [rsp + 0x90], 0x4d55d0 | *((rsp + 0x90)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x004309fc mov qword [rsp + 0xd0], r12 | *((rsp + 0xd0)) = r12; 0x00430a04 mov qword [rsp + 0xd8], rbp | *((rsp + 0xd8)) = rbp; 0x00430a0c add rbp, r12 | rbp += r12; 0x00430a0f mov qword [rsp + 0xa0], r12 | *((rsp + 0xa0)) = r12; 0x00430a17 mov qword [rsp + 0xa8], r12 | *((rsp + 0xa8)) = r12; 0x00430a1f mov qword [rsp + 0xb0], rbp | *((rsp + 0xb0)) = rbp; 0x00430a27 lea rdi, [rsp + 0x50] | 0x00430a2c lea rdx, [rsp + 0x90] | 0x00430a34 lea rcx, [rsp + 0x70] | 0x00430a39 xor esi, esi | 0x00430a3b call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x50, 0, rsp + 0x90, rsp + 0x70, r8, r9); 0x00430a40 lea r14, [rsp + 0x138] | r14 = rsp + 0x138; 0x00430a48 mov ebx, eax | ebx = eax; 0x00430a4a lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430a52 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00430a57 lea rdi, [rsp + 0x70] | rdi = rsp + 0x70; 0x00430a5c call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x00430a61 test ebx, ebx | | if (ebx != 0) { 0x00430a63 je 0x430abb | 0x00430a65 mov edi, 0x722630 | 0x00430a6a mov esi, 0x4cfe77 | 0x00430a6f mov edx, 6 | 0x00430a74 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); 0x00430a79 mov esi, 0x4d06dd | 0x00430a7e mov edx, 2 | 0x00430a83 mov rdi, rax | 0x00430a86 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430a8b mov rdi, rax | rdi = rax; 0x00430a8e mov esi, ebx | esi = ebx; 0x00430a90 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00430a95 mov esi, 0x4f01d0 | 0x00430a9a mov edx, 1 | 0x00430a9f mov rdi, rax | 0x00430aa2 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430aa7 mov esi, 0x4cfe72 | esi = "0 == result"; 0x00430aac mov edi, 1 | edi = 1; 0x00430ab1 mov edx, 0x2f5 | edx = 0x2f5; 0x00430ab6 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00430abb movsx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); 0x00430ac0 cmp eax, 1 | | if (eax != 1) { 0x00430ac3 je 0x430b39 | 0x00430ac5 cmp eax, 0x10 | | if (eax == 0x10) { 0x00430ac8 je 0x430b39 | goto label_23; | } 0x00430aca mov edi, 0x722630 | 0x00430acf mov esi, 0x4d0f6f | 0x00430ad4 mov edx, 0x11 | 0x00430ad9 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); 0x00430ade mov esi, 0x4d06dd | 0x00430ae3 mov edx, 2 | 0x00430ae8 mov rdi, rax | 0x00430aeb call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430af0 movsx rcx, word [rsp + 0x5e] | rcx = *((rsp + 0x5e)); 0x00430af6 mov ecx, ecx | 0x00430af8 cmp rcx, 1 | 0x00430afc sete dl | dl = (rcx == 1) ? 1 : 0; 0x00430aff cmp rcx, 0x10 | 0x00430b03 sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x00430b06 or cl, dl | cl |= dl; 0x00430b08 movzx esi, cl | esi = (int32_t) cl; 0x00430b0b mov rdi, rax | rdi = rax; 0x00430b0e call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x00430b13 mov esi, 0x4f01d0 | 0x00430b18 mov edx, 1 | 0x00430b1d mov rdi, rax | 0x00430b20 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430b25 mov esi, 0x4d0f6f | esi = "other->isDouble()"; 0x00430b2a mov edi, 1 | edi = 1; 0x00430b2f mov edx, 0x2f6 | edx = 0x2f6; 0x00430b34 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_23: 0x00430b39 movsd xmm0, qword [rsp + 0x50] | xmm0 = *((rsp + 0x50)); 0x00430b3f ucomisd xmm0, qword [rip + 0x85cf1] | __asm ("ucomisd xmm0, qword [0x004b6838]"); | if (cl == 0) { 0x00430b47 jne 0x430b4f | | if (cl != 0) { 0x00430b49 jnp 0x430bef | goto label_24; | } | } 0x00430b4f mov edi, 0x722630 | 0x00430b54 mov esi, 0x4d0f81 | 0x00430b59 mov edx, 0xb | 0x00430b5e 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); 0x00430b63 mov esi, 0x4d06dd | 0x00430b68 mov edx, 2 | 0x00430b6d mov rdi, rax | 0x00430b70 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430b75 movq xmm0, qword [rip + 0x85cbb] | xmm0 = *(0x004b6838); 0x00430b7d mov rdi, rax | rdi = rax; 0x00430b80 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x00430b85 mov esi, 0x4f0293 | 0x00430b8a mov edx, 1 | 0x00430b8f mov rdi, rax | 0x00430b92 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00430b97 mov esi, 0x4d0f9c | 0x00430b9c mov edx, 0x12 | 0x00430ba1 mov rdi, rax | 0x00430ba4 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0f9c, 0x12); 0x00430ba9 mov esi, 0x4d06dd | 0x00430bae mov edx, 2 | 0x00430bb3 mov rdi, rax | 0x00430bb6 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430bbb movq xmm0, qword [rsp + 0x50] | xmm0 = *((rsp + 0x50)); 0x00430bc1 mov rdi, rax | rdi = rax; 0x00430bc4 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x00430bc9 mov esi, 0x4f01d0 | 0x00430bce mov edx, 1 | 0x00430bd3 mov rdi, rax | 0x00430bd6 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430bdb mov esi, 0x4d0f8d | esi = "double(obj) == other->theDouble()"; 0x00430be0 mov edi, 1 | edi = 1; 0x00430be5 mov edx, 0x2f9 | edx = 0x2f9; 0x00430bea call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_24: 0x00430bef mov rsi, qword [rsp + 0x60] | 0x00430bf4 lea rdi, [rsp + 0x50] | 0x00430bf9 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x50, *((rsp + 0x60))); 0x00430bfe test byte [rsp + 0x10], 1 | | if ((*((rsp + 0x10)) & 1) != 0) { 0x00430c03 je 0x430c0f | 0x00430c05 mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); 0x00430c0a call 0x4046c0 | delete (); | } 0x00430c0f mov rsi, qword [rsp + 0xf0] | 0x00430c17 lea rdi, [rsp + 0xe0] | 0x00430c1f call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xe0, *((rsp + 0xf0))); 0x00430c24 test byte [rsp + 0x30], 1 | | if ((*((rsp + 0x30)) & 1) != 0) { 0x00430c29 je 0x430c35 | 0x00430c2b mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x00430c30 call 0x4046c0 | delete (); | } 0x00430c35 cmp byte [rip + 0x2f1aa5], 0 | | if (*(obj.veryVerbose) != 0) { 0x00430c3c je 0x430d16 | 0x00430c42 mov rax, qword [rip + 0x2f19e7] | rax = std::__1::cout; 0x00430c49 mov esi, 0x722630 | esi = std::__1::cout; 0x00430c4e add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x00430c52 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430c5a call 0x404a70 | std::_1::ios_base::getloc()const (); 0x00430c5f lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430c67 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x00430c6c call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00430c71 mov rcx, qword [rax] | rcx = *(rax); 0x00430c74 mov rdi, rax | rdi = rax; 0x00430c77 mov esi, 0xa | esi = 0xa; 0x00430c7c call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00430c7f mov ebx, eax | ebx = eax; 0x00430c81 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430c89 call 0x404ba0 | std::_1::locale::~locale() (); 0x00430c8e movsx esi, bl | esi = (int32_t) bl; 0x00430c91 mov edi, 0x722630 | edi = std::__1::cout; 0x00430c96 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x00430c9b mov edi, 0x722630 | edi = std::__1::cout; 0x00430ca0 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x00430ca5 mov edi, 0x722630 | 0x00430caa mov esi, 0x4d0faf | 0x00430caf mov edx, 0x25 | 0x00430cb4 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); 0x00430cb9 mov rbx, rax | rbx = rax; 0x00430cbc mov rax, qword [rax] | rax = *(rax); 0x00430cbf mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x00430cc3 add rsi, rbx | rsi += rbx; 0x00430cc6 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430cce call 0x404a70 | std::_1::ios_base::getloc()const (); 0x00430cd3 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430cdb mov esi, 0x722550 | esi = std::__1::ctype::id; 0x00430ce0 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00430ce5 mov rcx, qword [rax] | rcx = *(rax); 0x00430ce8 mov rdi, rax | rdi = rax; 0x00430ceb mov esi, 0xa | esi = 0xa; 0x00430cf0 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00430cf3 mov ebp, eax | 0x00430cf5 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430cfd call 0x404ba0 | std::_1::locale::~locale() (); 0x00430d02 movsx esi, bpl | esi = (int32_t) bpl; 0x00430d06 mov rdi, rbx | rdi = rbx; 0x00430d09 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x00430d0e mov rdi, rbx | rdi = rbx; 0x00430d11 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x00430d16 mov byte [rsp + 0x30], 0xa | *((rsp + 0x30)) = 0xa; 0x00430d1b mov dword [rsp + 0x31], 0x37332e31 | *((rsp + 0x31)) = 0x37332e31; 0x00430d23 mov word [rsp + 0x35], 0x35 | *((rsp + 0x35)) = 0x35; 0x00430d2a movapd xmm0, xmmword [rip + 0x85c5e] | __asm ("movapd xmm0, xmmword [0x004b6990]"); 0x00430d32 movapd xmmword [rsp + 0xe0], xmm0 | __asm ("movapd xmmword [rsp + 0xe0], xmm0"); 0x00430d3b mov qword [rsp + 0xf0], r14 | *((rsp + 0xf0)) = r14; 0x00430d43 xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x00430d47 movapd xmmword [rsp + 0x10], xmm0 | __asm ("movapd xmmword [rsp + 0x10], xmm0"); 0x00430d4d mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x00430d56 lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x00430d5b lea rsi, [rsp + 0xe0] | 0x00430d63 lea rdx, [rsp + 0x118] | 0x00430d6b mov rdi, r12 | 0x00430d6e call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r12, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x00430d73 mov ebp, eax | 0x00430d75 test eax, eax | | if (eax != 0) { 0x00430d77 je 0x430dcf | 0x00430d79 mov edi, 0x722630 | 0x00430d7e mov esi, 0x4cfe77 | 0x00430d83 mov edx, 6 | 0x00430d88 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); 0x00430d8d mov esi, 0x4d06dd | 0x00430d92 mov edx, 2 | 0x00430d97 mov rdi, rax | 0x00430d9a call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430d9f mov rdi, rax | rdi = rax; 0x00430da2 mov esi, ebp | esi = ebp; 0x00430da4 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00430da9 mov esi, 0x4f01d0 | 0x00430dae mov edx, 1 | 0x00430db3 mov rdi, rax | 0x00430db6 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430dbb mov esi, 0x4cfe72 | esi = "0 == result"; 0x00430dc0 mov edi, 1 | edi = 1; 0x00430dc5 mov edx, 0x306 | edx = 0x306; 0x00430dca call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00430dcf movzx ecx, byte [rsp + 0x30] | ecx = *((rsp + 0x30)); 0x00430dd4 mov rax, rcx | rax = rcx; 0x00430dd7 shr rax, 1 | rax >>= 1; 0x00430dda mov rdx, rax | rdx = rax; 0x00430ddd test cl, 1 | | if ((cl & 1) != 0) { 0x00430de0 je 0x430de7 | 0x00430de2 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); | } 0x00430de7 lea r15, [rsp + 0x31] | r15 = rsp + 0x31; 0x00430dec movzx ebx, byte [rsp + 0x10] | ebx = *((rsp + 0x10)); 0x00430df1 mov rbp, rbx | 0x00430df4 shr rbp, 1 | rbp >>= 1; 0x00430df7 and bl, 1 | bl &= 1; 0x00430dfa mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x00430dff mov rsi, r13 | rsi = *((rsp + 0x18)); | if (bl == 0) { 0x00430e02 cmove rsi, rbp | rsi = rbp; | } 0x00430e06 cmp rdx, rsi | | if (rdx != rsi) { 0x00430e09 jne 0x430e6d | goto label_25; | } 0x00430e0b test bl, bl | 0x00430e0d mov r14, qword [rsp + 0x20] | r14 = *((rsp + 0x20)); 0x00430e12 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; | if (bl != 0) { 0x00430e17 cmovne rsi, r14 | rsi = r14; | } 0x00430e1b mov rdi, r15 | rdi = r15; 0x00430e1e test cl, 1 | | if ((cl & 1) != 0) { 0x00430e21 je 0x430e28 | 0x00430e23 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } | if ((cl & 1) != 0) { 0x00430e28 jne 0x430e57 | goto label_26; | } 0x00430e2a test rdx, rdx | | if (rdx == 0) { 0x00430e2d je 0x430f50 | goto label_27; | } 0x00430e33 xor ecx, ecx | ecx = 0; 0x00430e35 nop word cs:[rax + rax] | 0x00430e3f nop | | do { 0x00430e40 movzx edx, byte [rsp + rcx + 0x31] | edx = *((rsp + rcx + 0x31)); 0x00430e45 cmp dl, byte [rsi + rcx] | | if (dl != *((rsi + rcx))) { 0x00430e48 jne 0x430e6d | goto label_25; | } 0x00430e4a inc rcx | rcx++; 0x00430e4d cmp rax, rcx | 0x00430e50 jne 0x430e40 | | } while (rax != rcx); 0x00430e52 jmp 0x430f50 | goto label_27; | label_26: 0x00430e57 test rdx, rdx | | if (rdx != 0) { 0x00430e5a je 0x430f50 | 0x00430e60 call 0x404900 | eax = bcmp (); 0x00430e65 test eax, eax | | if (eax == 0) { 0x00430e67 je 0x430f50 | goto label_27; | } | label_25: 0x00430e6d mov edi, 0x722630 | 0x00430e72 mov esi, 0x4d0f66 | 0x00430e77 mov edx, 8 | 0x00430e7c 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); 0x00430e81 mov esi, 0x4d06dd | 0x00430e86 mov edx, 2 | 0x00430e8b mov rdi, rax | 0x00430e8e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430e93 movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x00430e98 test dl, 1 | | if ((dl & 1) != 0) { 0x00430e9b je 0x430ea9 | 0x00430e9d mov r15, qword [rsp + 0x40] | r15 = *((rsp + 0x40)); 0x00430ea2 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x00430ea7 jmp 0x430eac | | } else { 0x00430ea9 shr rdx, 1 | rdx >>= 1; | } 0x00430eac mov rdi, rax | 0x00430eaf mov rsi, r15 | 0x00430eb2 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, r15, rdx); 0x00430eb7 mov esi, 0x4f0293 | 0x00430ebc mov edx, 1 | 0x00430ec1 mov rdi, rax | 0x00430ec4 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00430ec9 mov esi, 0x4d1277 | 0x00430ece mov edx, 4 | 0x00430ed3 mov rdi, rax | 0x00430ed6 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1277, 4); 0x00430edb mov esi, 0x4d06dd | 0x00430ee0 mov edx, 2 | 0x00430ee5 mov rdi, rax | 0x00430ee8 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00430eed movzx edx, byte [rsp + 0x10] | edx = *((rsp + 0x10)); 0x00430ef2 test dl, 1 | | if ((dl & 1) != 0) { 0x00430ef5 je 0x430f03 | 0x00430ef7 mov rsi, qword [rsp + 0x20] | rsi = *((rsp + 0x20)); 0x00430efc mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x00430f01 jmp 0x430f0b | | } else { 0x00430f03 shr rdx, 1 | rdx >>= 1; 0x00430f06 lea rsi, [rsp + 0x11] | | } 0x00430f0b mov rdi, rax | 0x00430f0e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x00430f13 mov esi, 0x4f01d0 | 0x00430f18 mov edx, 1 | 0x00430f1d mov rdi, rax | 0x00430f20 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00430f25 mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x00430f2a mov edi, 1 | edi = 1; 0x00430f2f mov edx, 0x307 | edx = 0x307; 0x00430f34 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x00430f39 movzx ebp, byte [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x00430f3e mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x00430f43 mov r14, qword [rsp + 0x20] | r14 = *((rsp + 0x20)); 0x00430f48 mov ebx, ebp | ebx = ebp; 0x00430f4a and bl, 1 | bl &= 1; 0x00430f4d shr rbp, 1 | rbp >>= 1; | } | label_27: 0x00430f50 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x00430f5a mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x00430f5f lea rax, [rsp + 0x138] | rax = rsp + 0x138; 0x00430f67 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x00430f6c inc r12 | r12++; 0x00430f6f test bl, bl | | if (bl != 0) { 0x00430f71 cmovne r12, r14 | r12 = r14; | } | if (bl != 0) { 0x00430f75 cmovne rbp, r13 | | } 0x00430f79 lea rdi, [rsp + 0x70] | 0x00430f7e call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x70); 0x00430f83 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430f8b call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x00430f90 mov qword [rsp + 0x90], 0x4d55d0 | *((rsp + 0x90)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x00430f9c mov qword [rsp + 0xd0], r12 | *((rsp + 0xd0)) = r12; 0x00430fa4 mov qword [rsp + 0xd8], rbp | *((rsp + 0xd8)) = rbp; 0x00430fac add rbp, r12 | rbp += r12; 0x00430faf mov qword [rsp + 0xa0], r12 | *((rsp + 0xa0)) = r12; 0x00430fb7 mov qword [rsp + 0xa8], r12 | *((rsp + 0xa8)) = r12; 0x00430fbf mov qword [rsp + 0xb0], rbp | *((rsp + 0xb0)) = rbp; 0x00430fc7 lea rdi, [rsp + 0x50] | 0x00430fcc lea rdx, [rsp + 0x90] | 0x00430fd4 lea rcx, [rsp + 0x70] | 0x00430fd9 xor esi, esi | 0x00430fdb call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x50, 0, rsp + 0x90, rsp + 0x70, r8, r9); 0x00430fe0 lea r14, [rsp + 0x138] | r14 = rsp + 0x138; 0x00430fe8 mov ebx, eax | ebx = eax; 0x00430fea lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00430ff2 call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x00430ff7 lea rdi, [rsp + 0x70] | rdi = rsp + 0x70; 0x00430ffc call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x00431001 test ebx, ebx | | if (ebx != 0) { 0x00431003 je 0x43105b | 0x00431005 mov edi, 0x722630 | 0x0043100a mov esi, 0x4cfe77 | 0x0043100f mov edx, 6 | 0x00431014 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); 0x00431019 mov esi, 0x4d06dd | 0x0043101e mov edx, 2 | 0x00431023 mov rdi, rax | 0x00431026 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0043102b mov rdi, rax | rdi = rax; 0x0043102e mov esi, ebx | esi = ebx; 0x00431030 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x00431035 mov esi, 0x4f01d0 | 0x0043103a mov edx, 1 | 0x0043103f mov rdi, rax | 0x00431042 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x00431047 mov esi, 0x4cfe72 | esi = "0 == result"; 0x0043104c mov edi, 1 | edi = 1; 0x00431051 mov edx, 0x30b | edx = 0x30b; 0x00431056 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0043105b movsx eax, word [rsp + 0x5e] | eax = *((rsp + 0x5e)); 0x00431060 cmp eax, 1 | | if (eax != 1) { 0x00431063 je 0x4310d9 | 0x00431065 cmp eax, 0x10 | | if (eax == 0x10) { 0x00431068 je 0x4310d9 | goto label_28; | } 0x0043106a mov edi, 0x722630 | 0x0043106f mov esi, 0x4d0f6f | 0x00431074 mov edx, 0x11 | 0x00431079 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); 0x0043107e mov esi, 0x4d06dd | 0x00431083 mov edx, 2 | 0x00431088 mov rdi, rax | 0x0043108b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431090 movsx rcx, word [rsp + 0x5e] | rcx = *((rsp + 0x5e)); 0x00431096 mov ecx, ecx | 0x00431098 cmp rcx, 1 | 0x0043109c sete dl | dl = (rcx == 1) ? 1 : 0; 0x0043109f cmp rcx, 0x10 | 0x004310a3 sete cl | cl = (rcx == 0x10) ? 1 : 0; 0x004310a6 or cl, dl | cl |= dl; 0x004310a8 movzx esi, cl | esi = (int32_t) cl; 0x004310ab mov rdi, rax | rdi = rax; 0x004310ae call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x004310b3 mov esi, 0x4f01d0 | 0x004310b8 mov edx, 1 | 0x004310bd mov rdi, rax | 0x004310c0 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x004310c5 mov esi, 0x4d0f6f | esi = "other->isDouble()"; 0x004310ca mov edi, 1 | edi = 1; 0x004310cf mov edx, 0x30c | edx = 0x30c; 0x004310d4 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_28: 0x004310d9 movsd xmm0, qword [rsp + 0x50] | xmm0 = *((rsp + 0x50)); 0x004310df ucomisd xmm0, qword [rip + 0x85759] | __asm ("ucomisd xmm0, qword [0x004b6840]"); | if (cl == 0) { 0x004310e7 jne 0x4310ef | | if (cl != 0) { 0x004310e9 jnp 0x43118f | goto label_29; | } | } 0x004310ef mov edi, 0x722630 | 0x004310f4 mov esi, 0x4cf69d | 0x004310f9 mov edx, 3 | 0x004310fe 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); 0x00431103 mov esi, 0x4d06dd | 0x00431108 mov edx, 2 | 0x0043110d mov rdi, rax | 0x00431110 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431115 movsd xmm0, qword [rip + 0x85723] | xmm0 = *(0x004b6840); 0x0043111d mov rdi, rax | rdi = rax; 0x00431120 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x00431125 mov esi, 0x4f0293 | 0x0043112a mov edx, 1 | 0x0043112f mov rdi, rax | 0x00431132 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00431137 mov esi, 0x4d0f9c | 0x0043113c mov edx, 0x12 | 0x00431141 mov rdi, rax | 0x00431144 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d0f9c, 0x12); 0x00431149 mov esi, 0x4d06dd | 0x0043114e mov edx, 2 | 0x00431153 mov rdi, rax | 0x00431156 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0043115b movsd xmm0, qword [rsp + 0x50] | xmm0 = *((rsp + 0x50)); 0x00431161 mov rdi, rax | rdi = rax; 0x00431164 call 0x404bc0 | rax = std::_1::basic_ostream>::operator << (double) (); 0x00431169 mov esi, 0x4f01d0 | 0x0043116e mov edx, 1 | 0x00431173 mov rdi, rax | 0x00431176 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043117b mov esi, 0x4d0fdb | esi = "obj == other->theDouble()"; 0x00431180 mov edi, 1 | edi = 1; 0x00431185 mov edx, 0x30d | edx = 0x30d; 0x0043118a call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | label_29: 0x0043118f mov rsi, qword [rsp + 0x60] | 0x00431194 lea rdi, [rsp + 0x50] | 0x00431199 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x50, *((rsp + 0x60))); 0x0043119e test byte [rsp + 0x10], 1 | | if ((*((rsp + 0x10)) & 1) != 0) { 0x004311a3 je 0x4311af | 0x004311a5 mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); 0x004311aa call 0x4046c0 | delete (); | } 0x004311af mov rsi, qword [rsp + 0xf0] | 0x004311b7 lea rdi, [rsp + 0xe0] | 0x004311bf call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xe0, *((rsp + 0xf0))); 0x004311c4 test byte [rsp + 0x30], 1 | | if ((*((rsp + 0x30)) & 1) != 0) { 0x004311c9 je 0x4311d5 | 0x004311cb mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x004311d0 call 0x4046c0 | delete (); | } 0x004311d5 cmp byte [rip + 0x2f1505], 0 | | if (*(obj.veryVerbose) != 0) { 0x004311dc je 0x4312b6 | 0x004311e2 mov rax, qword [rip + 0x2f1447] | rax = std::__1::cout; 0x004311e9 mov esi, 0x722630 | esi = std::__1::cout; 0x004311ee add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x004311f2 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004311fa call 0x404a70 | std::_1::ios_base::getloc()const (); 0x004311ff lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00431207 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0043120c call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00431211 mov rcx, qword [rax] | rcx = *(rax); 0x00431214 mov rdi, rax | rdi = rax; 0x00431217 mov esi, 0xa | esi = 0xa; 0x0043121c call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0043121f mov ebx, eax | ebx = eax; 0x00431221 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00431229 call 0x404ba0 | std::_1::locale::~locale() (); 0x0043122e movsx esi, bl | esi = (int32_t) bl; 0x00431231 mov edi, 0x722630 | edi = std::__1::cout; 0x00431236 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0043123b mov edi, 0x722630 | edi = std::__1::cout; 0x00431240 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x00431245 mov edi, 0x722630 | 0x0043124a mov esi, 0x4d0ff5 | 0x0043124f mov edx, 0x23 | 0x00431254 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); 0x00431259 mov rbx, rax | rbx = rax; 0x0043125c mov rax, qword [rax] | rax = *(rax); 0x0043125f mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x00431263 add rsi, rbx | rsi += rbx; 0x00431266 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043126e call 0x404a70 | std::_1::ios_base::getloc()const (); 0x00431273 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043127b mov esi, 0x722550 | esi = std::__1::ctype::id; 0x00431280 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00431285 mov rcx, qword [rax] | rcx = *(rax); 0x00431288 mov rdi, rax | rdi = rax; 0x0043128b mov esi, 0xa | esi = 0xa; 0x00431290 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00431293 mov ebp, eax | 0x00431295 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043129d call 0x404ba0 | std::_1::locale::~locale() (); 0x004312a2 movsx esi, bpl | esi = (int32_t) bpl; 0x004312a6 mov rdi, rbx | rdi = rbx; 0x004312a9 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x004312ae mov rdi, rbx | rdi = rbx; 0x004312b1 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x004312b6 cmp byte [rip + 0x2f1425], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004312bd je 0x431397 | 0x004312c3 mov rax, qword [rip + 0x2f1366] | rax = std::__1::cout; 0x004312ca mov esi, 0x722630 | esi = std::__1::cout; 0x004312cf add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x004312d3 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004312db call 0x404a70 | std::_1::ios_base::getloc()const (); 0x004312e0 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004312e8 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x004312ed call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x004312f2 mov rcx, qword [rax] | rcx = *(rax); 0x004312f5 mov rdi, rax | rdi = rax; 0x004312f8 mov esi, 0xa | esi = 0xa; 0x004312fd call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00431300 mov ebx, eax | ebx = eax; 0x00431302 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043130a call 0x404ba0 | std::_1::locale::~locale() (); 0x0043130f movsx esi, bl | esi = (int32_t) bl; 0x00431312 mov edi, 0x722630 | edi = std::__1::cout; 0x00431317 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0043131c mov edi, 0x722630 | edi = std::__1::cout; 0x00431321 call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x00431326 mov edi, 0x722630 | 0x0043132b mov esi, 0x4d1019 | 0x00431330 mov edx, 9 | 0x00431335 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); 0x0043133a mov rbx, rax | rbx = rax; 0x0043133d mov rax, qword [rax] | rax = *(rax); 0x00431340 mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x00431344 add rsi, rbx | rsi += rbx; 0x00431347 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043134f call 0x404a70 | std::_1::ios_base::getloc()const (); 0x00431354 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043135c mov esi, 0x722550 | esi = std::__1::ctype::id; 0x00431361 call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x00431366 mov rcx, qword [rax] | rcx = *(rax); 0x00431369 mov rdi, rax | rdi = rax; 0x0043136c mov esi, 0xa | esi = 0xa; 0x00431371 call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x00431374 mov ebp, eax | 0x00431376 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043137e call 0x404ba0 | std::_1::locale::~locale() (); 0x00431383 movsx esi, bpl | esi = (int32_t) bpl; 0x00431387 mov rdi, rbx | rdi = rbx; 0x0043138a call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0043138f mov rdi, rbx | rdi = rbx; 0x00431392 call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x00431397 movabs rax, 0x3000000000000 | rax = 0x3000000000000; 0x004313a1 mov byte [rsp + 0x30], 0xa | *((rsp + 0x30)) = 0xa; 0x004313a6 mov dword [rsp + 0x31], 0x736c6166 | *((rsp + 0x31)) = 0x736c6166; 0x004313ae mov word [rsp + 0x35], 0x65 | *((rsp + 0x35)) = 0x65; 0x004313b5 mov qword [rsp + 0xe8], rax | *((rsp + 0xe8)) = rax; 0x004313bd mov qword [rsp + 0xf0], r14 | *((rsp + 0xf0)) = r14; 0x004313c5 xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x004313c9 movapd xmmword [rsp + 0x10], xmm0 | __asm ("movapd xmmword [rsp + 0x10], xmm0"); 0x004313cf mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x004313d8 lea r13, [rsp + 0x10] | r13 = rsp + 0x10; 0x004313dd lea rsi, [rsp + 0xe0] | 0x004313e5 lea rdx, [rsp + 0x118] | 0x004313ed mov rdi, r13 | 0x004313f0 call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r13, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x004313f5 mov ebp, eax | 0x004313f7 test eax, eax | | if (eax != 0) { 0x004313f9 je 0x431451 | 0x004313fb mov edi, 0x722630 | 0x00431400 mov esi, 0x4cfe77 | 0x00431405 mov edx, 6 | 0x0043140a 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); 0x0043140f mov esi, 0x4d06dd | 0x00431414 mov edx, 2 | 0x00431419 mov rdi, rax | 0x0043141c call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431421 mov rdi, rax | rdi = rax; 0x00431424 mov esi, ebp | esi = ebp; 0x00431426 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0043142b mov esi, 0x4f01d0 | 0x00431430 mov edx, 1 | 0x00431435 mov rdi, rax | 0x00431438 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043143d mov esi, 0x4cfe72 | esi = "0 == result"; 0x00431442 mov edi, 1 | edi = 1; 0x00431447 mov edx, 0x31e | edx = 0x31e; 0x0043144c call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00431451 movzx ecx, byte [rsp + 0x30] | ecx = *((rsp + 0x30)); 0x00431456 mov rax, rcx | rax = rcx; 0x00431459 shr rax, 1 | rax >>= 1; 0x0043145c mov rdx, rax | rdx = rax; 0x0043145f test cl, 1 | | if ((cl & 1) != 0) { 0x00431462 je 0x431469 | 0x00431464 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); | } 0x00431469 lea r15, [rsp + 0x31] | r15 = rsp + 0x31; 0x0043146e movzx ebx, byte [rsp + 0x10] | ebx = *((rsp + 0x10)); 0x00431473 mov rbp, rbx | 0x00431476 shr rbp, 1 | rbp >>= 1; 0x00431479 and bl, 1 | bl &= 1; 0x0043147c mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x00431481 mov rsi, r14 | rsi = *((rsp + 0x18)); | if (bl == 0) { 0x00431484 cmove rsi, rbp | rsi = rbp; | } 0x00431488 cmp rdx, rsi | | if (rdx != rsi) { 0x0043148b jne 0x4314ed | goto label_30; | } 0x0043148d test bl, bl | 0x0043148f mov r12, qword [rsp + 0x20] | r12 = *((rsp + 0x20)); 0x00431494 lea rsi, [rsp + 0x11] | rsi = rsp + 0x11; | if (bl != 0) { 0x00431499 cmovne rsi, r12 | rsi = r12; | } 0x0043149d mov rdi, r15 | rdi = r15; 0x004314a0 test cl, 1 | | if ((cl & 1) != 0) { 0x004314a3 je 0x4314aa | 0x004314a5 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } | if ((cl & 1) != 0) { 0x004314aa jne 0x4314d7 | goto label_31; | } 0x004314ac test rdx, rdx | | if (rdx == 0) { 0x004314af je 0x4315d0 | goto label_32; | } 0x004314b5 xor ecx, ecx | ecx = 0; 0x004314b7 nop word [rax + rax] | | do { 0x004314c0 movzx edx, byte [rsp + rcx + 0x31] | edx = *((rsp + rcx + 0x31)); 0x004314c5 cmp dl, byte [rsi + rcx] | | if (dl != *((rsi + rcx))) { 0x004314c8 jne 0x4314ed | goto label_30; | } 0x004314ca inc rcx | rcx++; 0x004314cd cmp rax, rcx | 0x004314d0 jne 0x4314c0 | | } while (rax != rcx); 0x004314d2 jmp 0x4315d0 | goto label_32; | label_31: 0x004314d7 test rdx, rdx | | if (rdx != 0) { 0x004314da je 0x4315d0 | 0x004314e0 call 0x404900 | eax = bcmp (); 0x004314e5 test eax, eax | | if (eax == 0) { 0x004314e7 je 0x4315d0 | goto label_32; | } | label_30: 0x004314ed mov edi, 0x722630 | 0x004314f2 mov esi, 0x4d0f66 | 0x004314f7 mov edx, 8 | 0x004314fc 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); 0x00431501 mov esi, 0x4d06dd | 0x00431506 mov edx, 2 | 0x0043150b mov rdi, rax | 0x0043150e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431513 movzx edx, byte [rsp + 0x30] | edx = *((rsp + 0x30)); 0x00431518 test dl, 1 | | if ((dl & 1) != 0) { 0x0043151b je 0x431529 | 0x0043151d mov r15, qword [rsp + 0x40] | r15 = *((rsp + 0x40)); 0x00431522 mov rdx, qword [rsp + 0x38] | rdx = *((rsp + 0x38)); 0x00431527 jmp 0x43152c | | } else { 0x00431529 shr rdx, 1 | rdx >>= 1; | } 0x0043152c mov rdi, rax | 0x0043152f mov rsi, r15 | 0x00431532 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, r15, rdx); 0x00431537 mov esi, 0x4f0293 | 0x0043153c mov edx, 1 | 0x00431541 mov rdi, rax | 0x00431544 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00431549 mov esi, 0x4d1277 | 0x0043154e mov edx, 4 | 0x00431553 mov rdi, rax | 0x00431556 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d1277, 4); 0x0043155b mov esi, 0x4d06dd | 0x00431560 mov edx, 2 | 0x00431565 mov rdi, rax | 0x00431568 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x0043156d movzx edx, byte [rsp + 0x10] | edx = *((rsp + 0x10)); 0x00431572 test dl, 1 | | if ((dl & 1) != 0) { 0x00431575 je 0x431583 | 0x00431577 mov rsi, qword [rsp + 0x20] | rsi = *((rsp + 0x20)); 0x0043157c mov rdx, qword [rsp + 0x18] | rdx = *((rsp + 0x18)); 0x00431581 jmp 0x43158b | | } else { 0x00431583 shr rdx, 1 | rdx >>= 1; 0x00431586 lea rsi, [rsp + 0x11] | | } 0x0043158b mov rdi, rax | 0x0043158e call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x11, rdx); 0x00431593 mov esi, 0x4f01d0 | 0x00431598 mov edx, 1 | 0x0043159d mov rdi, rax | 0x004315a0 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x004315a5 mov esi, 0x4d0e8b | esi = "EXP_JSON == json"; 0x004315aa mov edi, 1 | edi = 1; 0x004315af mov edx, 0x31f | edx = 0x31f; 0x004315b4 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x004315b9 movzx ebp, byte [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004315be mov r14, qword [rsp + 0x18] | r14 = *((rsp + 0x18)); 0x004315c3 mov r12, qword [rsp + 0x20] | r12 = *((rsp + 0x20)); 0x004315c8 mov ebx, ebp | ebx = ebp; 0x004315ca and bl, 1 | bl &= 1; 0x004315cd shr rbp, 1 | rbp >>= 1; | } | label_32: 0x004315d0 movabs rax, 0x2000000000000 | rax = 0x2000000000000; 0x004315da mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x004315df lea rax, [rsp + 0x138] | rax = rsp + 0x138; 0x004315e7 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004315ec inc r13 | r13++; 0x004315ef test bl, bl | | if (bl != 0) { 0x004315f1 cmovne r13, r12 | r13 = r12; | } | if (bl != 0) { 0x004315f5 cmovne rbp, r14 | | } 0x004315f9 lea rdi, [rsp + 0x70] | 0x004315fe call 0x43ca50 | BloombergLP::baljsn::DatumDecoderOptions::DatumDecoderOptions() (rsp + 0x70); 0x00431603 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043160b call 0x4048f0 | std::_1::basic_streambuf>::basic_streambuf() (); 0x00431610 mov qword [rsp + 0x90], 0x4d55d0 | *((rsp + 0x90)) = sym.imp.std::__1::basic_streambuf_char__std::__1::char_traits_char___::basic_streambuf__; 0x0043161c mov qword [rsp + 0xd0], r13 | *((rsp + 0xd0)) = r13; 0x00431624 mov qword [rsp + 0xd8], rbp | *((rsp + 0xd8)) = rbp; 0x0043162c add rbp, r13 | rbp += r13; 0x0043162f mov qword [rsp + 0xa0], r13 | *((rsp + 0xa0)) = r13; 0x00431637 mov qword [rsp + 0xa8], r13 | *((rsp + 0xa8)) = r13; 0x0043163f mov qword [rsp + 0xb0], rbp | *((rsp + 0xb0)) = rbp; 0x00431647 lea rdi, [rsp + 0x50] | 0x0043164c lea rdx, [rsp + 0x90] | 0x00431654 lea rcx, [rsp + 0x70] | 0x00431659 xor esi, esi | 0x0043165b call 0x43ce20 | eax = BloombergLP::baljsn::DatumUtil::decode(BloombergLP::bdld::ManagedDatum*,std::_1::basic_ostream>*,std::_1::basic_streambuf>*,BloombergLP::baljsn::DatumDecoderOptionsconst&) (rsp + 0x50, 0, rsp + 0x90, rsp + 0x70, r8, r9); 0x00431660 mov ebx, eax | ebx = eax; 0x00431662 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x0043166a call 0x404630 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0043166f lea rdi, [rsp + 0x70] | rdi = rsp + 0x70; 0x00431674 call 0x43ca70 | BloombergLP::baljsn::DatumDecoderOptions::~DatumDecoderOptions() (); 0x00431679 test ebx, ebx | 0x0043167b lea r14, [rsp + 0x138] | r14 = rsp + 0x138; | if (ebx != 0) { 0x00431683 je 0x4316db | 0x00431685 mov edi, 0x722630 | 0x0043168a mov esi, 0x4cfe77 | 0x0043168f mov edx, 6 | 0x00431694 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); 0x00431699 mov esi, 0x4d06dd | 0x0043169e mov edx, 2 | 0x004316a3 mov rdi, rax | 0x004316a6 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004316ab mov rdi, rax | rdi = rax; 0x004316ae mov esi, ebx | esi = ebx; 0x004316b0 call 0x404a00 | rax = std::_1::basic_ostream>::operator << (int) (); 0x004316b5 mov esi, 0x4f01d0 | 0x004316ba mov edx, 1 | 0x004316bf mov rdi, rax | 0x004316c2 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x004316c7 mov esi, 0x4cfe72 | esi = "0 == result"; 0x004316cc mov edi, 1 | edi = 1; 0x004316d1 mov edx, 0x323 | edx = 0x323; 0x004316d6 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x004316db cmp word [rsp + 0x5e], 3 | | if (*((rsp + 0x5e)) != 3) { 0x004316e1 je 0x431743 | 0x004316e3 mov edi, 0x722630 | 0x004316e8 mov esi, 0x4d1023 | 0x004316ed mov edx, 0x12 | 0x004316f2 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->isBoolean()", 0x12); 0x004316f7 mov esi, 0x4d06dd | 0x004316fc mov edx, 2 | 0x00431701 mov rdi, rax | 0x00431704 call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431709 xor esi, esi | esi = 0; 0x0043170b cmp word [rsp + 0x5e], 3 | 0x00431711 sete sil | sil = (*((rsp + 0x5e)) == 3) ? 1 : 0; 0x00431715 mov rdi, rax | rdi = rax; 0x00431718 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0043171d mov esi, 0x4f01d0 | 0x00431722 mov edx, 1 | 0x00431727 mov rdi, rax | 0x0043172a call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x0043172f mov esi, 0x4d1023 | esi = "other->isBoolean()"; 0x00431734 mov edi, 1 | edi = 1; 0x00431739 mov edx, 0x324 | edx = 0x324; 0x0043173e call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x00431743 cmp dword [rsp + 0x58], 0 | | if (*((rsp + 0x58)) != 0) { 0x00431748 je 0x4317ed | 0x0043174e mov edi, 0x722630 | 0x00431753 mov esi, 0x4cf69d | 0x00431758 mov edx, 3 | 0x0043175d 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); 0x00431762 mov esi, 0x4d06dd | 0x00431767 mov edx, 2 | 0x0043176c mov rdi, rax | 0x0043176f call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x00431774 mov rdi, rax | rdi = rax; 0x00431777 xor esi, esi | esi = 0; 0x00431779 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x0043177e mov esi, 0x4f0293 | 0x00431783 mov edx, 1 | 0x00431788 mov rdi, rax | 0x0043178b call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f0293, 1); 0x00431790 mov esi, 0x4d103d | 0x00431795 mov edx, 0x13 | 0x0043179a mov rdi, rax | 0x0043179d call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d103d, 0x13); 0x004317a2 mov esi, 0x4d06dd | 0x004317a7 mov edx, 2 | 0x004317ac mov rdi, rax | 0x004317af call 0x43ae00 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4d06dd, 2); 0x004317b4 xor esi, esi | esi = 0; 0x004317b6 cmp dword [rsp + 0x58], 0 | 0x004317bb setne sil | sil = (*((rsp + 0x58)) != 0) ? 1 : 0; 0x004317bf mov rdi, rax | rdi = rax; 0x004317c2 call 0x404790 | rax = std::_1::basic_ostream>::operator << (bool) (); 0x004317c7 mov esi, 0x4f01d0 | 0x004317cc mov edx, 1 | 0x004317d1 mov rdi, rax | 0x004317d4 call 0x43ae00 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4f01d0, 1); 0x004317d9 mov esi, 0x4d1036 | esi = "obj == other->theBoolean()"; 0x004317de mov edi, 1 | edi = 1; 0x004317e3 mov edx, 0x325 | edx = 0x325; 0x004317e8 call 0x4225c0 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x004317ed mov rsi, qword [rsp + 0x60] | 0x004317f2 lea rdi, [rsp + 0x50] | 0x004317f7 call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0x50, *((rsp + 0x60))); 0x004317fc test byte [rsp + 0x10], 1 | | if ((*((rsp + 0x10)) & 1) != 0) { 0x00431801 je 0x43180d | 0x00431803 mov rdi, qword [rsp + 0x20] | rdi = *((rsp + 0x20)); 0x00431808 call 0x4046c0 | delete (); | } 0x0043180d mov rsi, qword [rsp + 0xf0] | 0x00431815 lea rdi, [rsp + 0xe0] | 0x0043181d call 0x44a140 | BloombergLP::bdld::Datum::destroy(BloombergLP::bdld::Datumconst&,BloombergLP::bslma::Allocator*) (rsp + 0xe0, *((rsp + 0xf0))); 0x00431822 test byte [rsp + 0x30], 1 | | if ((*((rsp + 0x30)) & 1) != 0) { 0x00431827 je 0x431833 | 0x00431829 mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); 0x0043182e call 0x4046c0 | delete (); | } 0x00431833 cmp byte [rip + 0x2f0ea8], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x0043183a je 0x431914 | 0x00431840 mov rax, qword [rip + 0x2f0de9] | rax = std::__1::cout; 0x00431847 mov esi, 0x722630 | esi = std::__1::cout; 0x0043184c add rsi, qword [rax - 0x18] | rsi += *((rax - 0x18)); 0x00431850 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00431858 call 0x404a70 | std::_1::ios_base::getloc()const (); 0x0043185d lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00431865 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x0043186a call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x0043186f mov rcx, qword [rax] | rcx = *(rax); 0x00431872 mov rdi, rax | rdi = rax; 0x00431875 mov esi, 0xa | esi = 0xa; 0x0043187a call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x0043187d mov ebx, eax | ebx = eax; 0x0043187f lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x00431887 call 0x404ba0 | std::_1::locale::~locale() (); 0x0043188c movsx esi, bl | esi = (int32_t) bl; 0x0043188f mov edi, 0x722630 | edi = std::__1::cout; 0x00431894 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x00431899 mov edi, 0x722630 | edi = std::__1::cout; 0x0043189e call 0x404a30 | std::_1::basic_ostream>::flush() (); 0x004318a3 mov edi, 0x722630 | 0x004318a8 mov esi, 0x4d1051 | 0x004318ad mov edx, 8 | 0x004318b2 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. true", 8); 0x004318b7 mov rbx, rax | rbx = rax; 0x004318ba mov rax, qword [rax] | rax = *(rax); 0x004318bd mov rsi, qword [rax - 0x18] | rsi = *((rax - 0x18)); 0x004318c1 add rsi, rbx | rsi += rbx; 0x004318c4 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004318cc call 0x404a70 | std::_1::ios_base::getloc()const (); 0x004318d1 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004318d9 mov esi, 0x722550 | esi = std::__1::ctype::id; 0x004318de call 0x404b30 | rax = std::_1::locale::use_facet(std::_1::locale::id&)const (); 0x004318e3 mov rcx, qword [rax] | rcx = *(rax); 0x004318e6 mov rdi, rax | rdi = rax; 0x004318e9 mov esi, 0xa | esi = 0xa; 0x004318ee call qword [rcx + 0x38] | eax = uint64_t (*rcx + 0x38)() (); 0x004318f1 mov ebp, eax | 0x004318f3 lea rdi, [rsp + 0x90] | rdi = rsp + 0x90; 0x004318fb call 0x404ba0 | std::_1::locale::~locale() (); 0x00431900 movsx esi, bpl | esi = (int32_t) bpl; 0x00431904 mov rdi, rbx | rdi = rbx; 0x00431907 call 0x404850 | std::_1::basic_ostream>::put(char) (); 0x0043190c mov rdi, rbx | rdi = rbx; 0x0043190f call 0x404a30 | std::_1::basic_ostream>::flush() (); | } 0x00431914 mov byte [rsp + 0x30], 8 | *((rsp + 0x30)) = 8; 0x00431919 mov dword [rsp + 0x31], 0x65757274 | *((rsp + 0x31)) = 0x65757274; 0x00431921 mov byte [rsp + 0x35], 0 | *((rsp + 0x35)) = 0; 0x00431926 movabs rax, 0x3000000000000 | rax = 0x3000000000000; 0x00431930 inc rax | rax++; 0x00431933 mov qword [rsp + 0xe8], rax | *((rsp + 0xe8)) = rax; 0x0043193b mov qword [rsp + 0xf0], r14 | *((rsp + 0xf0)) = r14; 0x00431943 xorpd xmm0, xmm0 | __asm ("xorpd xmm0, xmm0"); 0x00431947 movapd xmmword [rsp + 0x10], xmm0 | __asm ("movapd xmmword [rsp + 0x10], xmm0"); 0x0043194d mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x00431956 lea r12, [rsp + 0x10] | r12 = rsp + 0x10; 0x0043195b lea rsi, [rsp + 0xe0] | 0x00431963 lea rdx, [rsp + 0x118] | 0x0043196b mov rdi, r12 | 0x0043196e call 0x43de30 | eax = BloombergLP::baljsn::DatumUtil::encode(std::_1::basic_string,std::_1::allocator>*,BloombergLP::bdld::Datumconst&,BloombergLP::baljsn::DatumEncoderOptionsconst&) (r12, rsp + 0xe0, rsp + 0x118, rcx, r8, r9); 0x00431973 mov ebp, eax | 0x00431975 test eax, eax | | /* 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. */ 0x00431977 je 0x4319cf | return void (*0x4319cf)() (); | }