; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/none @ 0x44add0 */ | #include | ; (fcn) method.void_BloombergLP::bdld::Datum::apply_BloombergLP::bdld._anonymous_namespace_::Datum_StreamVisitor__BloombergLP::bdld::_anonymous_namespace_::Datum_StreamVisitor__const () | uint64_t method_void_BloombergLP::bdld::Datum::apply_BloombergLP::bdld_anonymous_namespace_::Datum_StreamVisitor_BloombergLP::bdld::_anonymous_namespace_::Datum_StreamVisitor_const (int64_t arg2, int64_t arg1) { | int64_t var_fh; | char * var_10h; | char * var_18h; | int64_t var_20h; | int64_t var_21h; | char * var_28h; | int64_t var_30h; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bdld::Datum::apply(BloombergLP::bdld::(anonymous namespace)::Datum_StreamVisitor&) const */ 0x0044add0 push rbp | 0x0044add1 push r15 | 0x0044add3 push r14 | 0x0044add5 push rbx | 0x0044add6 sub rsp, 0x38 | 0x0044adda movsx eax, word [rdi + 0xe] | eax = *((rdi + 0xe)); 0x0044adde lea ecx, [rax - 1] | ecx = rax - 1; 0x0044ade1 cmp ecx, 0x17 | | if (ecx > 0x17) { 0x0044ade4 ja 0x44b3b8 | goto label_1; | } 0x0044adea mov r14, rsi | r14 = rsi; 0x0044aded mov rbx, rdi | rbx = rdi; | /* switch table (24 cases) at 0x4d50d8 */ 0x0044adf0 jmp qword [rcx*8 + 0x4d50d8] | 0x0044adf7 mov rsi, qword [rbx] | rsi = *(rbx); 0x0044adfa test rsi, rsi | | if (rsi == 0) { 0x0044adfd je 0x44b2d1 | goto label_2; | } 0x0044ae03 lea rax, [rsi + 0x20] | rax = rsi + 0x20; 0x0044ae07 mov rcx, qword [rsi] | rcx = *(rsi); 0x0044ae0a mov dl, byte [rsi + 8] | dl = *((rsi + 8)); 0x0044ae0d cmp byte [rsi + 9], 0 | 0x0044ae11 setne bl | bl = (*((rsi + 9)) != 0) ? 1 : 0; 0x0044ae14 test rcx, rcx | 0x0044ae17 setne sil | sil = (rcx != 0) ? 1 : 0; 0x0044ae1b and sil, bl | sil &= bl; 0x0044ae1e jmp 0x44b2d9 | goto label_3; 0x0044ae23 mov rax, qword [rbx] | rax = *(rbx); 0x0044ae26 movsxd rcx, dword [rbx + 8] | rcx = *((rbx + 8)); 0x0044ae2a mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044ae2f mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0044ae34 jmp 0x44af75 | goto label_4; 0x0044ae39 cmp ax, 0x13 | | if (ax != 0x13) { 0x0044ae3d jne 0x44b28a | goto label_5; | } 0x0044ae43 mov eax, dword [rbx] | eax = *(rbx); 0x0044ae45 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0044ae48 movups xmmword [rsp + 0x18], xmm0 | __asm ("movups xmmword [rsp + 0x18], xmm0"); 0x0044ae4d jmp 0x44b2a1 | goto label_6; 0x0044ae52 cmp eax, 0x16 | | if (eax == 0x16) { 0x0044ae55 je 0x44b318 | goto label_7; | } 0x0044ae5b xor ecx, ecx | ecx = 0; 0x0044ae5d mov edx, 0 | edx = 0; 0x0044ae62 cmp eax, 0x15 | | if (eax != 0x15) { 0x0044ae65 jne 0x44b31f | goto label_8; | } 0x0044ae6b movsx rdx, byte [rbx + 0xd] | rdx = *((rbx + 0xd)); 0x0044ae70 mov rcx, rbx | rcx = rbx; 0x0044ae73 jmp 0x44b31f | goto label_8; 0x0044ae78 mov rbx, qword [r14] | rbx = *(r14); 0x0044ae7b mov rax, qword [rbx] | rax = *(rbx); 0x0044ae7e mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044ae82 test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x0044ae87 jne 0x44b3b8 | goto label_1; | } 0x0044ae8d mov esi, dword [r14 + 8] | 0x0044ae91 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044ae95 mov rdi, rbx | 0x0044ae98 mov edx, ebp | edx = ebp; 0x0044ae9a call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((r14 + 8))); 0x0044ae9f movsd xmm0, qword [rip + 0x87f89] | xmm0 = *(0x004d2e30); 0x0044aea7 mov rdi, rbx | rdi = rbx; 0x0044aeaa call 0x404bc0 | std::_1::basic_ostream>::operator << (double) (); 0x0044aeaf test ebp, ebp | | if (ebp < 0) { 0x0044aeb1 js 0x44b3b8 | goto label_1; | } 0x0044aeb7 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0044aebc lea rsi, [rsp + 0x10] | rsi = rsp + 0x10; 0x0044aec1 jmp 0x44b0ef | goto label_9; 0x0044aec6 mov rdi, qword [r14] | rdi = *(r14); 0x0044aec9 mov rax, qword [rdi] | rax = *(rdi); 0x0044aecc mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044aed0 test byte [rdi + rax + 0x20], 1 | | if ((*((rdi + rax + 0x20)) & 1) != 0) { 0x0044aed5 jne 0x44b3b8 | goto label_1; | } 0x0044aedb mov esi, dword [r14 + 8] | 0x0044aedf mov edx, dword [r14 + 0xc] | edx = *((r14 + 0xc)); 0x0044aee3 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rdi, *((r14 + 8))); 0x0044aee8 mov rdi, qword [r14] | rdi = *(r14); 0x0044aeeb mov esi, 0x4d5326 | esi = 0x4d5326; 0x0044aef0 mov edx, 3 | edx = 3; 0x0044aef5 jmp 0x44af38 | goto label_10; 0x0044aef7 mov rdi, qword [r14] | rdi = *(r14); 0x0044aefa mov rax, qword [rdi] | rax = *(rdi); 0x0044aefd mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044af01 test byte [rdi + rax + 0x20], 1 | | if ((*((rdi + rax + 0x20)) & 1) != 0) { 0x0044af06 jne 0x44b3b8 | goto label_1; | } 0x0044af0c mov ebx, dword [rbx + 8] | ebx = *((rbx + 8)); 0x0044af0f mov esi, dword [r14 + 8] | 0x0044af13 mov edx, dword [r14 + 0xc] | edx = *((r14 + 0xc)); 0x0044af17 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rdi, *((r14 + 8))); 0x0044af1c xor edx, edx | edx = 0; 0x0044af1e test ebx, ebx | 0x0044af20 sete dl | dl = (ebx == 0) ? 1 : 0; 0x0044af23 mov rdi, qword [r14] | rdi = *(r14); 0x0044af26 mov eax, 0x4d1bc9 | eax = 0x4d1bc9; 0x0044af2b mov esi, 0x4cff1f | esi = 0x4cff1f; | if (ebx == 0) { 0x0044af30 cmove rsi, rax | rsi = rax; | } 0x0044af34 or rdx, 4 | rdx |= 4; | label_10: 0x0044af38 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rdi, rsi, rdx); 0x0044af3d cmp dword [r14 + 0xc], 0 | | if (*((r14 + 0xc)) < 0) { 0x0044af42 js 0x44b3b8 | goto label_1; | } 0x0044af48 mov rdi, qword [r14] | 0x0044af4b mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0044af50 lea rsi, [rsp + 0x10] | 0x0044af55 mov edx, 1 | 0x0044af5a call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(r14), rsp + 0x10, 1); 0x0044af5f jmp 0x44b3b8 | goto label_1; 0x0044af64 movsx rax, byte [rbx] | rax = *(rbx); 0x0044af68 inc rbx | rbx++; 0x0044af6b mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0044af70 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; | label_4: 0x0044af75 lea rsi, [rsp + 0x10] | 0x0044af7a mov rdi, r14 | 0x0044af7d call 0x44c8f0 | BloombergLP::bdld::(anonymousnamespace)::Datum_StreamVisitor::operator()(BloombergLP::bslstl::StringRefImpconst&)const (r14, rsp + 0x10); 0x0044af82 jmp 0x44b3b8 | goto label_1; 0x0044af87 mov eax, dword [rbx] | eax = *(rbx); 0x0044af89 mov dword [rsp + 0x10], eax | *((rsp + 0x10)) = eax; 0x0044af8d mov rbx, qword [r14] | rbx = *(r14); 0x0044af90 mov rax, qword [rbx] | rax = *(rbx); 0x0044af93 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044af97 test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x0044af9c jne 0x44b3b8 | goto label_1; | } 0x0044afa2 mov esi, dword [r14 + 8] | 0x0044afa6 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044afaa mov rdi, rbx | 0x0044afad mov edx, ebp | edx = ebp; 0x0044afaf call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((r14 + 8))); 0x0044afb4 lea rdi, [rsp + 0x10] | 0x0044afb9 mov rsi, rbx | 0x0044afbc xor edx, edx | 0x0044afbe mov ecx, 0xffffffff | 0x0044afc3 call 0x45e640 | BloombergLP::bdlt::Date::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rbx, 0, 0xffffffff); 0x0044afc8 jmp 0x44b0dd | goto label_11; 0x0044afcd movabs rbp, 0x4000000000 | 0x0044afd7 mov rax, qword [rbx] | rax = *(rbx); 0x0044afda mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044afdf cmp rax, rbp | | if (rax < rbp) { 0x0044afe2 jl 0x44b3c3 | goto label_12; | } 0x0044afe8 movabs rcx, 0xffffffbfffffffff | rcx = 0xffffffbfffffffff; 0x0044aff2 and rax, rcx | rax &= rcx; | do { 0x0044aff5 or rax, rbp | rax |= rbp; 0x0044aff8 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044affd mov rbx, qword [r14] | rbx = *(r14); 0x0044b000 mov rax, qword [rbx] | rax = *(rbx); 0x0044b003 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b007 test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) == 0) { 0x0044b00c jne 0x44b3b8 | 0x0044b012 mov esi, dword [r14 + 8] | 0x0044b016 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b01a mov rdi, rbx | 0x0044b01d mov edx, ebp | edx = ebp; 0x0044b01f call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((r14 + 8))); 0x0044b024 lea rdi, [rsp + 0x10] | 0x0044b029 mov rsi, rbx | 0x0044b02c xor edx, edx | 0x0044b02e mov ecx, 0xffffffff | 0x0044b033 call 0x465500 | BloombergLP::bdlt::Time::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rbx, 0, 0xffffffff); 0x0044b038 jmp 0x44b0dd | goto label_11; 0x0044b03d mov rbx, qword [rbx] | rbx = *(rbx); 0x0044b040 test rbx, rbx | | if (rbx >= 0) { 0x0044b043 jns 0x44b3d2 | goto label_13; | } | label_0: 0x0044b049 mov qword [rsp + 0x10], rbx | *((rsp + 0x10)) = rbx; 0x0044b04e mov rbx, qword [r14] | rbx = *(r14); 0x0044b051 mov rax, qword [rbx] | rax = *(rbx); 0x0044b054 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b058 test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x0044b05d jne 0x44b3b8 | goto label_1; | } 0x0044b063 mov esi, dword [r14 + 8] | 0x0044b067 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b06b mov rdi, rbx | 0x0044b06e mov edx, ebp | edx = ebp; 0x0044b070 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((r14 + 8))); 0x0044b075 lea rsi, [rsp + 0x10] | 0x0044b07a mov rdi, rbx | 0x0044b07d call 0x45eb70 | BloombergLP::bdlt::operator << (std::_1::basic_ostream>&,BloombergLP::bdlt::Datetimeconst&) (rbx, rsp + 0x10); 0x0044b082 jmp 0x44b0dd | goto label_11; 0x0044b084 mov esi, dword [rbx + 8] | 0x0044b087 mov rax, qword [rbx] | rax = *(rbx); 0x0044b08a mov qword [rsp], rax | *(rsp) = rax; 0x0044b08e lea rdi, [rsp + 0x10] | 0x0044b093 xor edx, edx | 0x0044b095 xor ecx, ecx | 0x0044b097 xor r8d, r8d | 0x0044b09a xor r9d, r9d | 0x0044b09d call 0x45ee70 | BloombergLP::bdlt::DatetimeInterval::setInterval(int,long long,long long,long long,long long,long long) (rsp + 0x10, *((rbx + 8)), 0, 0, 0, 0); 0x0044b0a2 mov rbx, qword [r14] | rbx = *(r14); 0x0044b0a5 mov rax, qword [rbx] | rax = *(rbx); 0x0044b0a8 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b0ac test byte [rbx + rax + 0x20], 1 | | if ((*((rbx + rax + 0x20)) & 1) != 0) { 0x0044b0b1 jne 0x44b3b8 | goto label_1; | } 0x0044b0b7 mov esi, dword [r14 + 8] | 0x0044b0bb mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b0bf mov rdi, rbx | 0x0044b0c2 mov edx, ebp | edx = ebp; 0x0044b0c4 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, *((r14 + 8))); 0x0044b0c9 lea rdi, [rsp + 0x10] | 0x0044b0ce mov rsi, rbx | 0x0044b0d1 xor edx, edx | 0x0044b0d3 mov ecx, 0xffffffff | 0x0044b0d8 call 0x45f250 | BloombergLP::bdlt::DatetimeInterval::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rbx, 0, 0xffffffff); | label_11: 0x0044b0dd test ebp, ebp | | if (ebp < 0) { 0x0044b0df js 0x44b3b8 | goto label_1; | } 0x0044b0e5 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x0044b0ea lea rsi, [rsp + 0xf] | | label_9: 0x0044b0ef mov edx, 1 | 0x0044b0f4 mov rdi, rbx | 0x0044b0f7 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xf, 1); 0x0044b0fc jmp 0x44b3b8 | goto label_1; 0x0044b101 mov r15, qword [r14] | r15 = *(r14); 0x0044b104 mov rax, qword [r15] | rax = *(r15); 0x0044b107 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b10b test byte [r15 + rax + 0x20], 1 | | if ((*((r15 + rax + 0x20)) & 1) != 0) { 0x0044b111 jne 0x44b3b8 | goto label_1; | } 0x0044b117 mov ebx, dword [rbx + 8] | ebx = *((rbx + 8)); 0x0044b11a mov esi, dword [r14 + 8] | 0x0044b11e mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b122 mov rdi, r15 | 0x0044b125 mov edx, ebp | edx = ebp; 0x0044b127 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r15, *((r14 + 8))); 0x0044b12c mov rdi, r15 | rdi = r15; 0x0044b12f mov esi, ebx | esi = ebx; 0x0044b131 call 0x404a00 | std::_1::basic_ostream>::operator << (int) (); 0x0044b136 jmp 0x44b24b | goto label_14; 0x0044b13b mov r15, qword [r14] | r15 = *(r14); 0x0044b13e mov rax, qword [r15] | rax = *(r15); 0x0044b141 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b145 test byte [r15 + rax + 0x20], 1 | | if ((*((r15 + rax + 0x20)) & 1) != 0) { 0x0044b14b jne 0x44b3b8 | goto label_1; | } 0x0044b151 mov rbx, qword [rbx] | rbx = *(rbx); 0x0044b154 mov esi, dword [r14 + 8] | 0x0044b158 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b15c mov rdi, r15 | 0x0044b15f mov edx, ebp | edx = ebp; 0x0044b161 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r15, *((r14 + 8))); 0x0044b166 mov rdi, r15 | rdi = r15; 0x0044b169 mov rsi, rbx | rsi = rbx; 0x0044b16c call 0x404ae0 | std::_1::basic_ostream>::operator << (long long) (); 0x0044b171 jmp 0x44b24b | goto label_14; 0x0044b176 mov rax, qword [rbx] | rax = *(rbx); 0x0044b179 mov ecx, dword [rbx + 8] | ecx = *((rbx + 8)); 0x0044b17c mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044b181 mov dword [rsp + 0x18], ecx | *((rsp + 0x18)) = ecx; 0x0044b185 mov rsi, qword [r14] | rsi = *(r14); 0x0044b188 mov rax, qword [rsi] | rax = *(rsi); 0x0044b18b mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b18f test byte [rsi + rax + 0x20], 1 | | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b194 jne 0x44b3b8 | goto label_1; | } 0x0044b19a mov edx, dword [r14 + 8] | 0x0044b19e mov ecx, dword [r14 + 0xc] | 0x0044b1a2 lea rdi, [rsp + 0x10] | 0x0044b1a7 call 0x44e8c0 | BloombergLP::bdld::DatumUdt::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); 0x0044b1ac jmp 0x44b3b8 | goto label_1; 0x0044b1b1 mov rcx, qword [rbx] | rcx = *(rbx); 0x0044b1b4 test rcx, rcx | | if (rcx != 0) { 0x0044b1b7 je 0x44b34e | 0x0044b1bd mov rax, qword [rcx] | rax = *(rcx); 0x0044b1c0 add rcx, 0x10 | rcx += 0x10; 0x0044b1c4 jmp 0x44b352 | goto label_15; 0x0044b1c9 mov rax, qword [rbx] | rax = *(rbx); 0x0044b1cc movsxd rcx, dword [rbx + 8] | rcx = *((rbx + 8)); 0x0044b1d0 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044b1d5 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0044b1da jmp 0x44b35c | goto label_16; 0x0044b1df mov r15, qword [r14] | r15 = *(r14); 0x0044b1e2 mov rax, qword [r15] | rax = *(r15); 0x0044b1e5 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b1e9 test byte [r15 + rax + 0x20], 1 | | if ((*((r15 + rax + 0x20)) & 1) != 0) { 0x0044b1ef jne 0x44b3b8 | goto label_1; | } 0x0044b1f5 mov esi, dword [r14 + 8] | 0x0044b1f9 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b1fd mov rdi, r15 | 0x0044b200 mov edx, ebp | edx = ebp; 0x0044b202 call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r15, *((r14 + 8))); 0x0044b207 movsd xmm0, qword [rbx] | xmm0 = *(rbx); 0x0044b20b mov rdi, r15 | rdi = r15; 0x0044b20e call 0x404bc0 | std::_1::basic_ostream>::operator << (double) (); 0x0044b213 jmp 0x44b24b | goto label_14; 0x0044b215 mov r15, qword [r14] | r15 = *(r14); 0x0044b218 mov rax, qword [r15] | rax = *(r15); 0x0044b21b mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b21f test byte [r15 + rax + 0x20], 1 | | if ((*((r15 + rax + 0x20)) & 1) != 0) { 0x0044b225 jne 0x44b3b8 | goto label_1; | } 0x0044b22b mov rbx, qword [rbx] | rbx = *(rbx); 0x0044b22e mov esi, dword [r14 + 8] | 0x0044b232 mov ebp, dword [r14 + 0xc] | ebp = *((r14 + 0xc)); 0x0044b236 mov rdi, r15 | 0x0044b239 mov edx, ebp | edx = ebp; 0x0044b23b call 0x4485d0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (r15, *((r14 + 8))); 0x0044b240 mov rdi, r15 | 0x0044b243 mov rsi, rbx | 0x0044b246 call 0x4577e0 | std::_1::basic_ostream>&BloombergLP::bdldfp::operator << >(std::_1::basic_ostream>&,BloombergLP::bdldfp::Decimal_Type64) (r15, rbx); | label_14: 0x0044b24b test ebp, ebp | | if (ebp < 0) { 0x0044b24d js 0x44b3b8 | goto label_1; | } 0x0044b253 mov byte [rsp + 0x10], 0xa | *((rsp + 0x10)) = 0xa; 0x0044b258 lea rsi, [rsp + 0x10] | 0x0044b25d mov edx, 1 | 0x0044b262 mov rdi, r15 | 0x0044b265 call 0x43afb0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r15, rsp + 0x10, 1); 0x0044b26a jmp 0x44b3b8 | goto label_1; 0x0044b26f mov rdx, qword [rbx] | rdx = *(rbx); 0x0044b272 test rdx, rdx | | if (rdx != 0) { 0x0044b275 je 0x44b381 | 0x0044b27b lea rax, [rdx + 0x20] | rax = rdx + 0x20; 0x0044b27f mov rcx, qword [rdx] | rcx = *(rdx); 0x0044b282 mov dl, byte [rdx + 8] | dl = *((rdx + 8)); 0x0044b285 jmp 0x44b387 | goto label_17; | label_5: 0x0044b28a mov rcx, qword [rbx] | rcx = *(rbx); 0x0044b28d mov eax, dword [rcx] | eax = *(rcx); 0x0044b28f movsxd rdx, dword [rcx + 4] | rdx = *((rcx + 4)); 0x0044b293 add rcx, 8 | rcx += 8; 0x0044b297 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0044b29c mov qword [rsp + 0x20], rdx | *((rsp + 0x20)) = rdx; | label_6: 0x0044b2a1 mov dword [rsp + 0x10], eax | *((rsp + 0x10)) = eax; 0x0044b2a5 mov rsi, qword [r14] | rsi = *(r14); 0x0044b2a8 mov rax, qword [rsi] | rax = *(rsi); 0x0044b2ab mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b2af test byte [rsi + rax + 0x20], 1 | | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b2b4 jne 0x44b3b8 | goto label_1; | } 0x0044b2ba mov edx, dword [r14 + 8] | 0x0044b2be mov ecx, dword [r14 + 0xc] | 0x0044b2c2 lea rdi, [rsp + 0x10] | 0x0044b2c7 call 0x44ce70 | eax = BloombergLP::bdld::DatumError::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); 0x0044b2cc jmp 0x44b3b8 | goto label_1; | label_2: 0x0044b2d1 xor eax, eax | eax = 0; 0x0044b2d3 xor ecx, ecx | ecx = 0; 0x0044b2d5 xor edx, edx | edx = 0; 0x0044b2d7 xor esi, esi | esi = 0; | label_3: 0x0044b2d9 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044b2de mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0044b2e3 mov byte [rsp + 0x20], dl | *((rsp + 0x20)) = dl; 0x0044b2e7 mov byte [rsp + 0x21], sil | *((rsp + 0x21)) = sil; 0x0044b2ec mov rsi, qword [r14] | rsi = *(r14); 0x0044b2ef mov rax, qword [rsi] | rax = *(rsi); 0x0044b2f2 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b2f6 test byte [rsi + rax + 0x20], 1 | | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b2fb jne 0x44b3b8 | goto label_1; | } 0x0044b301 mov edx, dword [r14 + 8] | 0x0044b305 mov ecx, dword [r14 + 0xc] | 0x0044b309 lea rdi, [rsp + 0x10] | 0x0044b30e call 0x44bb10 | BloombergLP::bdld::DatumMapRef::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); 0x0044b313 jmp 0x44b3b8 | goto label_1; | label_7: 0x0044b318 mov rcx, qword [rbx] | rcx = *(rbx); 0x0044b31b movsxd rdx, dword [rbx + 8] | rdx = *((rbx + 8)); | label_8: 0x0044b31f mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0044b324 mov qword [rsp + 0x18], rdx | *((rsp + 0x18)) = rdx; 0x0044b329 mov rsi, qword [r14] | rsi = *(r14); 0x0044b32c mov rax, qword [rsi] | rax = *(rsi); 0x0044b32f mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b333 test byte [rsi + rax + 0x20], 1 | | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b338 jne 0x44b3b8 | goto label_1; | } 0x0044b33a mov edx, dword [r14 + 8] | 0x0044b33e mov ecx, dword [r14 + 0xc] | 0x0044b342 lea rdi, [rsp + 0x10] | 0x0044b347 call 0x44cd40 | eax = BloombergLP::bdld::DatumBinaryRef::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); 0x0044b34c jmp 0x44b3b8 | 0x0044b34e xor eax, eax | eax = 0; 0x0044b350 xor ecx, ecx | ecx = 0; | label_15: 0x0044b352 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x0044b357 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; | label_16: 0x0044b35c mov rsi, qword [r14] | rsi = *(r14); 0x0044b35f mov rax, qword [rsi] | rax = *(rsi); 0x0044b362 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b366 test byte [rsi + rax + 0x20], 1 | | } else { | } else { | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b36b jne 0x44b3b8 | goto label_1; | } 0x0044b36d mov edx, dword [r14 + 8] | 0x0044b371 mov ecx, dword [r14 + 0xc] | 0x0044b375 lea rdi, [rsp + 0x10] | 0x0044b37a call 0x44b450 | eax = BloombergLP::bdld::DatumArrayRef::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); 0x0044b37f jmp 0x44b3b8 | 0x0044b381 xor eax, eax | eax = 0; 0x0044b383 xor ecx, ecx | ecx = 0; 0x0044b385 xor edx, edx | edx = 0; | label_17: 0x0044b387 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0044b38c mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x0044b391 mov byte [rsp + 0x20], dl | *((rsp + 0x20)) = dl; 0x0044b395 mov rsi, qword [r14] | rsi = *(r14); 0x0044b398 mov rax, qword [rsi] | rax = *(rsi); 0x0044b39b mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x0044b39f test byte [rsi + rax + 0x20], 1 | | } | } | } | if ((*((rsi + rax + 0x20)) & 1) != 0) { 0x0044b3a4 jne 0x44b3b8 | goto label_1; | } 0x0044b3a6 mov edx, dword [r14 + 8] | 0x0044b3aa mov ecx, dword [r14 + 0xc] | 0x0044b3ae lea rdi, [rsp + 0x10] | 0x0044b3b3 call 0x44bbe0 | BloombergLP::bdld::DatumIntMapRef::print(std::_1::basic_ostream>&,int,int)const (rsp + 0x10, rsi, *((r14 + 8)), *((r14 + 0xc))); | label_1: 0x0044b3b8 add rsp, 0x38 | 0x0044b3bc pop rbx | 0x0044b3bd pop r14 | 0x0044b3bf pop r15 | 0x0044b3c1 pop rbp | 0x0044b3c2 ret | return rax; | label_12: 0x0044b3c3 lea rdi, [rsp + 0x10] | 0x0044b3c8 call 0x464360 | BloombergLP::bdlt::Time::invalidMicrosecondsFromMidnight()const (rsp + 0x10); 0x0044b3cd jmp 0x44aff5 | | } while (1); | label_13: 0x0044b3d2 mov edi, 0x72603c | 0x0044b3d7 call 0x4927d0 | eax = BloombergLP::bsls::Review::updateCount(BloombergLP::bsls::Atomic_TypeTraits::Int*) (method.BloombergLP::bdlt::Datetime.validateAndTraceLogRepresentation___const::lambda__1::operator_____const::count); 0x0044b3dc mov qword [rsp + 0x10], 0x4d261e | *((rsp + 0x10)) = "detected invalid 'bdlt::Datetime'; see TEAM 579660115"; 0x0044b3e5 mov qword [rsp + 0x18], 0x4d2654 | *((rsp + 0x18)) = "/home/parsa/experiments/assumptions/crush/ccm-none/groups/bdl/bdlt/bdlt_datetime.h"; 0x0044b3ee mov dword [rsp + 0x20], 0x466 | *((rsp + 0x20)) = 0x466; 0x0044b3f6 mov qword [rsp + 0x28], 0x4f1119 | *((rsp + 0x28)) = "R-INV"; 0x0044b3ff mov dword [rsp + 0x30], eax | *((rsp + 0x30)) = eax; 0x0044b403 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0044b408 call 0x4927f0 | BloombergLP::bsls::Review::invokeHandler(BloombergLP::bsls::ReviewViolationconst&) (); 0x0044b40d mov rax, rbx | rax = rbx; 0x0044b410 shr rax, 0x20 | rax >>= 0x20; 0x0044b414 shl rbx, 0x25 | rbx <<= 0x25; 0x0044b418 movabs rcx, 0x7fffffe000000000 | rcx = 0x7fffffe000000000; 0x0044b422 add rcx, rbx | rcx += rbx; 0x0044b425 imul rax, rax, 0x3e8 | rax *= 0x3e8; 0x0044b42c movabs rbx, 0x8000000000000000 | rbx = 0x8000000000000000; 0x0044b436 or rbx, rcx | rbx |= rcx; 0x0044b439 or rbx, rax | rbx |= rax; 0x0044b43c jmp 0x44b049 | goto label_0; | }