; assembly | /* r2dec pseudo code output */ | /* balcl_commandline.t/assume @ 0x46dab0 */ | #include | ; (fcn) method.BloombergLP::balcl._anonymous_namespace_::u::ArrayConstraint_char__bsl::function_bool__char_const__std::__1::basic_ostream_char__std::__1::char_traits_char_______10_::parse_BloombergLP::balcl::OptionValue__std::__1::basic_ostream_char__std::__1 () | int64_t method_BloombergLP::balcl_anonymous_namespace_::u::ArrayConstraint_char_bsl::function_bool_char_const_std::_1::basic_ostream_char_std::_1::char_traits_char_10_::parse_BloombergLP::balcl::OptionValue_std::_1::basic_ostream_char_std::_1 (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_fh; | int64_t var_10h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balcl::(anonymous namespace)::u::ArrayConstraint >&)>, 10>::parse(BloombergLP::balcl::OptionValue*, std::__1::basic_ostream >&, bsl::basic_string, bsl::allocator > const&) const */ 0x0046dab0 push r15 | 0x0046dab2 push r14 | 0x0046dab4 push r12 | 0x0046dab6 push rbx | 0x0046dab7 sub rsp, 0x38 | 0x0046dabb mov rbx, rcx | rbx = rcx; 0x0046dabe mov r15, rdx | r15 = rdx; 0x0046dac1 mov r14, rsi | r14 = rsi; 0x0046dac4 mov r12, rdi | r12 = rdi; 0x0046dac7 mov rdi, rsi | 0x0046daca call 0x465e70 | BloombergLP::balcl::OptionValue::type()const (rsi); 0x0046dacf cmp qword [rbx + 0x20], 0x17 | 0x0046dad4 mov rax, rbx | rax = rbx; | if (*((rbx + 0x20)) != 0x17) { 0x0046dad7 je 0x46dadc | 0x0046dad9 mov rax, qword [rbx] | rax = *(rbx); | } 0x0046dadc mov cl, byte [rax] | cl = *(rax); 0x0046dade mov byte [rsp + 0xf], cl | *((rsp + 0xf)) = cl; 0x0046dae2 cmp byte [rax], 0 | | if (*(rax) != 0) { 0x0046dae5 je 0x46db25 | 0x0046dae7 mov rax, qword [r12 + 0x50] | rax = *((r12 + 0x50)); 0x0046daec test rax, rax | | if (rax != 0) { 0x0046daef je 0x46db06 | 0x0046daf1 add r12, 0x10 | r12 += 0x10; 0x0046daf5 lea rsi, [rsp + 0xf] | rsi = rsp + 0xf; 0x0046dafa mov rdi, r12 | rdi = r12; 0x0046dafd mov rdx, r15 | rdx = r15; 0x0046db00 call rax | al = void (*rax)() (); 0x0046db02 test al, al | | if (al == 0) { 0x0046db04 je 0x46db85 | goto label_0; | } | } 0x0046db06 mov eax, dword [r14 + 0x40] | eax = *((r14 + 0x40)); 0x0046db0a dec eax | eax--; 0x0046db0c jmp qword [rax*8 + 0x4b01b0] | | } 0x0046db25 mov esi, 0x4b3c7f | 0x0046db2a mov edx, 8 | 0x0046db2f mov rdi, r15 | 0x0046db32 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r15, "A 'char', 8); 0x0046db37 mov esi, 0x4b3c5d | 0x0046db3c mov edx, 0x21 | 0x0046db41 mov rdi, rax | 0x0046db44 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, " value was expected, instead of \", 0x21); 0x0046db49 mov rdi, rax | 0x0046db4c mov rsi, rbx | 0x0046db4f call 0x44fd10 | rax = std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (rax, rbx); 0x0046db54 mov esi, 0x4afd15 | 0x0046db59 mov edx, 1 | 0x0046db5e mov rdi, rax | 0x0046db61 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x4afd15, 1); 0x0046db66 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0046db6b lea rsi, [rsp + 0x10] | 0x0046db70 mov edx, 1 | 0x0046db75 mov rdi, rax | 0x0046db78 call 0x455a90 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 0x10, 1); 0x0046db7d mov rdi, rax | rdi = rax; 0x0046db80 call 0x404980 | eax = std::_1::basic_ostream>::flush() (); | label_0: 0x0046db85 xor eax, eax | eax = 0; 0x0046db87 jmp 0x46dc68 | 0x0046dc68 add rsp, 0x38 | 0x0046dc6c pop rbx | 0x0046dc6d pop r12 | 0x0046dc6f pop r14 | 0x0046dc71 pop r15 | 0x0046dc73 ret | return rax; | }