; assembly | /* r2dec pseudo code output */ | /* bdlcc_stripedunorderedmap.t/assume @ 0x586190 */ | #include | ; (fcn) method.BloombergLP::bslmt::ThroughputBenchmarkResult.initialize_int__bsl::vector_int__bsl::allocator_int____const_ () | int64_t method_BloombergLP::bslmt::ThroughputBenchmarkResult_initialize_int_bsl::vector_int_bsl::allocator_int_const_ (int64_t arg3, uint32_t arg2, int64_t arg1) { | int64_t var_8h; | uint32_t var_10h; | int64_t var_18h; | int64_t var_20h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bslmt::ThroughputBenchmarkResult::initialize(int, bsl::vector > const&) */ 0x00586190 push rbp | 0x00586191 push r15 | 0x00586193 push r14 | 0x00586195 push r13 | 0x00586197 push r12 | 0x00586199 push rbx | 0x0058619a sub rsp, 0x28 | 0x0058619e mov r14, rdx | r14 = rdx; 0x005861a1 mov rbx, rdi | rbx = rdi; 0x005861a4 mov rbp, qword [rdx + 8] | rbp = *((rdx + 8)); 0x005861a8 sub rbp, qword [rdx] | rbp -= *(rdx); 0x005861ab shr rbp, 2 | rbp >>= 2; 0x005861af mov esi, esi | 0x005861b1 mov qword [rsp + 0x10], rsi | *((rsp + 0x10)) = rsi; 0x005861b6 call 0x5871b0 | bsl::vector>,bsl::allocator>>>,bsl::allocator>,bsl::allocator>>>>>::resize(unsigned long) (rdi, esi); 0x005861bb movsxd rax, ebp | rax = (int64_t) ebp; 0x005861be mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x005861c3 mov ebp, eax | 0x005861c5 xor r15d, r15d | r15d = 0; 0x005861c8 lea r13, [rsp + 0x20] | r13 = rsp + 0x20; 0x005861cd jmp 0x5861df | | while (r12d <= 0) { | label_0: 0x005861d0 mov r15, qword [rsp + 0x18] | r15 = *((rsp + 0x18)); 0x005861d5 inc r15 | r15++; 0x005861d8 cmp r15, qword [rsp + 0x10] | | if (r15 == *((rsp + 0x10))) { 0x005861dd je 0x586240 | goto label_1; | } 0x005861df mov qword [rsp + 0x18], r15 | *((rsp + 0x18)) = r15; 0x005861e4 shl r15, 5 | r15 <<= 5; 0x005861e8 mov rdi, qword [rbx] | 0x005861eb add rdi, r15 | rdi += r15; 0x005861ee mov r12, qword [rsp + 8] | r12 = *((rsp + 8)); 0x005861f3 mov rsi, r12 | 0x005861f6 call 0x587670 | rax = bsl::vector>,bsl::allocator>>>::resize(unsigned long) (*(rbx), *((rsp + 8))); 0x005861fb test r12d, r12d | 0x005861fe jle 0x5861d0 | | } 0x00586200 xor r12d, r12d | r12d = 0; 0x00586203 nop word cs:[rax + rax] | 0x0058620d nop dword [rax] | | do { 0x00586210 mov rax, qword [rbx] | rax = *(rbx); 0x00586213 mov rdi, r12 | 0x00586216 shl rdi, 5 | rdi <<= 5; 0x0058621a add rdi, qword [rax + r15] | rdi += *((rax + r15)); 0x0058621e mov rax, qword [r14] | rax = *(r14); 0x00586221 movsxd rsi, dword [rax + r12*4] | rsi = *((rax + r12*4)); 0x00586225 mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x0058622e mov rdx, r13 | 0x00586231 call 0x5a70d0 | bsl::vector>::resize(unsigned long,doubleconst&) (r12, rsi, r13); 0x00586236 inc r12 | r12++; 0x00586239 cmp r12, rbp | 0x0058623c jne 0x586210 | | } while (r12 != rbp); 0x0058623e jmp 0x5861d0 | goto label_0; | label_1: 0x00586240 add rsp, 0x28 | 0x00586244 pop rbx | 0x00586245 pop r12 | 0x00586247 pop r13 | 0x00586249 pop r14 | 0x0058624b pop r15 | 0x0058624d pop rbp | 0x0058624e ret | return rax; | }