; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4b9040 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Choice3.operator_BloombergLP::s_baltst::Choice3_const_ () | int64_t method_BloombergLP::s_baltst::Choice3_operator_BloombergLP::s_baltst::Choice3_const_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Choice3::operator=(BloombergLP::s_baltst::Choice3 const&) */ 0x004b9040 push r14 | 0x004b9042 push rbx | 0x004b9043 push rax | 0x004b9044 mov r14, rdi | r14 = rdi; 0x004b9047 cmp rdi, rsi | | if (rdi != rsi) { 0x004b904a je 0x4b91f7 | 0x004b9050 mov rbx, rsi | rbx = rsi; 0x004b9053 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004b9059 cmp rax, 3 | | if (rax <= 3) { 0x004b905d ja 0x4b90ee | | /* switch table (4 cases) at 0x648ac0 */ 0x004b9063 jmp qword [rax*8 + 0x648ac0] | 0x004b906a mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9071 cmp rax, 3 | | if (rax <= 3) { 0x004b9075 ja 0x4b912f | | /* switch table (4 cases) at 0x648b20 */ 0x004b907b jmp qword [rax*8 + 0x648b20] | 0x004b9082 mov rdi, r14 | 0x004b9085 mov rsi, rbx | 0x004b9088 call 0x4b9de0 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6const&) (r14, rbx); 0x004b908d jmp 0x4b91f7 | goto label_0; 0x004b9092 mov bl, byte [rbx] | bl = *(rbx); 0x004b9094 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b909b cmp rax, 3 | | if (rax > 3) { 0x004b909f ja 0x4b9180 | goto label_1; | } | /* switch table (4 cases) at 0x648b00 */ 0x004b90a5 jmp qword [rax*8 + 0x648b00] | 0x004b90ac mov rdi, r14 | 0x004b90af call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b90b4 jmp 0x4b9180 | goto label_1; 0x004b90b9 mov rdi, r14 | 0x004b90bc mov rsi, rbx | 0x004b90bf call 0x4b9320 | BloombergLP::s_baltst::Choice3::makeSelection3(BloombergLP::s_baltst::CustomStringconst&) (r14, rbx); 0x004b90c4 jmp 0x4b91f7 | goto label_0; 0x004b90c9 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b90d0 cmp rax, 3 | | if (rax > 3) { 0x004b90d4 ja 0x4b91ac | goto label_2; | } | /* switch table (4 cases) at 0x648ae0 */ 0x004b90da jmp qword [rax*8 + 0x648ae0] | 0x004b90e1 mov rdi, r14 | 0x004b90e4 call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b90e9 jmp 0x4b91ac | | } else { 0x004b90ee mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b90f5 cmp rax, 3 | | if (rax > 3) { 0x004b90f9 ja 0x4b91ec | goto label_3; | } | /* switch table (4 cases) at 0x648b40 */ 0x004b90ff jmp qword [rax*8 + 0x648b40] | 0x004b9106 mov rdi, r14 | 0x004b9109 call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b910e jmp 0x4b91ec | goto label_3; 0x004b9113 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9118 je 0x4b9127 | 0x004b911a mov rsi, qword [r14] | rsi = *(r14); 0x004b911d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9121 mov rax, qword [rdi] | rax = *(rdi); 0x004b9124 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9127 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } 0x004b912f mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b913a mov rdx, qword [r14 + 0x178] | 0x004b9141 mov rdi, r14 | 0x004b9144 mov rsi, rbx | 0x004b9147 call 0x4c35f0 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6const&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004b914c mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004b9157 jmp 0x4b91f7 | goto label_0; 0x004b915c mov byte [r14], bl | *(r14) = bl; 0x004b915f jmp 0x4b91f7 | goto label_0; 0x004b9164 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9169 je 0x4b9178 | 0x004b916b mov rsi, qword [r14] | rsi = *(r14); 0x004b916e mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9172 mov rax, qword [rdi] | rax = *(rdi); 0x004b9175 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9178 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_1: 0x004b9180 mov byte [r14], bl | *(r14) = bl; 0x004b9183 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004b918e jmp 0x4b91f7 | goto label_0; 0x004b9190 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9195 je 0x4b91a4 | 0x004b9197 mov rsi, qword [r14] | rsi = *(r14); 0x004b919a mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b919e mov rax, qword [rdi] | rax = *(rdi); 0x004b91a1 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b91a4 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } | label_2: 0x004b91ac mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b91b7 mov eax, dword [rbx] | eax = *(rbx); 0x004b91b9 mov dword [r14], eax | *(r14) = eax; 0x004b91bc mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; 0x004b91c7 jmp 0x4b91f7 | goto label_0; 0x004b91c9 mov eax, dword [rbx] | eax = *(rbx); 0x004b91cb mov dword [r14], eax | *(r14) = eax; 0x004b91ce jmp 0x4b91f7 | goto label_0; 0x004b91d0 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b91d5 je 0x4b91e4 | 0x004b91d7 mov rsi, qword [r14] | rsi = *(r14); 0x004b91da mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b91de mov rax, qword [rdi] | rax = *(rdi); 0x004b91e1 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b91e4 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_3: 0x004b91ec mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; | } | label_0: 0x004b91f7 mov rax, r14 | rax = r14; 0x004b91fa add rsp, 8 | 0x004b91fe pop rbx | 0x004b91ff pop r14 | 0x004b9201 ret | return rax; | }