; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4cfc20 */ | #include | ; (fcn) method.BloombergLP::s_baltst::SequenceWithAnonymityChoice.operator_BloombergLP::s_baltst::SequenceWithAnonymityChoice_const_ () | int64_t method_BloombergLP::s_baltst::SequenceWithAnonymityChoice_operator_BloombergLP::s_baltst::SequenceWithAnonymityChoice_const_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::SequenceWithAnonymityChoice::operator=(BloombergLP::s_baltst::SequenceWithAnonymityChoice const&) */ 0x004cfc20 push r14 | 0x004cfc22 push rbx | 0x004cfc23 push rax | 0x004cfc24 mov r14, rdi | r14 = rdi; 0x004cfc27 cmp rdi, rsi | | if (rdi != rsi) { 0x004cfc2a je 0x4cfde2 | 0x004cfc30 mov rbx, rsi | rbx = rsi; 0x004cfc33 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004cfc39 cmp rax, 3 | | if (rax <= 3) { 0x004cfc3d ja 0x4cfc7e | | /* switch table (4 cases) at 0x649ee0 */ 0x004cfc3f jmp qword [rax*8 + 0x649ee0] | 0x004cfc46 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004cfc4d cmp eax, 2 | | if (eax != 2) { 0x004cfc50 je 0x4cfcf9 | 0x004cfc56 test eax, eax | | if (eax == 0) { 0x004cfc58 jne 0x4cfd15 | 0x004cfc5e mov rdi, r14 | 0x004cfc61 mov rsi, rbx | 0x004cfc64 call 0x4ba070 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6const&) (r14, rbx); 0x004cfc69 jmp 0x4cfde2 | goto label_0; 0x004cfc6e mov rdi, r14 | 0x004cfc71 mov rsi, rbx | 0x004cfc74 call 0x4cff00 | BloombergLP::s_baltst::SequenceWithAnonymityChoice::makeSelection3(BloombergLP::s_baltst::CustomStringconst&) (r14, rbx); 0x004cfc79 jmp 0x4cfde2 | | } else { 0x004cfc7e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004cfc85 cmp eax, 2 | | if (eax == 2) { 0x004cfc88 je 0x4cfd42 | goto label_1; | } 0x004cfc8e test eax, eax | | if (eax != 0) { 0x004cfc90 jne 0x4cfd5e | goto label_2; | } 0x004cfc96 mov rdi, r14 | 0x004cfc99 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004cfc9e jmp 0x4cfd5e | goto label_2; 0x004cfca3 mov bl, byte [rbx] | bl = *(rbx); 0x004cfca5 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004cfcac test eax, eax | | if (eax == 0) { 0x004cfcae je 0x4cfd89 | goto label_3; | } 0x004cfcb4 cmp eax, 2 | | if (eax == 2) { 0x004cfcb7 je 0x4cfd93 | goto label_4; | } 0x004cfcbd cmp eax, 1 | | if (eax != 1) { 0x004cfcc0 jne 0x4cfdaf | goto label_5; | } 0x004cfcc6 mov byte [r14], bl | *(r14) = bl; 0x004cfcc9 jmp 0x4cfde2 | goto label_0; 0x004cfcce mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004cfcd5 test eax, eax | | if (eax == 0) { 0x004cfcd7 je 0x4cfdbf | goto label_6; | } 0x004cfcdd cmp eax, 2 | | if (eax == 2) { 0x004cfce0 je 0x4cfd6b | goto label_7; | } 0x004cfce6 cmp eax, 3 | | if (eax != 3) { 0x004cfce9 jne 0x4cfdc7 | goto label_8; | } 0x004cfcef mov eax, dword [rbx] | eax = *(rbx); 0x004cfcf1 mov dword [r14], eax | *(r14) = eax; 0x004cfcf4 jmp 0x4cfde2 | | } else { 0x004cfcf9 cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004cfcfe je 0x4cfd0d | 0x004cfd00 mov rsi, qword [r14] | rsi = *(r14); 0x004cfd03 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004cfd07 mov rax, qword [rdi] | rax = *(rdi); 0x004cfd0a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004cfd0d mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004cfd15 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004cfd20 mov rdx, qword [r14 + 0x178] | 0x004cfd27 mov rdi, r14 | 0x004cfd2a mov rsi, rbx | 0x004cfd2d call 0x4c3780 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6const&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004cfd32 mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004cfd3d jmp 0x4cfde2 | goto label_0; | label_1: 0x004cfd42 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004cfd47 je 0x4cfd56 | 0x004cfd49 mov rsi, qword [r14] | rsi = *(r14); 0x004cfd4c mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004cfd50 mov rax, qword [rdi] | rax = *(rdi); 0x004cfd53 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004cfd56 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_2: 0x004cfd5e mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004cfd69 jmp 0x4cfde2 | goto label_0; | label_7: 0x004cfd6b cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004cfd70 je 0x4cfd7f | 0x004cfd72 mov rsi, qword [r14] | rsi = *(r14); 0x004cfd75 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004cfd79 mov rax, qword [rdi] | rax = *(rdi); 0x004cfd7c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004cfd7f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004cfd87 jmp 0x4cfdc7 | goto label_8; | label_3: 0x004cfd89 mov rdi, r14 | 0x004cfd8c call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004cfd91 jmp 0x4cfdaf | goto label_5; | label_4: 0x004cfd93 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004cfd98 je 0x4cfda7 | 0x004cfd9a mov rsi, qword [r14] | rsi = *(r14); 0x004cfd9d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004cfda1 mov rax, qword [rdi] | rax = *(rdi); 0x004cfda4 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004cfda7 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_5: 0x004cfdaf mov byte [r14], bl | *(r14) = bl; 0x004cfdb2 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004cfdbd jmp 0x4cfde2 | goto label_0; | label_6: 0x004cfdbf mov rdi, r14 | 0x004cfdc2 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); | label_8: 0x004cfdc7 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004cfdd2 mov eax, dword [rbx] | eax = *(rbx); 0x004cfdd4 mov dword [r14], eax | *(r14) = eax; 0x004cfdd7 mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; | } | } | label_0: 0x004cfde2 mov rax, r14 | rax = r14; 0x004cfde5 add rsp, 8 | 0x004cfde9 pop rbx | 0x004cfdea pop r14 | 0x004cfdec ret | return rax; | }