; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x40a260 */ | #include | ; (fcn) method.BloombergLP::balb::Choice3.operator_BloombergLP::balb::Choice3_const_ () | int64_t method_BloombergLP::balb::Choice3_operator_BloombergLP::balb::Choice3_const_ (int64_t arg2, uint32_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::balb::Choice3::operator=(BloombergLP::balb::Choice3 const&) */ 0x0040a260 push r14 | 0x0040a262 push rbx | 0x0040a263 push rax | 0x0040a264 mov r14, rdi | r14 = rdi; 0x0040a267 cmp rdi, rsi | | if (rdi != rsi) { 0x0040a26a je 0x40a417 | 0x0040a270 mov rbx, rsi | rbx = rsi; 0x0040a273 mov eax, dword [rsi + 0x170] | eax = *((rsi + 0x170)); 0x0040a279 cmp rax, 3 | | if (rax <= 3) { 0x0040a27d ja 0x40a30e | | /* switch table (4 cases) at 0x4460e0 */ 0x0040a283 jmp qword [rax*8 + 0x4460e0] | 0x0040a28a mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040a291 cmp rax, 3 | | if (rax <= 3) { 0x0040a295 ja 0x40a34f | | /* switch table (4 cases) at 0x446140 */ 0x0040a29b jmp qword [rax*8 + 0x446140] | 0x0040a2a2 mov rdi, r14 | 0x0040a2a5 mov rsi, rbx | 0x0040a2a8 call 0x4095a0 | BloombergLP::balb::Sequence6::operator=(BloombergLP::balb::Sequence6const&) (r14, rbx); 0x0040a2ad jmp 0x40a417 | goto label_0; 0x0040a2b2 mov bl, byte [rbx] | bl = *(rbx); 0x0040a2b4 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040a2bb cmp rax, 3 | | if (rax > 3) { 0x0040a2bf ja 0x40a3a0 | goto label_1; | } | /* switch table (4 cases) at 0x446120 */ 0x0040a2c5 jmp qword [rax*8 + 0x446120] | 0x0040a2cc mov rdi, r14 | 0x0040a2cf call 0x409400 | BloombergLP::balb::Sequence6::~Sequence6() (r14); 0x0040a2d4 jmp 0x40a3a0 | goto label_1; 0x0040a2d9 mov rdi, r14 | 0x0040a2dc mov rsi, rbx | 0x0040a2df call 0x40a540 | BloombergLP::balb::Choice3::makeSelection3(BloombergLP::balb::CustomStringconst&) (r14, rbx); 0x0040a2e4 jmp 0x40a417 | goto label_0; 0x0040a2e9 mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040a2f0 cmp rax, 3 | | if (rax > 3) { 0x0040a2f4 ja 0x40a3cc | goto label_2; | } | /* switch table (4 cases) at 0x446100 */ 0x0040a2fa jmp qword [rax*8 + 0x446100] | 0x0040a301 mov rdi, r14 | 0x0040a304 call 0x409400 | BloombergLP::balb::Sequence6::~Sequence6() (r14); 0x0040a309 jmp 0x40a3cc | | } else { 0x0040a30e mov eax, dword [r14 + 0x170] | eax = *((r14 + 0x170)); 0x0040a315 cmp rax, 3 | | if (rax > 3) { 0x0040a319 ja 0x40a40c | goto label_3; | } | /* switch table (4 cases) at 0x446160 */ 0x0040a31f jmp qword [rax*8 + 0x446160] | 0x0040a326 mov rdi, r14 | 0x0040a329 call 0x409400 | BloombergLP::balb::Sequence6::~Sequence6() (r14); 0x0040a32e jmp 0x40a40c | goto label_3; 0x0040a333 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040a338 je 0x40a347 | 0x0040a33a mov rsi, qword [r14] | rsi = *(r14); 0x0040a33d mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040a341 mov rax, qword [rdi] | rax = *(rdi); 0x0040a344 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040a347 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } 0x0040a34f mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x0040a35a mov rdx, qword [r14 + 0x178] | 0x0040a361 mov rdi, r14 | 0x0040a364 mov rsi, rbx | 0x0040a367 call 0x408c40 | BloombergLP::balb::Sequence6::Sequence6(BloombergLP::balb::Sequence6const&,BloombergLP::bslma::Allocator*) (r14, rbx, *((r14 + 0x178))); 0x0040a36c mov dword [r14 + 0x170], 0 | *((r14 + 0x170)) = 0; 0x0040a377 jmp 0x40a417 | goto label_0; 0x0040a37c mov byte [r14], bl | *(r14) = bl; 0x0040a37f jmp 0x40a417 | goto label_0; 0x0040a384 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040a389 je 0x40a398 | 0x0040a38b mov rsi, qword [r14] | rsi = *(r14); 0x0040a38e mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040a392 mov rax, qword [rdi] | rax = *(rdi); 0x0040a395 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040a398 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_1: 0x0040a3a0 mov byte [r14], bl | *(r14) = bl; 0x0040a3a3 mov dword [r14 + 0x170], 1 | *((r14 + 0x170)) = 1; 0x0040a3ae jmp 0x40a417 | goto label_0; 0x0040a3b0 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040a3b5 je 0x40a3c4 | 0x0040a3b7 mov rsi, qword [r14] | rsi = *(r14); 0x0040a3ba mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040a3be mov rax, qword [rdi] | rax = *(rdi); 0x0040a3c1 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040a3c4 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } | label_2: 0x0040a3cc mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; 0x0040a3d7 mov eax, dword [rbx] | eax = *(rbx); 0x0040a3d9 mov dword [r14], eax | *(r14) = eax; 0x0040a3dc mov dword [r14 + 0x170], 3 | *((r14 + 0x170)) = 3; 0x0040a3e7 jmp 0x40a417 | goto label_0; 0x0040a3e9 mov eax, dword [rbx] | eax = *(rbx); 0x0040a3eb mov dword [r14], eax | *(r14) = eax; 0x0040a3ee jmp 0x40a417 | goto label_0; 0x0040a3f0 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x0040a3f5 je 0x40a404 | 0x0040a3f7 mov rsi, qword [r14] | rsi = *(r14); 0x0040a3fa mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x0040a3fe mov rax, qword [rdi] | rax = *(rdi); 0x0040a401 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040a404 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | label_3: 0x0040a40c mov dword [r14 + 0x170], 0xffffffff | *((r14 + 0x170)) = 0xffffffff; | } | label_0: 0x0040a417 mov rax, r14 | rax = r14; 0x0040a41a add rsp, 8 | 0x0040a41e pop rbx | 0x0040a41f pop r14 | 0x0040a421 ret | return rax; | }