; assembly | /* r2dec pseudo code output */ | /* baljsn_formatter.t/none @ 0x41e840 */ | #include | ; (fcn) method.void_testPutValue_BloombergLP::bdlt.Time__int__int__int__int__BloombergLP::bdlt::Time_const__BloombergLP::baljsn::EncoderOptions_const__bool_ () | uint64_t method_void_testPutValue_BloombergLP::bdlt_Time_int_int_int_int_BloombergLP::bdlt::Time_const_BloombergLP::baljsn::EncoderOptions_const_bool_ (uint32_t arg_340h, int64_t arg6, int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_4h; | int64_t var_8h; | int64_t var_ch; | int64_t var_10h; | size_t var_18h; | uint32_t var_28h; | uint32_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_58h; | uint32_t var_60h; | int64_t var_68h; | int64_t var_70h; | int64_t var_78h; | int64_t var_80h; | int64_t var_88h; | uint32_t var_90h; | int64_t var_94h; | int64_t var_98h; | int64_t var_a0h; | int64_t var_c0h; | int64_t var_c8h; | int64_t var_d0h; | int64_t var_110h; | int64_t var_128h; | uint32_t var_130h; | int64_t var_138h; | int64_t var_150h; | int64_t var_1d8h; | int64_t var_1e0h; | int64_t var_1e8h; | int64_t var_1f0h; | int64_t var_230h; | int64_t var_248h; | uint32_t var_250h; | int64_t var_258h; | int64_t var_270h; | int64_t var_2f8h; | int64_t var_300h; | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void testPutValue(int, int, int, int, BloombergLP::bdlt::Time const&, BloombergLP::baljsn::EncoderOptions const*, bool) */ 0x0041e840 push rbp | 0x0041e841 push r15 | 0x0041e843 push r14 | 0x0041e845 push r13 | 0x0041e847 push r12 | 0x0041e849 push rbx | 0x0041e84a sub rsp, 0x308 | 0x0041e851 mov qword [rsp + 0x80], r9 | *((rsp + 0x80)) = r9; 0x0041e859 mov qword [rsp + 0x78], r8 | *((rsp + 0x78)) = r8; 0x0041e85e mov dword [rsp + 8], ecx | *((rsp + 8)) = ecx; 0x0041e862 mov r15d, esi | r15d = esi; 0x0041e865 mov dword [rsp + 4], edi | *((rsp + 4)) = edi; 0x0041e869 mov qword [rsp + 0x70], rdx | *((rsp + 0x70)) = rdx; 0x0041e86e lea eax, [rdx + 1] | eax = rdx + 1; 0x0041e871 mov dword [rsp + 0xc], eax | *((rsp + 0xc)) = eax; 0x0041e875 xor ebx, ebx | ebx = 0; 0x0041e877 mov r13b, 1 | r13b = 1; 0x0041e87a lea r12, [rsp + 0x40] | r12 = rsp + 0x40; 0x0041e87f jmp 0x41e8c6 | | while (*((rsp + 0x250)) == 0x17) { | label_0: 0x0041e890 mov qword [rsp + 0x248], 0xffffffffffffffff | *((rsp + 0x248)) = 0xffffffffffffffff; 0x0041e89c mov rdi, rbx | rdi = rbx; 0x0041e89f call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041e8a4 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041e8ac call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041e8b1 mov ebx, 1 | ebx = 1; 0x0041e8b6 test r13b, 1 | 0x0041e8ba mov r13d, 0 | r13d = 0; | if ((r13b & 1) == 0) { 0x0041e8c0 je 0x41f141 | goto label_1; | } 0x0041e8c6 mov rax, qword [rip + 0x2b5693] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041e8cd test rax, rax | | if (rax == 0) { 0x0041e8d0 jne 0x41e8d7 | 0x0041e8d2 call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041e8d7 mov qword [rsp + 0xc8], rax | *((rsp + 0xc8)) = rax; 0x0041e8df mov qword [rsp + 0x270], 0x6c9ca0 | *((rsp + 0x270)) = 0x6c9ca0; 0x0041e8eb lea rbp, [rsp + 0x1f0] | rbp = rsp + 0x1f0; 0x0041e8f3 mov rdi, rbp | 0x0041e8f6 mov esi, 0x10 | 0x0041e8fb lea rdx, [rsp + 0xc8] | 0x0041e903 call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0xc8); 0x0041e908 mov qword [rsp + 0x1e8], 0x48ddd0 | *((rsp + sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddd0; 0x0041e914 mov qword [rsp + 0x270], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041e920 lea rdi, [rsp + 0x270] | rdi = rsp + 0x270; 0x0041e928 mov rsi, rbp | rsi = rbp; 0x0041e92b call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041e930 mov qword [rsp + 0x2f8], 0 | *((rsp + 0x2f8)) = 0; 0x0041e93c mov dword [rsp + 0x300], 0xffffffff | *((rsp + 0x300)) = 0xffffffff; 0x0041e947 mov qword [rsp + 0x1e8], 0x48dd60 | *((rsp + sym.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___::basic_ostringstream__)) = 0x48dd60; 0x0041e953 mov qword [rsp + 0x270], 0x48dd88 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48dd88; 0x0041e95f mov rax, qword [rip + 0x2b55fa] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041e966 test rax, rax | | if (rax == 0) { 0x0041e969 jne 0x41e970 | 0x0041e96b call 0x466fe0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x0041e970 mov qword [rsp + 0x88], rax | *((rsp + 0x88)) = rax; 0x0041e978 mov qword [rsp + 0x150], 0x6c9ca0 | *((rsp + 0x150)) = 0x6c9ca0; 0x0041e984 lea rbp, [rsp + 0xd0] | rbp = rsp + 0xd0; 0x0041e98c mov rdi, rbp | 0x0041e98f mov esi, 0x10 | 0x0041e994 lea rdx, [rsp + 0x88] | 0x0041e99c call 0x422e50 | bsl::basic_stringbuf,bsl::allocator>::basic_stringbuf(unsignedint,bsl::allocatorconst&) (rbp, 0x10, rsp + 0x88); 0x0041e9a1 mov qword [rsp + 0xc8], 0x48ddd0 | *((rsp + 0xc8)) = sym.imp.std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__; 0x0041e9ad mov qword [rsp + 0x150], 0x48ddf8 | *((rsp + sym.imp.virtual_thunk_to_std::__1::basic_ostream_char__std::__1::char_traits_char___::basic_ostream__)) = 0x48ddf8; 0x0041e9b9 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041e9c1 mov rsi, rbp | rsi = rbp; 0x0041e9c4 call 0x403f90 | std::_1::ios_base::init(void*) (); 0x0041e9c9 mov qword [rsp + 0x1d8], 0 | *((rsp + 0x1d8)) = 0; 0x0041e9d5 mov dword [rsp + 0x1e0], 0xffffffff | *((rsp + 0x1e0)) = 0xffffffff; 0x0041e9e0 mov qword [rsp + 0xc8], 0x48dd60 | *((rsp + 0xc8)) = vtable.bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041e9ec mov qword [rsp + 0x150], 0x48dd88 | *((rsp + method.virtual_thunk_to_bsl::basic_ostringstream_char__std::__1::char_traits_char___bsl::allocator_char___.basic_ostringstream__)) = 0x48dd88; 0x0041e9f8 lea rdi, [rsp + 0x88] | rdi = rsp + 0x88; 0x0041ea00 lea rsi, [rsp + 0x1e8] | rsi = rsp + 0x1e8; 0x0041ea08 mov edx, r15d | edx = r15d; 0x0041ea0b mov rcx, qword [rsp + 0x70] | rcx = *((rsp + 0x70)); 0x0041ea10 mov r8d, dword [rsp + 8] | r8d = *((rsp + 8)); 0x0041ea15 call 0x404600 | symg(std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ea47 cmp r15d, 1 | | if (r15d != 1) { 0x0041ea4b jne 0x41eaea | goto label_2; | } 0x0041ea51 mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041ea56 mov edx, 1 | 0x0041ea5b lea rdi, [rsp + 0xc8] | 0x0041ea63 mov rsi, r12 | 0x0041ea66 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ea6b jmp 0x41eaea | | } else { 0x0041ea70 lea rdi, [rsp + 0x88] | 0x0041ea78 xor esi, esi | 0x0041ea7a call 0x423bd0 | BloombergLP::baljsn::Formatter::openArray(bool) (rsp + 0x88, 0); 0x0041ea7f cmp r15d, 1 | | if (r15d == 1) { 0x0041ea83 jne 0x41ea9b | 0x0041ea85 lea rdi, [rsp + 0xc8] | 0x0041ea8d mov rsi, qword [rsp + 0x70] | 0x0041ea92 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041ea96 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0x70))); | } 0x0041ea9b mov byte [rsp + 0x40], 0x5b | *((rsp + 0x40)) = 0x5b; 0x0041eaa0 mov edx, 1 | 0x0041eaa5 lea rdi, [rsp + 0xc8] | 0x0041eaad mov rsi, r12 | 0x0041eab0 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041eab5 cmp r15d, 1 | | if (r15d != 1) { 0x0041eab9 jne 0x41eaea | goto label_2; | } 0x0041eabb mov byte [rsp + 0x40], 0xa | *((rsp + 0x40)) = 0xa; 0x0041eac0 mov edx, 1 | 0x0041eac5 lea rdi, [rsp + 0xc8] | 0x0041eacd mov rsi, r12 | 0x0041ead0 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rsp + 0xc8, r12, 1); 0x0041ead5 lea rdi, [rsp + 0xc8] | 0x0041eadd mov esi, dword [rsp + 0xc] | 0x0041eae1 mov edx, dword [rsp + 8] | edx = *((rsp + 8)); 0x0041eae5 call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rsp + 0xc8, *((rsp + 0xc))); | } | label_2: 0x0041eaea cmp byte [rsp + 0x90], 0 | | if (*((rsp + 0x90)) != 0) { 0x0041eaf2 je 0x41eb33 | 0x0041eaf4 mov rax, qword [rsp + 0xa0] | rax = *((rsp + 0xa0)); 0x0041eafc mov rcx, qword [rsp + 0xc0] | rcx = *((rsp + 0xc0)); 0x0041eb04 dec rcx | rcx--; 0x0041eb07 mov rdx, rcx | rdx = rcx; 0x0041eb0a shr rdx, 6 | rdx >>= 6; 0x0041eb0e mov rax, qword [rax + rdx*8] | rax = *((rax + rdx*8)); 0x0041eb12 bt rax, rcx | | if (((rax >> rcx) & 1) >= 0) { 0x0041eb16 jae 0x41eb33 | goto label_3; | } 0x0041eb18 mov rdi, qword [rsp + 0x88] | 0x0041eb20 mov esi, dword [rsp + 0x94] | 0x0041eb27 mov edx, dword [rsp + 0x98] | edx = *((rsp + 0x98)); 0x0041eb2e call 0x4296a0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rsp + 0x88)), *((rsp + 0x94))); | } | label_3: 0x0041eb33 mov rbp, qword [rsp + 0x88] | rbp = *((rsp + 0x88)); 0x0041eb3b mov dword [rsp], 3 | *(rsp) = 3; 0x0041eb42 mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041eb4a test rax, rax | | if (rax != 0) { 0x0041eb4d je 0x41eb60 | 0x0041eb4f mov esi, dword [rax + 8] | 0x0041eb52 mov rdi, rsp | 0x0041eb55 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041eb5a jmp 0x41eb6d | | } else { 0x0041eb60 mov rdi, rsp | 0x0041eb63 mov esi, 3 | 0x0041eb68 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041eb6d mov rdi, r12 | 0x0041eb70 mov esi, 0x27 | 0x0041eb75 mov rdx, qword [rsp + 0x78] | 0x0041eb7a mov rcx, rsp | 0x0041eb7d call 0x437410 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041eb82 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041eb87 mov rdi, r12 | 0x0041eb8a call 0x404000 | rax = strlen (r12); 0x0041eb8f mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041eb94 mov rdi, rbp | 0x0041eb97 lea rsi, [rsp + 0x10] | 0x0041eb9c call 0x423e30 | eax = BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rbp, rsp + 0x10); 0x0041eba1 mov r14d, eax | r14d = eax; 0x0041eba4 cmp byte [rsp + 0x340], 0 | | if (*((rsp + 0x340)) != 0) { 0x0041ebac je 0x41ec80 | 0x0041ebb2 test r14d, r14d | | if (r14d != 0) { 0x0041ebb5 je 0x41ec54 | 0x0041ebbb mov edi, 0x6d3df0 | 0x0041ebc0 mov esi, 0x48dcc6 | 0x0041ebc5 mov edx, 4 | 0x0041ebca call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x0041ebcf mov esi, 0x48d80d | 0x0041ebd4 mov edx, 2 | 0x0041ebd9 mov rdi, rax | 0x0041ebdc call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ebe1 mov rdi, rax | rdi = rax; 0x0041ebe4 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ebe8 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ebed mov esi, 0x48d63d | 0x0041ebf2 mov edx, 1 | 0x0041ebf7 mov rdi, rax | 0x0041ebfa call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041ebff mov esi, 0x48dcdb | 0x0041ec04 mov edx, 2 | 0x0041ec09 mov rdi, rax | 0x0041ec0c call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041ec11 mov esi, 0x48d80d | 0x0041ec16 mov edx, 2 | 0x0041ec1b mov rdi, rax | 0x0041ec1e call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ec23 mov rdi, rax | rdi = rax; 0x0041ec26 mov esi, r14d | esi = r14d; 0x0041ec29 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ec2e mov esi, 0x48dae6 | 0x0041ec33 mov edx, 1 | 0x0041ec38 mov rdi, rax | 0x0041ec3b call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041ec40 mov esi, 0x48daa9 | esi = "0 == rc"; 0x0041ec45 mov edi, 1 | edi = 1; 0x0041ec4a mov edx, 0xcc | edx = 0xcc; 0x0041ec4f call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041ec54 mov dword [rsp], 3 | *(rsp) = 3; 0x0041ec5b mov rax, qword [rsp + 0x80] | rax = *((rsp + 0x80)); 0x0041ec63 test rax, rax | | if (rax != 0) { 0x0041ec66 je 0x41ed26 | 0x0041ec6c mov esi, dword [rax + 8] | 0x0041ec6f mov rdi, rsp | 0x0041ec72 call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, *((rax + 8))); 0x0041ec77 jmp 0x41ed33 | | } else { 0x0041ec80 test r14d, r14d | | if (r14d != 0) { 0x0041ec83 jne 0x41f056 | goto label_4; | } 0x0041ec89 mov edi, 0x6d3df0 | 0x0041ec8e mov esi, 0x48dcc6 | 0x0041ec93 mov edx, 4 | 0x0041ec98 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x0041ec9d mov esi, 0x48d80d | 0x0041eca2 mov edx, 2 | 0x0041eca7 mov rdi, rax | 0x0041ecaa call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ecaf mov rdi, rax | rdi = rax; 0x0041ecb2 mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ecb6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ecbb mov esi, 0x48d63d | 0x0041ecc0 mov edx, 1 | 0x0041ecc5 mov rdi, rax | 0x0041ecc8 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041eccd mov esi, 0x48dcdb | 0x0041ecd2 mov edx, 2 | 0x0041ecd7 mov rdi, rax | 0x0041ecda call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dcdb, 2); 0x0041ecdf mov esi, 0x48d80d | 0x0041ece4 mov edx, 2 | 0x0041ece9 mov rdi, rax | 0x0041ecec call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ecf1 mov rdi, rax | rdi = rax; 0x0041ecf4 xor esi, esi | esi = 0; 0x0041ecf6 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ecfb mov esi, 0x48dae6 | 0x0041ed00 mov edx, 1 | 0x0041ed05 mov rdi, rax | 0x0041ed08 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041ed0d mov esi, 0x48dcd6 | esi = "0 != rc"; 0x0041ed12 mov edi, 1 | edi = 1; 0x0041ed17 mov edx, 0xd4 | edx = 0xd4; 0x0041ed1c call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); 0x0041ed21 jmp 0x41f056 | goto label_4; | } 0x0041ed26 mov rdi, rsp | 0x0041ed29 mov esi, 3 | 0x0041ed2e call 0x43a850 | BloombergLP::bdlt::Iso8601UtilConfiguration::setFractionalSecondPrecision(int) (rsp, 3); | } 0x0041ed33 mov rdi, r12 | 0x0041ed36 mov esi, 0x27 | 0x0041ed3b mov rdx, qword [rsp + 0x78] | 0x0041ed40 mov rcx, rsp | 0x0041ed43 call 0x437410 | BloombergLP::bdlt::Iso8601Util::generate(char*,int,BloombergLP::bdlt::Timeconst&,BloombergLP::bdlt::Iso8601UtilConfigurationconst&) (r12, 0x27, *((rsp + 0x78)), rsp); 0x0041ed48 mov qword [rsp + 0x10], r12 | *((rsp + 0x10)) = r12; 0x0041ed4d mov rdi, r12 | 0x0041ed50 call 0x404000 | rax = strlen (r12); 0x0041ed55 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041ed5a lea rdi, [rsp + 0xc8] | 0x0041ed62 lea rsi, [rsp + 0x10] | 0x0041ed67 call 0x423e30 | BloombergLP::baljsn::PrintUtil::printString(std::_1::basic_ostream>&,std::_1::basic_string_view>const&) (rsp + 0xc8, rsp + 0x10); 0x0041ed6c mov rax, qword [rsp + 0xc8] | rax = *((rsp + 0xc8)); 0x0041ed74 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041ed78 cmp dword [rsp + rax + 0xe8], 0 | | if (*((rsp + rax + 0xe8)) != 0) { 0x0041ed80 je 0x41ee1e | 0x0041ed86 mov edi, 0x6d3df0 | 0x0041ed8b mov esi, 0x48dcc6 | 0x0041ed90 mov edx, 4 | 0x0041ed95 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x0041ed9a mov esi, 0x48d80d | 0x0041ed9f mov edx, 2 | 0x0041eda4 mov rdi, rax | 0x0041eda7 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041edac mov rdi, rax | rdi = rax; 0x0041edaf mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041edb3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041edb8 mov esi, 0x48d63d | 0x0041edbd mov edx, 1 | 0x0041edc2 mov rdi, rax | 0x0041edc5 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041edca mov esi, 0x4aa3d2 | 0x0041edcf mov edx, 1 | 0x0041edd4 mov rdi, rax | 0x0041edd7 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041eddc mov esi, 0x48d80d | 0x0041ede1 mov edx, 2 | 0x0041ede6 mov rdi, rax | 0x0041ede9 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041edee mov rdi, rax | rdi = rax; 0x0041edf1 mov esi, ebx | esi = ebx; 0x0041edf3 call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041edf8 mov esi, 0x48dae6 | 0x0041edfd mov edx, 1 | 0x0041ee02 mov rdi, rax | 0x0041ee05 call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041ee0a mov esi, 0x48dccb | esi = "exp.good()"; 0x0041ee0f mov edi, 1 | edi = 1; 0x0041ee14 mov edx, 0xcf | edx = 0xcf; 0x0041ee19 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } 0x0041ee1e mov rdi, r12 | 0x0041ee21 lea rsi, [rsp + 0x1f0] | 0x0041ee29 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041ee2e lea rdi, [rsp + 0x10] | 0x0041ee33 lea rsi, [rsp + 0xd0] | 0x0041ee3b call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rsp + 0x10, rsp + 0xd0); 0x0041ee40 mov rdx, qword [rsp + 0x58] | rdx = *((rsp + 0x58)); 0x0041ee45 cmp rdx, qword [rsp + 0x28] | | if (rdx == *((rsp + 0x28))) { 0x0041ee4a jne 0x41ee90 | 0x0041ee4c test rdx, rdx | | if (rdx != 0) { 0x0041ee4f je 0x41ee9c | 0x0041ee51 cmp qword [rsp + 0x30], 0x17 | 0x0041ee57 lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; | if (*((rsp + 0x30)) != 0x17) { 0x0041ee5c je 0x41ee63 | 0x0041ee5e mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); | } 0x0041ee63 cmp qword [rsp + 0x60], 0x17 | 0x0041ee69 mov rdi, r12 | rdi = r12; | if (*((rsp + 0x60)) != 0x17) { 0x0041ee6c je 0x41ee73 | 0x0041ee6e mov rdi, qword [rsp + 0x40] | rdi = *((rsp + 0x40)); | } 0x0041ee73 call 0x404130 | eax = bcmp (); 0x0041ee78 test eax, eax | 0x0041ee7a sete bpl | bpl = (eax == 0) ? 1 : 0; 0x0041ee7e cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) == 0x17) { 0x0041ee84 jne 0x41eeb0 | 0x0041ee86 jmp 0x41eec0 | | } else { 0x0041ee90 xor ebp, ebp | ebp = 0; 0x0041ee92 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041ee98 jne 0x41eeb0 | goto label_5; | } 0x0041ee9a jmp 0x41eec0 | | } else { 0x0041ee9c mov bpl, 1 | bpl = 1; 0x0041ee9f cmp qword [rsp + 0x30], 0x17 | | } | } | if (*((rsp + 0x30)) == 0x17) { 0x0041eea5 je 0x41eec0 | goto label_6; | } 0x0041eea7 nop word [rax + rax] | | label_5: 0x0041eeb0 mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041eeb5 mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041eeba mov rax, qword [rdi] | rax = *(rdi); 0x0041eebd call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_6: 0x0041eec0 cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041eec6 je 0x41eed8 | 0x0041eec8 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041eecd mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041eed2 mov rax, qword [rdi] | rax = *(rdi); 0x0041eed5 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041eed8 test bpl, bpl | | if (bpl == 0) { 0x0041eedb jne 0x41f056 | 0x0041eee1 mov edi, 0x6d3df0 | 0x0041eee6 mov esi, 0x48dcc6 | 0x0041eeeb mov edx, 4 | 0x0041eef0 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (obj.std::__1::cout, "line", 4); 0x0041eef5 mov esi, 0x48d80d | 0x0041eefa mov edx, 2 | 0x0041eeff mov rdi, rax | 0x0041ef02 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ef07 mov rdi, rax | rdi = rax; 0x0041ef0a mov esi, dword [rsp + 4] | esi = *((rsp + 4)); 0x0041ef0e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ef13 mov esi, 0x48d63d | 0x0041ef18 mov edx, 1 | 0x0041ef1d mov rdi, rax | 0x0041ef20 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041ef25 mov esi, 0x4aa3d2 | 0x0041ef2a mov edx, 1 | 0x0041ef2f mov rdi, rax | 0x0041ef32 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4aa3d2, 1); 0x0041ef37 mov esi, 0x48d80d | 0x0041ef3c mov edx, 2 | 0x0041ef41 mov rdi, rax | 0x0041ef44 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ef49 mov rdi, rax | rdi = rax; 0x0041ef4c mov esi, ebx | esi = ebx; 0x0041ef4e call 0x404220 | rax = std::_1::basic_ostream>::operator << (int) (); 0x0041ef53 mov esi, 0x48d63d | 0x0041ef58 mov edx, 1 | 0x0041ef5d mov rdi, rax | 0x0041ef60 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041ef65 mov esi, 0x48d5f7 | 0x0041ef6a mov edx, 8 | 0x0041ef6f mov rdi, rax | 0x0041ef72 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d5f7, 8); 0x0041ef77 mov esi, 0x48d80d | 0x0041ef7c mov edx, 2 | 0x0041ef81 mov rdi, rax | 0x0041ef84 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041ef89 mov rbx, rax | rbx = rax; 0x0041ef8c mov rdi, r12 | 0x0041ef8f lea rsi, [rsp + 0x1f0] | 0x0041ef97 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (r12, rsp + 0x1f0); 0x0041ef9c mov rdi, rbx | 0x0041ef9f mov rsi, r12 | 0x0041efa2 call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, r12); 0x0041efa7 mov esi, 0x48d63d | 0x0041efac mov edx, 1 | 0x0041efb1 mov rdi, rax | 0x0041efb4 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d63d, 1); 0x0041efb9 mov esi, 0x48d7cd | 0x0041efbe mov edx, 9 | 0x0041efc3 mov rdi, rax | 0x0041efc6 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d7cd, 9); 0x0041efcb mov esi, 0x48d80d | 0x0041efd0 mov edx, 2 | 0x0041efd5 mov rdi, rax | 0x0041efd8 call 0x422b90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48d80d, 2); 0x0041efdd mov rbx, rax | rbx = rax; 0x0041efe0 lea rbp, [rsp + 0x10] | rbp = rsp + 0x10; 0x0041efe5 mov rdi, rbp | 0x0041efe8 lea rsi, [rsp + 0xd0] | 0x0041eff0 call 0x423020 | bsl::basic_stringbuf,bsl::allocator>::str()const (rbp, rsp + 0xd0); 0x0041eff5 mov rdi, rbx | 0x0041eff8 mov rsi, rbp | 0x0041effb call 0x413df0 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rbx, rbp); 0x0041f000 mov esi, 0x48dae6 | 0x0041f005 mov edx, 1 | 0x0041f00a mov rdi, rax | 0x0041f00d call 0x422b90 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x48dae6, 1); 0x0041f012 cmp qword [rsp + 0x30], 0x17 | | if (*((rsp + 0x30)) != 0x17) { 0x0041f018 je 0x41f02a | 0x0041f01a mov rsi, qword [rsp + 0x10] | rsi = *((rsp + 0x10)); 0x0041f01f mov rdi, qword [rsp + 0x38] | rdi = *((rsp + 0x38)); 0x0041f024 mov rax, qword [rdi] | rax = *(rdi); 0x0041f027 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f02a cmp qword [rsp + 0x60], 0x17 | | if (*((rsp + 0x60)) != 0x17) { 0x0041f030 je 0x41f042 | 0x0041f032 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x0041f037 mov rdi, qword [rsp + 0x68] | rdi = *((rsp + 0x68)); 0x0041f03c mov rax, qword [rdi] | rax = *(rdi); 0x0041f03f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f042 mov esi, 0x48d7c1 | esi = "os.str() == exp.str()"; 0x0041f047 mov edi, 1 | edi = 1; 0x0041f04c mov edx, 0xd1 | edx = 0xd1; 0x0041f051 call 0x413d00 | (anonymousnamespace)::aSsErT(bool,char const*,int) (); | } | label_4: 0x0041f056 test r13b, 1 | | if ((r13b & 1) != 0) { 0x0041f05a je 0x41f070 | 0x0041f05c lea rdi, [rsp + 0x88] | 0x0041f064 call 0x423b50 | BloombergLP::baljsn::Formatter::closeObject() (rsp + 0x88); 0x0041f069 jmp 0x41f07f | | } else { 0x0041f070 lea rdi, [rsp + 0x88] | 0x0041f078 xor esi, esi | esi = 0; 0x0041f07a call 0x423ca0 | BloombergLP::baljsn::Formatter::closeArray(bool) (rsp + 0x88); | } 0x0041f07f lea rdi, [rsp + 0xa0] | 0x0041f087 call 0x42a560 | BloombergLP::bdlc::BitArray::~BitArray() (rsp + 0xa0); 0x0041f08c mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041f091 lea rdi, [rsp + 0xc8] | rdi = rsp + 0xc8; 0x0041f099 call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041f09e mov qword [rsp + 0xd0], 0x48def0 | *((rsp + 0xd0)) = vtable.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.0; 0x0041f0aa cmp qword [rsp + 0x130], 0x17 | | if (*((rsp + 0x130)) != 0x17) { 0x0041f0b3 je 0x41f0cb | 0x0041f0b5 mov rsi, qword [rsp + 0x110] | rsi = *((rsp + 0x110)); 0x0041f0bd mov rdi, qword [rsp + 0x138] | rdi = *((rsp + 0x138)); 0x0041f0c5 mov rax, qword [rdi] | rax = *(rdi); 0x0041f0c8 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0041f0cb mov qword [rsp + 0x128], 0xffffffffffffffff | *((rsp + 0x128)) = 0xffffffffffffffff; 0x0041f0d7 lea rdi, [rsp + 0xd0] | rdi = rsp + 0xd0; 0x0041f0df call 0x403ed0 | std::_1::basic_streambuf>::~basic_streambuf() (); 0x0041f0e4 lea rdi, [rsp + 0x150] | rdi = rsp + 0x150; 0x0041f0ec call 0x403e20 | std::_1::basic_ios>::~basic_ios() (); 0x0041f0f1 mov esi, 0x48dda0 | esi = 0x48dda0; 0x0041f0f6 lea rdi, [rsp + 0x1e8] | rdi = rsp + 0x1e8; 0x0041f0fe call 0x4043f0 | std::_1::basic_ostream>::~basic_ostream() (); 0x0041f103 mov qword [rsp + 0x1f0], 0x48def0 | *((rsp + method.bsl::basic_stringbuf_char__std::__1::char_traits_char___bsl::allocator_char___.virtual_0)) = 0x48def0; 0x0041f10f cmp qword [rsp + 0x250], 0x17 | 0x0041f118 lea rbx, [rsp + 0x1f0] | rbx = rsp + 0x1f0; 0x0041f120 je 0x41e890 | | } 0x0041f126 mov rsi, qword [rsp + 0x230] | rsi = *((rsp + 0x230)); 0x0041f12e mov rdi, qword [rsp + 0x258] | rdi = *((rsp + 0x258)); 0x0041f136 mov rax, qword [rdi] | rax = *(rdi); 0x0041f139 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041f13c jmp 0x41e890 | goto label_0; | label_1: 0x0041f141 add rsp, 0x308 | 0x0041f148 pop rbx | 0x0041f149 pop r12 | 0x0041f14b pop r13 | 0x0041f14d pop r14 | 0x0041f14f pop r15 | 0x0041f151 pop rbp | 0x0041f152 ret | return rax; | }