; assembly | /* r2dec pseudo code output */ | /* ball_administration.t/assume @ 0x41dcf0 */ | #include | ; (fcn) method.void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_int__long_long__bsl::basic_string_char__std::__1::char_traits_char___bsl::allocator_char_______::doApply_BloombergLP::bdlb.Variant_PrintVisitor_const__BloombergLP::bdlb::Variant_Prin () | uint64_t method_void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_int_long_long_bsl::basic_string_char_std::_1::char_traits_char_bsl::allocator_char_::doApply_BloombergLP::bdlb_Variant_PrintVisitor_const_BloombergLP::bdlb::Variant_Prin (uint32_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_dh; | int64_t var_eh; | int64_t var_fh; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdlb::VariantImp, bsl::allocator > > >::doApply(BloombergLP::bdlb::Variant_PrintVisitor const&, int) const */ 0x0041dcf0 push rbp | 0x0041dcf1 push r14 | 0x0041dcf3 push rbx | 0x0041dcf4 sub rsp, 0x10 | 0x0041dcf8 lea eax, [rdx - 4] | eax = rdx - 4; 0x0041dcfb cmp eax, 0x11 | 0x0041dcfe jae 0x41dd09 | | while ((*((r14 + rax + 0x20)) & 1) != 0) { | label_0: 0x0041dd00 add rsp, 0x10 | 0x0041dd04 pop rbx | 0x0041dd05 pop r14 | 0x0041dd07 pop rbp | 0x0041dd08 ret | return eax; 0x0041dd09 mov rbx, rdi | rbx = rdi; 0x0041dd0c cmp edx, 3 | | if (edx == 3) { 0x0041dd0f je 0x41dd5a | goto label_1; | } 0x0041dd11 cmp edx, 2 | | if (edx != 2) { 0x0041dd14 jne 0x41dd9b | goto label_2; | } 0x0041dd1a mov r14, qword [rsi] | r14 = *(rsi); 0x0041dd1d mov rax, qword [r14] | rax = *(r14); 0x0041dd20 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041dd24 test byte [r14 + rax + 0x20], 1 | 0x0041dd2a jne 0x41dd00 | | } 0x0041dd2c mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x0041dd2f mov esi, dword [rsi + 8] | 0x0041dd32 mov rdi, r14 | 0x0041dd35 mov edx, ebp | edx = ebp; 0x0041dd37 call 0x4246b0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r14, *((rsi + 8))); 0x0041dd3c mov rsi, qword [rbx] | rsi = *(rbx); 0x0041dd3f mov rdi, r14 | rdi = r14; 0x0041dd42 call 0x405460 | std::_1::basic_ostream>::operator << (long long) (); 0x0041dd47 test ebp, ebp | | if (ebp < 0) { 0x0041dd49 js 0x41dd00 | goto label_0; | } 0x0041dd4b mov byte [rsp + 0xe], 0xa | *((rsp + 0xe)) = 0xa; 0x0041dd50 lea rsi, [rsp + 0xe] | rsi = rsp + 0xe; 0x0041dd55 jmp 0x41dddd | goto label_3; | label_1: 0x0041dd5a mov r14, qword [rsi] | r14 = *(rsi); 0x0041dd5d mov rax, qword [r14] | rax = *(r14); 0x0041dd60 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041dd64 test byte [r14 + rax + 0x20], 1 | | if ((*((r14 + rax + 0x20)) & 1) != 0) { 0x0041dd6a jne 0x41dd00 | goto label_0; | } 0x0041dd6c mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x0041dd6f mov esi, dword [rsi + 8] | 0x0041dd72 mov rdi, r14 | 0x0041dd75 mov edx, ebp | edx = ebp; 0x0041dd77 call 0x4246b0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r14, *((rsi + 8))); 0x0041dd7c mov rdi, r14 | 0x0041dd7f mov rsi, rbx | 0x0041dd82 call 0x409290 | std::_1::basic_ostream>&bsl::operator << ,bsl::allocator>(std::_1::basic_ostream>&,bsl::basic_string,bsl::allocator>const&) (r14, rbx); 0x0041dd87 test ebp, ebp | | if (ebp < 0) { 0x0041dd89 js 0x41dd00 | goto label_0; | } 0x0041dd8f mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x0041dd94 lea rsi, [rsp + 0xf] | rsi = rsp + 0xf; 0x0041dd99 jmp 0x41dddd | goto label_3; | label_2: 0x0041dd9b mov r14, qword [rsi] | r14 = *(rsi); 0x0041dd9e mov rax, qword [r14] | rax = *(r14); 0x0041dda1 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0041dda5 test byte [r14 + rax + 0x20], 1 | | if ((*((r14 + rax + 0x20)) & 1) != 0) { 0x0041ddab jne 0x41dd00 | goto label_0; | } 0x0041ddb1 mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x0041ddb4 mov esi, dword [rsi + 8] | 0x0041ddb7 mov rdi, r14 | 0x0041ddba mov edx, ebp | edx = ebp; 0x0041ddbc call 0x4246b0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r14, *((rsi + 8))); 0x0041ddc1 mov esi, dword [rbx] | esi = *(rbx); 0x0041ddc3 mov rdi, r14 | rdi = r14; 0x0041ddc6 call 0x405300 | std::_1::basic_ostream>::operator << (int) (); 0x0041ddcb test ebp, ebp | | if (ebp < 0) { 0x0041ddcd js 0x41dd00 | goto label_0; | } 0x0041ddd3 mov byte [rsp + 0xd], 0xa | *((rsp + 0xd)) = 0xa; 0x0041ddd8 lea rsi, [rsp + 0xd] | | label_3: 0x0041dddd mov edx, 1 | 0x0041dde2 mov rdi, r14 | 0x0041dde5 call 0x409c70 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r14, rsp + 0xd, 1); 0x0041ddea jmp 0x41dd00 | goto label_0; | }