; assembly | /* r2dec pseudo code output */ | /* balber_berdecoder.t/none @ 0x446e70 */ | #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 () | int64_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 */ 0x00446e70 push rbp | 0x00446e71 push r14 | 0x00446e73 push rbx | 0x00446e74 sub rsp, 0x10 | 0x00446e78 mov r14, rdi | r14 = rdi; 0x00446e7b cmp edx, 2 | | if (edx != 2) { 0x00446e7e je 0x446ed0 | 0x00446e80 cmp edx, 1 | | if (edx != 1) { 0x00446e83 jne 0x446f1e | goto label_0; | } 0x00446e89 mov rbx, qword [rsi] | rbx = *(rsi); 0x00446e8c mov rax, qword [rbx] | rax = *(rbx); 0x00446e8f mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00446e93 test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x00446e98 jne 0x446f1e | goto label_0; | } 0x00446e9e mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x00446ea1 mov esi, dword [rsi + 8] | 0x00446ea4 mov rdi, rbx | 0x00446ea7 mov edx, ebp | edx = ebp; 0x00446ea9 call 0x460f00 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((rsi + 8))); 0x00446eae mov rdi, r14 | 0x00446eb1 mov rsi, rbx | 0x00446eb4 xor edx, edx | 0x00446eb6 mov ecx, 0xffffffff | 0x00446ebb call 0x463c60 | BloombergLP::bdlt::Date::print(std::_1::basic_ostream>&,int,int)const (r14, rbx, 0, 0xffffffff); 0x00446ec0 test ebp, ebp | | if (ebp < 0) { 0x00446ec2 js 0x446f1e | goto label_0; | } 0x00446ec4 mov byte [rsp + 0xe], 0xa | *((rsp + 0xe)) = 0xa; 0x00446ec9 lea rsi, [rsp + 0xe] | rsi = rsp + 0xe; 0x00446ece jmp 0x446f11 | | } else { 0x00446ed0 mov rbx, qword [rsi] | rbx = *(rsi); 0x00446ed3 mov rax, qword [rbx] | rax = *(rbx); 0x00446ed6 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00446eda test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x00446edf jne 0x446f1e | goto label_0; | } 0x00446ee1 mov ebp, dword [rsi + 0xc] | ebp = *((rsi + 0xc)); 0x00446ee4 mov esi, dword [rsi + 8] | 0x00446ee7 mov rdi, rbx | 0x00446eea mov edx, ebp | edx = ebp; 0x00446eec call 0x460f00 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((rsi + 8))); 0x00446ef1 mov rdi, r14 | 0x00446ef4 mov rsi, rbx | 0x00446ef7 xor edx, edx | 0x00446ef9 mov ecx, 0xffffffff | 0x00446efe call 0x464d20 | BloombergLP::bdlt::DateTz::print(std::_1::basic_ostream>&,int,int)const (r14, rbx, 0, 0xffffffff); 0x00446f03 test ebp, ebp | | if (ebp < 0) { 0x00446f05 js 0x446f1e | goto label_0; | } 0x00446f07 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00446f0c lea rsi, [rsp + 0xf] | | } 0x00446f11 mov edx, 1 | 0x00446f16 mov rdi, rbx | 0x00446f19 call 0x445090 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xf, 1); | label_0: 0x00446f1e add rsp, 0x10 | 0x00446f22 pop rbx | 0x00446f23 pop r14 | 0x00446f25 pop rbp | 0x00446f26 ret | return rax; | }