; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4b9520 */ | #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&&) */ 0x004b9520 push r14 | 0x004b9522 push rbx | 0x004b9523 push rax | 0x004b9524 mov r14, rdi | r14 = rdi; 0x004b9527 cmp rdi, rsi | | if (rdi != rsi) { 0x004b952a je 0x4b96d7 | 0x004b9530 mov rbx, rsi | rbx = rsi; 0x004b9533 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x004b9539 cmp rax, 3 | | if (rax <= 3) { 0x004b953d ja 0x4b95ce | | /* switch table (4 cases) at 0x648c00 */ 0x004b9543 jmp qword [rax*8 + 0x648c00] | 0x004b954a mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b9551 cmp rax, 3 | | if (rax <= 3) { 0x004b9555 ja 0x4b960f | | /* switch table (4 cases) at 0x648c60 */ 0x004b955b jmp qword [rax*8 + 0x648c60] | 0x004b9562 mov rdi, r14 | 0x004b9565 mov rsi, rbx | 0x004b9568 call 0x4ba0a0 | BloombergLP::s_baltst::Sequence6::operator=(BloombergLP::s_baltst::Sequence6&&) (r14, rbx); 0x004b956d jmp 0x4b96d7 | goto label_0; 0x004b9572 mov bl, byte [rbx] | bl = *(rbx); 0x004b9574 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b957b cmp rax, 3 | | if (rax > 3) { 0x004b957f ja 0x4b9660 | goto label_1; | } | /* switch table (4 cases) at 0x648c40 */ 0x004b9585 jmp qword [rax*8 + 0x648c40] | 0x004b958c mov rdi, r14 | 0x004b958f call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b9594 jmp 0x4b9660 | goto label_1; 0x004b9599 mov rdi, r14 | 0x004b959c mov rsi, rbx | 0x004b959f call 0x4b9790 | BloombergLP::s_baltst::Choice3::makeSelection3(BloombergLP::s_baltst::CustomString&&) (r14, rbx); 0x004b95a4 jmp 0x4b96d7 | goto label_0; 0x004b95a9 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b95b0 cmp rax, 3 | | if (rax > 3) { 0x004b95b4 ja 0x4b968c | goto label_2; | } | /* switch table (4 cases) at 0x648c20 */ 0x004b95ba jmp qword [rax*8 + 0x648c20] | 0x004b95c1 mov rdi, r14 | 0x004b95c4 call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b95c9 jmp 0x4b968c | | } else { 0x004b95ce mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x004b95d5 cmp rax, 3 | | if (rax > 3) { 0x004b95d9 ja 0x4b96cc | goto label_3; | } | /* switch table (4 cases) at 0x648c80 */ 0x004b95df jmp qword [rax*8 + 0x648c80] | 0x004b95e6 mov rdi, r14 | 0x004b95e9 call 0x4c4a50 | BloombergLP::s_baltst::Sequence6::~Sequence6() (r14); 0x004b95ee jmp 0x4b96cc | goto label_3; 0x004b95f3 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b95f8 je 0x4b9607 | 0x004b95fa mov rsi, qword [r14] | rsi = *(r14); 0x004b95fd mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9601 mov rax, qword [rdi] | rax = *(rdi); 0x004b9604 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9607 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } 0x004b960f mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b961a mov rdx, qword [r14 + 0x178] | 0x004b9621 mov rdi, r14 | 0x004b9624 mov rsi, rbx | 0x004b9627 call 0x4c4110 | BloombergLP::s_baltst::Sequence6::Sequence6(BloombergLP::s_baltst::Sequence6&&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x004b962c mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x004b9637 jmp 0x4b96d7 | goto label_0; 0x004b963c mov byte [r14], bl | *(r14) = bl; 0x004b963f jmp 0x4b96d7 | goto label_0; 0x004b9644 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9649 je 0x4b9658 | 0x004b964b mov rsi, qword [r14] | rsi = *(r14); 0x004b964e mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b9652 mov rax, qword [rdi] | rax = *(rdi); 0x004b9655 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9658 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_1: 0x004b9660 mov byte [r14], bl | *(r14) = bl; 0x004b9663 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x004b966e jmp 0x4b96d7 | goto label_0; 0x004b9670 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b9675 je 0x4b9684 | 0x004b9677 mov rsi, qword [r14] | rsi = *(r14); 0x004b967a mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b967e mov rax, qword [rdi] | rax = *(rdi); 0x004b9681 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b9684 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } | label_2: 0x004b968c mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x004b9697 mov eax, dword [rbx] | eax = *(rbx); 0x004b9699 mov dword [r14], eax | *(r14) = eax; 0x004b969c mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; 0x004b96a7 jmp 0x4b96d7 | goto label_0; 0x004b96a9 mov eax, dword [rbx] | eax = *(rbx); 0x004b96ab mov dword [r14], eax | *(r14) = eax; 0x004b96ae jmp 0x4b96d7 | goto label_0; 0x004b96b0 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004b96b5 je 0x4b96c4 | 0x004b96b7 mov rsi, qword [r14] | rsi = *(r14); 0x004b96ba mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004b96be mov rax, qword [rdi] | rax = *(rdi); 0x004b96c1 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004b96c4 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_3: 0x004b96cc mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; | } | label_0: 0x004b96d7 mov rax, r14 | rax = r14; 0x004b96da add rsp, 8 | 0x004b96de pop rbx | 0x004b96df pop r14 | 0x004b96e1 ret | return rax; | }