; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4b92e0 */ | #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&) */ 0x004b92e0 push r14 | 0x004b92e2 push rbx | 0x004b92e3 push rax | 0x004b92e4 mov r14, rdi | r14 = rdi; 0x004b92e7 cmp rdi, rsi | | if (rdi != rsi) { 0x004b92ea je 0x4b94a2 | 0x004b92f0 mov rbx, rsi | rbx = rsi; 0x004b92f3 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004b92f9 cmp rax, 3 | | if (rax <= 3) { 0x004b92fd ja 0x4b933e | | /* switch table (4 cases) at 0x648f00 */ 0x004b92ff jmp qword [rax*8 + 0x648f00] | 0x004b9306 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b930d cmp eax, 2 | | if (eax != 2) { 0x004b9310 je 0x4b93b9 | 0x004b9316 test eax, eax | | if (eax == 0) { 0x004b9318 jne 0x4b93d5 | 0x004b931e mov rdi, r14 | 0x004b9321 mov rsi, rbx | 0x004b9324 call 0x4ba070 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6const&) (r14, rbx); 0x004b9329 jmp 0x4b94a2 | goto label_0; 0x004b932e mov rdi, r14 | 0x004b9331 mov rsi, rbx | 0x004b9334 call 0x4b95c0 | BloombergLP::s_baltst::Choice3::makeSelection3(BloombergLP::s_baltst::CustomStringconst&) (r14, rbx); 0x004b9339 jmp 0x4b94a2 | | } else { 0x004b933e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9345 cmp eax, 2 | | if (eax == 2) { 0x004b9348 je 0x4b9402 | goto label_1; | } 0x004b934e test eax, eax | | if (eax != 0) { 0x004b9350 jne 0x4b941e | goto label_2; | } 0x004b9356 mov rdi, r14 | 0x004b9359 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b935e jmp 0x4b941e | goto label_2; 0x004b9363 mov bl, byte [rbx] | bl = *(rbx); 0x004b9365 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b936c test eax, eax | | if (eax == 0) { 0x004b936e je 0x4b9449 | goto label_3; | } 0x004b9374 cmp eax, 2 | | if (eax == 2) { 0x004b9377 je 0x4b9453 | goto label_4; | } 0x004b937d cmp eax, 1 | | if (eax != 1) { 0x004b9380 jne 0x4b946f | goto label_5; | } 0x004b9386 mov byte [r14], bl | *(r14) = bl; 0x004b9389 jmp 0x4b94a2 | goto label_0; 0x004b938e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9395 test eax, eax | | if (eax == 0) { 0x004b9397 je 0x4b947f | goto label_6; | } 0x004b939d cmp eax, 2 | | if (eax == 2) { 0x004b93a0 je 0x4b942b | goto label_7; | } 0x004b93a6 cmp eax, 3 | | if (eax != 3) { 0x004b93a9 jne 0x4b9487 | goto label_8; | } 0x004b93af mov eax, dword [rbx] | eax = *(rbx); 0x004b93b1 mov dword [r14], eax | *(r14) = eax; 0x004b93b4 jmp 0x4b94a2 | | } else { 0x004b93b9 cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004b93be je 0x4b93cd | 0x004b93c0 mov rsi, qword [r14] | rsi = *(r14); 0x004b93c3 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b93c7 mov rax, qword [rdi] | rax = *(rdi); 0x004b93ca call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b93cd mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004b93d5 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b93e0 mov rdx, qword [r14 + 0x178] | 0x004b93e7 mov rdi, r14 | 0x004b93ea mov rsi, rbx | 0x004b93ed call 0x4c3780 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6const&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004b93f2 mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004b93fd jmp 0x4b94a2 | goto label_0; | label_1: 0x004b9402 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9407 je 0x4b9416 | 0x004b9409 mov rsi, qword [r14] | rsi = *(r14); 0x004b940c mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9410 mov rax, qword [rdi] | rax = *(rdi); 0x004b9413 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9416 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_2: 0x004b941e mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b9429 jmp 0x4b94a2 | goto label_0; | label_7: 0x004b942b cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9430 je 0x4b943f | 0x004b9432 mov rsi, qword [r14] | rsi = *(r14); 0x004b9435 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9439 mov rax, qword [rdi] | rax = *(rdi); 0x004b943c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b943f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004b9447 jmp 0x4b9487 | goto label_8; | label_3: 0x004b9449 mov rdi, r14 | 0x004b944c call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b9451 jmp 0x4b946f | goto label_5; | label_4: 0x004b9453 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9458 je 0x4b9467 | 0x004b945a mov rsi, qword [r14] | rsi = *(r14); 0x004b945d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9461 mov rax, qword [rdi] | rax = *(rdi); 0x004b9464 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9467 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_5: 0x004b946f mov byte [r14], bl | *(r14) = bl; 0x004b9472 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004b947d jmp 0x4b94a2 | goto label_0; | label_6: 0x004b947f mov rdi, r14 | 0x004b9482 call 0x4c4be0 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); | label_8: 0x004b9487 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b9492 mov eax, dword [rbx] | eax = *(rbx); 0x004b9494 mov dword [r14], eax | *(r14) = eax; 0x004b9497 mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; | } | } | label_0: 0x004b94a2 mov rax, r14 | rax = r14; 0x004b94a5 add rsp, 8 | 0x004b94a9 pop rbx | 0x004b94aa pop r14 | 0x004b94ac ret | return rax; | }