; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4d1120 */ | #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) */ 0x004d1120 push r14 | 0x004d1122 push rbx | 0x004d1123 push rax | 0x004d1124 mov r14, rdi | r14 = rdi; 0x004d1127 cmp esi, 0xffffffff | | if (esi != 0xffffffff) { 0x004d112a je 0x4d1181 | 0x004d112c cmp esi, 1 | | if (esi != 1) { 0x004d112f je 0x4d115c | 0x004d1131 mov ebx, 0xffffffff | ebx = 0xffffffff; 0x004d1136 test esi, esi | | if (esi != 0) { 0x004d1138 jne 0x4d1225 | goto label_0; | } 0x004d113e mov eax, dword [r14 + 0x30] | eax = *((r14 + 0x30)); 0x004d1142 cmp eax, 1 | | if (eax != 1) { 0x004d1145 je 0x4d11fb | 0x004d114b test eax, eax | | if (eax == 0) { 0x004d114d jne 0x4d1217 | 0x004d1153 mov byte [r14], 0 | *(r14) = 0; 0x004d1157 jmp 0x4d1223 | | } else { 0x004d115c mov eax, dword [r14 + 0x30] | eax = *((r14 + 0x30)); 0x004d1160 test eax, eax | | if (eax != 0) { 0x004d1162 je 0x4d11b4 | 0x004d1164 cmp eax, 1 | | if (eax != 1) { 0x004d1167 jne 0x4d11b4 | goto label_1; | } 0x004d1169 xor ebx, ebx | ebx = 0; 0x004d116b mov rdi, r14 | 0x004d116e xor esi, esi | 0x004d1170 mov rdx, 0xffffffffffffffff | 0x004d1177 call 0x51c820 | bsl::basic_string,bsl::allocator>::erase(unsigned long,unsigned long) (r14, 0, 0xffffffffffffffff); 0x004d117c jmp 0x4d1225 | | } else { 0x004d1181 mov eax, dword [r14 + 0x30] | eax = *((r14 + 0x30)); 0x004d1185 test eax, eax | | if (eax != 0) { 0x004d1187 je 0x4d11aa | 0x004d1189 cmp eax, 1 | | if (eax != 1) { 0x004d118c jne 0x4d11aa | goto label_2; | } 0x004d118e cmp qword [r14 + 0x20], 0x17 | | if (*((r14 + 0x20)) != 0x17) { 0x004d1193 je 0x4d11a2 | 0x004d1195 mov rsi, qword [r14] | rsi = *(r14); 0x004d1198 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d119c mov rax, qword [rdi] | rax = *(rdi); 0x004d119f call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d11a2 mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; | } | label_2: 0x004d11aa mov dword [r14 + 0x30], 0xffffffff | *((r14 + 0x30)) = 0xffffffff; 0x004d11b2 jmp 0x4d1223 | goto label_3; | } | label_1: 0x004d11b4 mov dword [r14 + 0x30], 0xffffffff | *((r14 + 0x30)) = 0xffffffff; 0x004d11bc mov rax, qword [r14 + 0x38] | rax = *((r14 + 0x38)); 0x004d11c0 test rax, rax | | if (rax == 0) { 0x004d11c3 jne 0x4d11d6 | 0x004d11c5 mov rax, qword [rip + 0x3fbedc] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004d11cc test rax, rax | | if (rax != 0) { 0x004d11cf jne 0x4d11d6 | goto label_4; | } 0x004d11d1 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_4: 0x004d11d6 mov qword [r14], 0 | *(r14) = 0; 0x004d11dd movaps xmm0, xmmword [rip + 0x6b82c] | xmm0 = .comment; 0x004d11e4 movups xmmword [r14 + 0x18], xmm0 | __asm ("movups xmmword [r14 + 0x18], xmm0"); 0x004d11e9 mov qword [r14 + 0x28], rax | *((r14 + 0x28)) = rax; 0x004d11ed mov byte [r14], 0 | *(r14) = 0; 0x004d11f1 mov dword [r14 + 0x30], 1 | *((r14 + 0x30)) = 1; 0x004d11f9 jmp 0x4d1223 | | } else { 0x004d11fb cmp qword [r14 + 0x20], 0x17 | | } | } | if (*((r14 + 0x20)) != 0x17) { 0x004d1200 je 0x4d120f | 0x004d1202 mov rsi, qword [r14] | rsi = *(r14); 0x004d1205 mov rdi, qword [r14 + 0x28] | rdi = *((r14 + 0x28)); 0x004d1209 mov rax, qword [rdi] | rax = *(rdi); 0x004d120c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x004d120f mov qword [r14 + 0x18], 0xffffffffffffffff | *((r14 + 0x18)) = 0xffffffffffffffff; 0x004d1217 mov byte [r14], 0 | *(r14) = 0; 0x004d121b mov dword [r14 + 0x30], 0 | *((r14 + 0x30)) = 0; | } | label_3: 0x004d1223 xor ebx, ebx | ebx = 0; | } | label_0: 0x004d1225 mov eax, ebx | eax = ebx; 0x004d1227 add rsp, 8 | 0x004d122b pop rbx | 0x004d122c pop r14 | 0x004d122e ret | return rax; | }