; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4b97b0 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Choice3.operator_BloombergLP::s_baltst::Choice3_ () | int64_t method_BloombergLP::s_baltst::Choice3_operator_BloombergLP::s_baltst::Choice3_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Choice3::operator=(BloombergLP::s_baltst::Choice3&&) */ 0x004b97b0 push r14 | 0x004b97b2 push rbx | 0x004b97b3 push rax | 0x004b97b4 mov r14, rdi | r14 = rdi; 0x004b97b7 cmp rdi, rsi | | if (rdi != rsi) { 0x004b97ba je 0x4b9972 | 0x004b97c0 mov rbx, rsi | rbx = rsi; 0x004b97c3 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004b97c9 cmp rax, 3 | | if (rax <= 3) { 0x004b97cd ja 0x4b980e | | /* switch table (4 cases) at 0x648f20 */ 0x004b97cf jmp qword [rax*8 + 0x648f20] | 0x004b97d6 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b97dd cmp eax, 2 | | if (eax != 2) { 0x004b97e0 je 0x4b9889 | 0x004b97e6 test eax, eax | | if (eax == 0) { 0x004b97e8 jne 0x4b98a5 | 0x004b97ee mov rdi, r14 | 0x004b97f1 mov rsi, rbx | 0x004b97f4 call 0x4ba330 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6&&) (r14, rbx); 0x004b97f9 jmp 0x4b9972 | goto label_0; 0x004b97fe mov rdi, r14 | 0x004b9801 mov rsi, rbx | 0x004b9804 call 0x4b9a20 | BloombergLP::s_baltst::Choice3::makeSelection3(BloombergLP::s_baltst::CustomString&&) (r14, rbx); 0x004b9809 jmp 0x4b9972 | | } else { 0x004b980e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9815 cmp eax, 2 | | if (eax == 2) { 0x004b9818 je 0x4b98d2 | goto label_1; | } 0x004b981e test eax, eax | | if (eax != 0) { 0x004b9820 jne 0x4b98ee | goto label_2; | } 0x004b9826 mov rdi, r14 | 0x004b9829 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b982e jmp 0x4b98ee | goto label_2; 0x004b9833 mov bl, byte [rbx] | bl = *(rbx); 0x004b9835 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b983c test eax, eax | | if (eax == 0) { 0x004b983e je 0x4b9919 | goto label_3; | } 0x004b9844 cmp eax, 2 | | if (eax == 2) { 0x004b9847 je 0x4b9923 | goto label_4; | } 0x004b984d cmp eax, 1 | | if (eax != 1) { 0x004b9850 jne 0x4b993f | goto label_5; | } 0x004b9856 mov byte [r14], bl | *(r14) = bl; 0x004b9859 jmp 0x4b9972 | goto label_0; 0x004b985e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9865 test eax, eax | | if (eax == 0) { 0x004b9867 je 0x4b994f | goto label_6; | } 0x004b986d cmp eax, 2 | | if (eax == 2) { 0x004b9870 je 0x4b98fb | goto label_7; | } 0x004b9876 cmp eax, 3 | | if (eax != 3) { 0x004b9879 jne 0x4b9957 | goto label_8; | } 0x004b987f mov eax, dword [rbx] | eax = *(rbx); 0x004b9881 mov dword [r14], eax | *(r14) = eax; 0x004b9884 jmp 0x4b9972 | | } else { 0x004b9889 cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004b988e je 0x4b989d | 0x004b9890 mov rsi, qword [r14] | rsi = *(r14); 0x004b9893 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9897 mov rax, qword [rdi] | rax = *(rdi); 0x004b989a call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b989d mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004b98a5 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b98b0 mov rdx, qword [r14 + 0x178] | 0x004b98b7 mov rdi, r14 | 0x004b98ba mov rsi, rbx | 0x004b98bd call 0x4c42a0 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6&&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004b98c2 mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004b98cd jmp 0x4b9972 | goto label_0; | label_1: 0x004b98d2 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b98d7 je 0x4b98e6 | 0x004b98d9 mov rsi, qword [r14] | rsi = *(r14); 0x004b98dc mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b98e0 mov rax, qword [rdi] | rax = *(rdi); 0x004b98e3 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b98e6 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_2: 0x004b98ee mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b98f9 jmp 0x4b9972 | goto label_0; | label_7: 0x004b98fb cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9900 je 0x4b990f | 0x004b9902 mov rsi, qword [r14] | rsi = *(r14); 0x004b9905 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9909 mov rax, qword [rdi] | rax = *(rdi); 0x004b990c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b990f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004b9917 jmp 0x4b9957 | goto label_8; | label_3: 0x004b9919 mov rdi, r14 | 0x004b991c call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b9921 jmp 0x4b993f | goto label_5; | label_4: 0x004b9923 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9928 je 0x4b9937 | 0x004b992a mov rsi, qword [r14] | rsi = *(r14); 0x004b992d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9931 mov rax, qword [rdi] | rax = *(rdi); 0x004b9934 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9937 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_5: 0x004b993f mov byte [r14], bl | *(r14) = bl; 0x004b9942 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004b994d jmp 0x4b9972 | goto label_0; | label_6: 0x004b994f mov rdi, r14 | 0x004b9952 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); | label_8: 0x004b9957 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b9962 mov eax, dword [rbx] | eax = *(rbx); 0x004b9964 mov dword [r14], eax | *(r14) = eax; 0x004b9967 mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; | } | } | label_0: 0x004b9972 mov rax, r14 | rax = r14; 0x004b9975 add rsp, 8 | 0x004b9979 pop rbx | 0x004b997a pop r14 | 0x004b997c ret | return rax; | }