; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4d12b0 */ | #include | ; (fcn) method.BloombergLP::s_baltst::SequenceWithAnonymityChoice1.makeSelection_int_ () | int64_t method_BloombergLP::s_baltst::SequenceWithAnonymityChoice1_makeSelection_int_ (uint32_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::SequenceWithAnonymityChoice1::makeSelection(int) */ 0x004d12b0 push r14 | 0x004d12b2 push rbx | 0x004d12b3 push rax | 0x004d12b4 mov r14, rdi | r14 = rdi; 0x004d12b7 cmp esi, 0xffffffff | | if (esi != 0xffffffff) { 0x004d12ba je 0x4d130b | 0x004d12bc cmp esi, 1 | | if (esi != 1) { 0x004d12bf je 0x4d12ec | 0x004d12c1 mov ebx, 0xffffffff | ebx = 0xffffffff; 0x004d12c6 test esi, esi | | if (esi != 0) { 0x004d12c8 jne 0x4d13a9 | goto label_0; | } 0x004d12ce mov eax, dword [r14 + 0x30] | eax = *((r14 + 0x30)); 0x004d12d2 cmp eax, 1 | | if (eax != 1) { 0x004d12d5 je 0x4d137f | 0x004d12db test eax, eax | | if (eax == 0) { 0x004d12dd jne 0x4d139b | 0x004d12e3 mov byte [r14], 0 | *(r14) = 0; 0x004d12e7 jmp 0x4d13a7 | | } else { 0x004d12ec cmp dword [r14 + 0x30], 1 | | if (*((r14 + 0x30)) == 1) { 0x004d12f1 jne 0x4d1338 | 0x004d12f3 xor ebx, ebx | ebx = 0; 0x004d12f5 mov rdi, r14 | 0x004d12f8 xor esi, esi | 0x004d12fa mov rdx, 0xffffffffffffffff | 0x004d1301 call 0x51d460 | bsl::basic_string,bsl::allocator>::erase(unsigned long,unsigned long) (r14, 0, 0xffffffffffffffff); 0x004d1306 jmp 0x4d13a9 | | } else { 0x004d130b cmp dword [r14 + 0x30], 1 | | if (*((r14 + 0x30)) == 1) { 0x004d1310 jne 0x4d132e | 0x004d1312 cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004d1317 je 0x4d1326 | 0x004d1319 mov rsi, qword [r14] | rsi = *(r14); 0x004d131c mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d1320 mov rax, qword [rdi] | rax = *(rdi); 0x004d1323 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d1326 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } 0x004d132e mov dword [r14 + 0x30], 0xffffffff | *((r14 + 0x30)) = 0xffffffff; 0x004d1336 jmp 0x4d13a7 | goto label_1; | } 0x004d1338 mov dword [r14 + 0x30], 0xffffffff | *((r14 + 0x30)) = 0xffffffff; 0x004d1340 mov rax, qword [r14 + 0x38] | rax = *((r14 + 0x38)); 0x004d1344 test rax, rax | | if (rax == 0) { 0x004d1347 jne 0x4d135a | 0x004d1349 mov rax, qword [rip + 0x3fbd58] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004d1350 test rax, rax | | if (rax != 0) { 0x004d1353 jne 0x4d135a | goto label_2; | } 0x004d1355 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_2: 0x004d135a mov qword [r14], 0 | *(r14) = 0; 0x004d1361 movaps xmm0, xmmword [rip + 0x6c2c8] | xmm0 = .comment; 0x004d1368 movups xmmword [r14 + 0x18], xmm0 | __asm ("movups xmmword [r14 + 0x18], xmm0"); 0x004d136d mov qword [r14 + 0x28], rax | *((r14 + 0x28)) = rax; 0x004d1371 mov byte [r14], 0 | *(r14) = 0; 0x004d1375 mov dword [r14 + 0x30], 1 | *((r14 + 0x30)) = 1; 0x004d137d jmp 0x4d13a7 | | } else { 0x004d137f cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004d1384 je 0x4d1393 | 0x004d1386 mov rsi, qword [r14] | rsi = *(r14); 0x004d1389 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d138d mov rax, qword [rdi] | rax = *(rdi); 0x004d1390 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d1393 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004d139b mov byte [r14], 0 | *(r14) = 0; 0x004d139f mov dword [r14 + 0x30], 0 | *((r14 + 0x30)) = 0; | } | label_1: 0x004d13a7 xor ebx, ebx | ebx = 0; | } | label_0: 0x004d13a9 mov eax, ebx | eax = ebx; 0x004d13ab add rsp, 8 | 0x004d13af pop rbx | 0x004d13b0 pop r14 | 0x004d13b2 ret | return rax; | }