; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/none @ 0x40af10 */ | #include | ; (fcn) method.BloombergLP::balb::SequenceWithAnonymityChoice.operator_BloombergLP::balb::SequenceWithAnonymityChoice_const_ () | int64_t method_BloombergLP::balb::SequenceWithAnonymityChoice_operator_BloombergLP::balb::SequenceWithAnonymityChoice_const_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::balb::SequenceWithAnonymityChoice::operator=(BloombergLP::balb::SequenceWithAnonymityChoice const&) */ 0x0040af10 push r14 | 0x0040af12 push rbx | 0x0040af13 push rax | 0x0040af14 mov r14, rdi | r14 = rdi; 0x0040af17 cmp rdi, rsi | | if (rdi != rsi) { 0x0040af1a je 0x40b0d2 | 0x0040af20 mov rbx, rsi | rbx = rsi; 0x0040af23 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x0040af29 cmp rax, 3 | | if (rax <= 3) { 0x0040af2d ja 0x40af6e | | /* switch table (4 cases) at 0x446278 */ 0x0040af2f jmp qword [rax*8 + 0x446278] | 0x0040af36 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040af3d cmp eax, 2 | | if (eax != 2) { 0x0040af40 je 0x40afe9 | 0x0040af46 test eax, eax | | if (eax == 0) { 0x0040af48 jne 0x40b005 | 0x0040af4e mov rdi, r14 | 0x0040af51 mov rsi, rbx | 0x0040af54 call 0x409550 | BloombergLP::balb::Sequence6::operator=(BloombergLP::balb::Sequence6const&) (r14, rbx); 0x0040af59 jmp 0x40b0d2 | goto label_0; 0x0040af5e mov rdi, r14 | 0x0040af61 mov rsi, rbx | 0x0040af64 call 0x40b1f0 | BloombergLP::balb::SequenceWithAnonymityChoice::makeSelection3(BloombergLP::balb::CustomStringconst&) (r14, rbx); 0x0040af69 jmp 0x40b0d2 | | } else { 0x0040af6e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040af75 cmp eax, 2 | | if (eax == 2) { 0x0040af78 je 0x40b032 | goto label_1; | } 0x0040af7e test eax, eax | | if (eax != 0) { 0x0040af80 jne 0x40b04e | goto label_2; | } 0x0040af86 mov rdi, r14 | 0x0040af89 call 0x4093b0 | BloombergLP::balb::Sequence6::~Sequence6() (r14); 0x0040af8e jmp 0x40b04e | goto label_2; 0x0040af93 mov bl, byte [rbx] | bl = *(rbx); 0x0040af95 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040af9c test eax, eax | | if (eax == 0) { 0x0040af9e je 0x40b079 | goto label_3; | } 0x0040afa4 cmp eax, 2 | | if (eax == 2) { 0x0040afa7 je 0x40b083 | goto label_4; | } 0x0040afad cmp eax, 1 | | if (eax != 1) { 0x0040afb0 jne 0x40b09f | goto label_5; | } 0x0040afb6 mov byte [r14], bl | *(r14) = bl; 0x0040afb9 jmp 0x40b0d2 | goto label_0; 0x0040afbe mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040afc5 test eax, eax | | if (eax == 0) { 0x0040afc7 je 0x40b0af | goto label_6; | } 0x0040afcd cmp eax, 2 | | if (eax == 2) { 0x0040afd0 je 0x40b05b | goto label_7; | } 0x0040afd6 cmp eax, 3 | | if (eax != 3) { 0x0040afd9 jne 0x40b0b7 | goto label_8; | } 0x0040afdf mov eax, dword [rbx] | eax = *(rbx); 0x0040afe1 mov dword [r14], eax | *(r14) = eax; 0x0040afe4 jmp 0x40b0d2 | | } else { 0x0040afe9 cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x0040afee je 0x40affd | 0x0040aff0 mov rsi, qword [r14] | rsi = *(r14); 0x0040aff3 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040aff7 mov rax, qword [rdi] | rax = *(rdi); 0x0040affa call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040affd mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x0040b005 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x0040b010 mov rdx, qword [r14 + 0x178] | 0x0040b017 mov rdi, r14 | 0x0040b01a mov rsi, rbx | 0x0040b01d call 0x408bf0 | BloombergLP::balb::Sequence6::Sequence6(BloombergLP::balb::Sequence6const&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x0040b022 mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x0040b02d jmp 0x40b0d2 | goto label_0; | label_1: 0x0040b032 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040b037 je 0x40b046 | 0x0040b039 mov rsi, qword [r14] | rsi = *(r14); 0x0040b03c mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040b040 mov rax, qword [rdi] | rax = *(rdi); 0x0040b043 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040b046 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_2: 0x0040b04e mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x0040b059 jmp 0x40b0d2 | goto label_0; | label_7: 0x0040b05b cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040b060 je 0x40b06f | 0x0040b062 mov rsi, qword [r14] | rsi = *(r14); 0x0040b065 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040b069 mov rax, qword [rdi] | rax = *(rdi); 0x0040b06c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040b06f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x0040b077 jmp 0x40b0b7 | goto label_8; | label_3: 0x0040b079 mov rdi, r14 | 0x0040b07c call 0x4093b0 | BloombergLP::balb::Sequence6::~Sequence6() (r14); 0x0040b081 jmp 0x40b09f | goto label_5; | label_4: 0x0040b083 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040b088 je 0x40b097 | 0x0040b08a mov rsi, qword [r14] | rsi = *(r14); 0x0040b08d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040b091 mov rax, qword [rdi] | rax = *(rdi); 0x0040b094 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040b097 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_5: 0x0040b09f mov byte [r14], bl | *(r14) = bl; 0x0040b0a2 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x0040b0ad jmp 0x40b0d2 | goto label_0; | label_6: 0x0040b0af mov rdi, r14 | 0x0040b0b2 call 0x4093b0 | BloombergLP::balb::Sequence6::~Sequence6() (r14); | label_8: 0x0040b0b7 mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x0040b0c2 mov eax, dword [rbx] | eax = *(rbx); 0x0040b0c4 mov dword [r14], eax | *(r14) = eax; 0x0040b0c7 mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; | } | } | label_0: 0x0040b0d2 mov rax, r14 | rax = r14; 0x0040b0d5 add rsp, 8 | 0x0040b0d9 pop rbx | 0x0040b0da pop r14 | 0x0040b0dc ret | return rax; | }