; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/assume @ 0x478d80 */ | #include | ; (fcn) method.BloombergLP::balxml::Decoder_PushParserContext_bsl::basic_string_char__std::__1::char_traits_char___bsl::allocator_char_____BloombergLP::balxml::Base64Parser_bsl::basic_string_char__std::__1::char_traits_char___bsl::allocator_char_______.addCharac () | uint64_t method_BloombergLP::balxml::Decoder_PushParserContext_bsl::basic_string_char_std::_1::char_traits_char_bsl::allocator_char_BloombergLP::balxml::Base64Parser_bsl::basic_string_char_std::_1::char_traits_char_bsl::allocator_char_addCharac (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_14h; | int64_t var_18h; | int64_t var_100h; | int64_t var_108h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balxml::Decoder_PushParserContext, bsl::allocator >, BloombergLP::balxml::Base64Parser, bsl::allocator > > >::addCharacters(char const*, unsigned long, BloombergLP::balxml::Decoder*) */ 0x00478d80 push r15 | 0x00478d82 push r14 | 0x00478d84 push rbx | 0x00478d85 sub rsp, 0x110 | 0x00478d8c mov r14, rcx | r14 = rcx; 0x00478d8f mov rbx, rsi | rbx = rsi; 0x00478d92 lea r9, [rdx + rsi] | 0x00478d96 mov rsi, qword [rdi + 0x30] | 0x00478d9a add rdi, 0x18 | rdi += 0x18; 0x00478d9e mov dword [rsp], 0xffffffff | *(rsp) = 0xffffffff; 0x00478da5 lea rdx, [rsp + 0x18] | 0x00478daa lea rcx, [rsp + 0x14] | 0x00478daf mov r8, rbx | 0x00478db2 call 0x478f60 | eax = intBloombergLP::bdlde::Base64Decoder::convert,bsl::allocator>>,char const*>(std::_1::back_insert_iterator,bsl::allocator>>,int*,int*,char const*,char const*,int) (rdi, *((rdi + 0x30)), rsp + 0x18, rsp + 0x14, rbx, rdx + rsi); 0x00478db7 test eax, eax | | if (eax >= 0) { 0x00478db9 js 0x478dc2 | 0x00478dbb xor eax, eax | eax = 0; 0x00478dbd jmp 0x478e4f | | } else { 0x00478dc2 mov rsi, qword [r14 + 0x2d0] | 0x00478dc9 lea r15, [rsp + 0x18] | r15 = rsp + 0x18; 0x00478dce mov rdi, r15 | 0x00478dd1 call 0x418b40 | BloombergLP::balxml::Decoder::MemOutStream::MemOutStream(BloombergLP::bslma::Allocator*) (r15, *((r14 + 0x2d0))); 0x00478dd6 mov dword [rsp + 0x100], 2 | *((rsp + 0x100)) = 2; 0x00478de1 mov qword [rsp + 0x108], r14 | *((rsp + 0x108)) = r14; 0x00478de9 mov esi, 0x612d05 | 0x00478dee mov edx, 0x10 | 0x00478df3 mov rdi, r15 | 0x00478df6 call 0x417b30 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r15, "Unable to push \", 0x10); 0x00478dfb mov r14, rax | r14 = rax; 0x00478dfe mov rdi, rbx | 0x00478e01 call 0x405eb0 | rax = strlen (rbx); 0x00478e06 mov rdi, r14 | 0x00478e09 mov rsi, rbx | 0x00478e0c mov rdx, rax | 0x00478e0f call 0x417b30 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r14, rbx, rax); 0x00478e14 mov esi, 0x612c27 | 0x00478e19 mov edx, 0x22 | 0x00478e1e mov rdi, rax | 0x00478e21 call 0x417b30 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, "\" when parsing list or binary type", 0x22); 0x00478e26 mov esi, 0x612c12 | 0x00478e2b mov edx, 2 | 0x00478e30 mov rdi, rax | 0x00478e33 call 0x417b30 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x612c12, 2); 0x00478e38 mov rdi, rax | rdi = rax; 0x00478e3b call 0x406230 | std::_1::basic_ostream>::flush() (); 0x00478e40 lea rdi, [rsp + 0x18] | 0x00478e45 call 0x4788d0 | BloombergLP::balxml::Decoder_ErrorLogger::~Decoder_ErrorLogger() (rsp + 0x18); 0x00478e4a mov eax, 0xffffffff | eax = 0xffffffff; | } 0x00478e4f add rsp, 0x110 | 0x00478e56 pop rbx | 0x00478e57 pop r14 | 0x00478e59 pop r15 | 0x00478e5b ret | return rax; | }