; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4d00f0 */ | #include | ; (fcn) method.BloombergLP::s_baltst::SequenceWithAnonymityChoice.operator_BloombergLP::s_baltst::SequenceWithAnonymityChoice_ () | int64_t method_BloombergLP::s_baltst::SequenceWithAnonymityChoice_operator_BloombergLP::s_baltst::SequenceWithAnonymityChoice_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::SequenceWithAnonymityChoice::operator=(BloombergLP::s_baltst::SequenceWithAnonymityChoice&&) */ 0x004d00f0 push r14 | 0x004d00f2 push rbx | 0x004d00f3 push rax | 0x004d00f4 mov r14, rdi | r14 = rdi; 0x004d00f7 cmp rdi, rsi | | if (rdi != rsi) { 0x004d00fa je 0x4d02b2 | 0x004d0100 mov rbx, rsi | rbx = rsi; 0x004d0103 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004d0109 cmp rax, 3 | | if (rax <= 3) { 0x004d010d ja 0x4d014e | | /* switch table (4 cases) at 0x649f00 */ 0x004d010f jmp qword [rax*8 + 0x649f00] | 0x004d0116 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004d011d cmp eax, 2 | | if (eax != 2) { 0x004d0120 je 0x4d01c9 | 0x004d0126 test eax, eax | | if (eax == 0) { 0x004d0128 jne 0x4d01e5 | 0x004d012e mov rdi, r14 | 0x004d0131 mov rsi, rbx | 0x004d0134 call 0x4ba330 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6&&) (r14, rbx); 0x004d0139 jmp 0x4d02b2 | goto label_0; 0x004d013e mov rdi, r14 | 0x004d0141 mov rsi, rbx | 0x004d0144 call 0x4d0360 | BloombergLP::s_baltst::SequenceWithAnonymityChoice::makeSelection3(BloombergLP::s_baltst::CustomString&&) (r14, rbx); 0x004d0149 jmp 0x4d02b2 | | } else { 0x004d014e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004d0155 cmp eax, 2 | | if (eax == 2) { 0x004d0158 je 0x4d0212 | goto label_1; | } 0x004d015e test eax, eax | | if (eax != 0) { 0x004d0160 jne 0x4d022e | goto label_2; | } 0x004d0166 mov rdi, r14 | 0x004d0169 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004d016e jmp 0x4d022e | goto label_2; 0x004d0173 mov bl, byte [rbx] | bl = *(rbx); 0x004d0175 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004d017c test eax, eax | | if (eax == 0) { 0x004d017e je 0x4d0259 | goto label_3; | } 0x004d0184 cmp eax, 2 | | if (eax == 2) { 0x004d0187 je 0x4d0263 | goto label_4; | } 0x004d018d cmp eax, 1 | | if (eax != 1) { 0x004d0190 jne 0x4d027f | goto label_5; | } 0x004d0196 mov byte [r14], bl | *(r14) = bl; 0x004d0199 jmp 0x4d02b2 | goto label_0; 0x004d019e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004d01a5 test eax, eax | | if (eax == 0) { 0x004d01a7 je 0x4d028f | goto label_6; | } 0x004d01ad cmp eax, 2 | | if (eax == 2) { 0x004d01b0 je 0x4d023b | goto label_7; | } 0x004d01b6 cmp eax, 3 | | if (eax != 3) { 0x004d01b9 jne 0x4d0297 | goto label_8; | } 0x004d01bf mov eax, dword [rbx] | eax = *(rbx); 0x004d01c1 mov dword [r14], eax | *(r14) = eax; 0x004d01c4 jmp 0x4d02b2 | | } else { 0x004d01c9 cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004d01ce je 0x4d01dd | 0x004d01d0 mov rsi, qword [r14] | rsi = *(r14); 0x004d01d3 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d01d7 mov rax, qword [rdi] | rax = *(rdi); 0x004d01da call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d01dd mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004d01e5 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004d01f0 mov rdx, qword [r14 + 0x178] | 0x004d01f7 mov rdi, r14 | 0x004d01fa mov rsi, rbx | 0x004d01fd call 0x4c42a0 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6&&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004d0202 mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004d020d jmp 0x4d02b2 | goto label_0; | label_1: 0x004d0212 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004d0217 je 0x4d0226 | 0x004d0219 mov rsi, qword [r14] | rsi = *(r14); 0x004d021c mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d0220 mov rax, qword [rdi] | rax = *(rdi); 0x004d0223 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d0226 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_2: 0x004d022e mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004d0239 jmp 0x4d02b2 | goto label_0; | label_7: 0x004d023b cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004d0240 je 0x4d024f | 0x004d0242 mov rsi, qword [r14] | rsi = *(r14); 0x004d0245 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d0249 mov rax, qword [rdi] | rax = *(rdi); 0x004d024c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d024f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004d0257 jmp 0x4d0297 | goto label_8; | label_3: 0x004d0259 mov rdi, r14 | 0x004d025c call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004d0261 jmp 0x4d027f | goto label_5; | label_4: 0x004d0263 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004d0268 je 0x4d0277 | 0x004d026a mov rsi, qword [r14] | rsi = *(r14); 0x004d026d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d0271 mov rax, qword [rdi] | rax = *(rdi); 0x004d0274 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d0277 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_5: 0x004d027f mov byte [r14], bl | *(r14) = bl; 0x004d0282 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004d028d jmp 0x4d02b2 | goto label_0; | label_6: 0x004d028f mov rdi, r14 | 0x004d0292 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); | label_8: 0x004d0297 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004d02a2 mov eax, dword [rbx] | eax = *(rbx); 0x004d02a4 mov dword [r14], eax | *(r14) = eax; 0x004d02a7 mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; | } | } | label_0: 0x004d02b2 mov rax, r14 | rax = r14; 0x004d02b5 add rsp, 8 | 0x004d02b9 pop rbx | 0x004d02ba pop r14 | 0x004d02bc ret | return rax; | }