; assembly | /* r2dec pseudo code output */ | /* balber_berdecoder.t/assume @ 0x446f70 */ | #include | ; (fcn) method.void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_BloombergLP::bdlt::Date__BloombergLP::bdlt::DateTz___::doApply_BloombergLP::bdlb.Variant_PrintVisitor_const__BloombergLP::bdlb::Variant_PrintVisitor_const__int__const () | uint64_t method_void_BloombergLP::bdlb::VariantImp_BloombergLP::bslmf::TypeList_BloombergLP::bdlt::Date_BloombergLP::bdlt::DateTz_::doApply_BloombergLP::bdlb_Variant_PrintVisitor_const_BloombergLP::bdlb::Variant_PrintVisitor_const_int_const (uint32_t arg3, uint32_t arg2, uint32_t arg1) { | int64_t var_eh; | int64_t var_fh; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdlb::VariantImp >::doApply(BloombergLP::bdlb::Variant_PrintVisitor const&, int) const */ 0x00446f70 push rbp | 0x00446f71 push r14 | 0x00446f73 push rbx | 0x00446f74 sub rsp, 0x10 | 0x00446f78 lea eax, [rdx - 3] | eax = rdx - 3; 0x00446f7b cmp eax, 0x12 | 0x00446f7e jae 0x446f89 | | while ((*((r14 + rax + 0x20)) & 1) != 0) { | label_0: 0x00446f80 add rsp, 0x10 | 0x00446f84 pop rbx | 0x00446f85 pop r14 | 0x00446f87 pop rbp | 0x00446f88 ret | return eax; 0x00446f89 mov rbx, rdi | rbx = rdi; 0x00446f8c cmp edx, 2 | | if (edx != 2) { 0x00446f8f jne 0x446fd5 | goto label_1; | } 0x00446f91 mov r14, qword [rsi] | r14 = *(rsi); 0x00446f94 mov rax, qword [r14] | rax = *(r14); 0x00446f97 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00446f9b test byte [r14 + rax + 0x20], 1 | 0x00446fa1 jne 0x446f80 | | } 0x00446fa3 mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x00446fa6 mov esi, dword [rsi + 8] | 0x00446fa9 mov rdi, r14 | 0x00446fac mov edx, ebp | edx = ebp; 0x00446fae call 0x461030 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r14, *((rsi + 8))); 0x00446fb3 mov rdi, rbx | 0x00446fb6 mov rsi, r14 | 0x00446fb9 xor edx, edx | 0x00446fbb mov ecx, 0xffffffff | 0x00446fc0 call 0x464dc0 | BloombergLP::bdlt::DateTz::print(std::_1::basic_ostream>&,int,int)const (rbx, r14, 0, 0xffffffff); 0x00446fc5 test ebp, ebp | | if (ebp < 0) { 0x00446fc7 js 0x446f80 | goto label_0; | } 0x00446fc9 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00446fce lea rsi, [rsp + 0xf] | rsi = rsp + 0xf; 0x00446fd3 jmp 0x44701b | goto label_2; | label_1: 0x00446fd5 mov r14, qword [rsi] | r14 = *(rsi); 0x00446fd8 mov rax, qword [r14] | rax = *(r14); 0x00446fdb mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00446fdf test byte [r14 + rax + 0x20], 1 | | if ((*((r14 + rax + 0x20)) & 1) != 0) { 0x00446fe5 jne 0x446f80 | goto label_0; | } 0x00446fe7 mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x00446fea mov esi, dword [rsi + 8] | 0x00446fed mov rdi, r14 | 0x00446ff0 mov edx, ebp | edx = ebp; 0x00446ff2 call 0x461030 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r14, *((rsi + 8))); 0x00446ff7 mov rdi, rbx | 0x00446ffa mov rsi, r14 | 0x00446ffd xor edx, edx | 0x00446fff mov ecx, 0xffffffff | 0x00447004 call 0x463d00 | BloombergLP::bdlt::Date::print(std::_1::basic_ostream>&,int,int)const (rbx, r14, 0, 0xffffffff); 0x00447009 test ebp, ebp | | if (ebp < 0) { 0x0044700b js 0x446f80 | goto label_0; | } 0x00447011 mov byte [rsp + 0xe], 0xa | *((rsp + 0xe)) = 0xa; 0x00447016 lea rsi, [rsp + 0xe] | | label_2: 0x0044701b mov edx, 1 | 0x00447020 mov rdi, r14 | 0x00447023 call 0x445120 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r14, rsp + 0xe, 1); 0x00447028 jmp 0x446f80 | goto label_0; | }