; assembly | /* r2dec pseudo code output */ | /* bdlcc_stripedunorderedmap.t/none @ 0x585ff0 */ | #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, int64_t arg2, int64_t arg1) { | uint32_t var_8h; | int64_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&) */ 0x00585ff0 push rbp | 0x00585ff1 push r15 | 0x00585ff3 push r14 | 0x00585ff5 push r13 | 0x00585ff7 push r12 | 0x00585ff9 push rbx | 0x00585ffa sub rsp, 0x28 | 0x00585ffe mov r14, rdx | r14 = rdx; 0x00586001 mov r12d, esi | r12d = esi; 0x00586004 mov rbx, rdi | rbx = rdi; 0x00586007 mov rbp, qword [rdx + 8] | rbp = *((rdx + 8)); 0x0058600b sub rbp, qword [rdx] | rbp -= *(rdx); 0x0058600e movsxd r15, esi | r15 = (int64_t) esi; 0x00586011 mov rsi, r15 | 0x00586014 call 0x587030 | bsl::vector>,bsl::allocator>>>,bsl::allocator>,bsl::allocator>>>>>::resize(unsigned long) (rdi, r15); 0x00586019 test r15d, r15d | | if (r15d <= 0) { 0x0058601c jle 0x5860c0 | goto label_1; | } 0x00586022 shr rbp, 2 | rbp >>= 2; 0x00586026 movsxd rax, ebp | rax = (int64_t) ebp; 0x00586029 mov ecx, r12d | ecx = r12d; 0x0058602c mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x00586031 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x00586036 mov ebp, eax | 0x00586038 xor r13d, r13d | r13d = 0; 0x0058603b lea r12, [rsp + 0x20] | r12 = rsp + 0x20; 0x00586040 jmp 0x58605f | | while (r15d <= 0) { | label_0: 0x00586050 mov r13, qword [rsp + 0x18] | r13 = *((rsp + 0x18)); 0x00586055 inc r13 | r13++; 0x00586058 cmp r13, qword [rsp + 8] | | if (r13 == *((rsp + 8))) { 0x0058605d je 0x5860c0 | goto label_1; | } 0x0058605f mov qword [rsp + 0x18], r13 | *((rsp + 0x18)) = r13; 0x00586064 shl r13, 5 | r13 <<= 5; 0x00586068 mov rdi, qword [rbx] | 0x0058606b add rdi, r13 | rdi += r13; 0x0058606e mov r15, qword [rsp + 0x10] | r15 = *((rsp + 0x10)); 0x00586073 mov rsi, r15 | 0x00586076 call 0x5874f0 | rax = bsl::vector>,bsl::allocator>>>::resize(unsigned long) (*(rbx), *((rsp + 0x10))); 0x0058607b test r15d, r15d | 0x0058607e jle 0x586050 | | } 0x00586080 xor r15d, r15d | r15d = 0; 0x00586083 nop word cs:[rax + rax] | 0x0058608d nop dword [rax] | | do { 0x00586090 mov rax, qword [rbx] | rax = *(rbx); 0x00586093 mov rdi, r15 | 0x00586096 shl rdi, 5 | rdi <<= 5; 0x0058609a add rdi, qword [rax + r13] | rdi += *((rax + r13)); 0x0058609e mov rax, qword [r14] | rax = *(r14); 0x005860a1 movsxd rsi, dword [rax + r15*4] | rsi = *((rax + r15*4)); 0x005860a5 mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x005860ae mov rdx, r12 | 0x005860b1 call 0x5a6f60 | bsl::vector>::resize(unsigned long,doubleconst&) (r15, rsi, r12); 0x005860b6 inc r15 | r15++; 0x005860b9 cmp r15, rbp | 0x005860bc jne 0x586090 | | } while (r15 != rbp); 0x005860be jmp 0x586050 | goto label_0; | label_1: 0x005860c0 add rsp, 0x28 | 0x005860c4 pop rbx | 0x005860c5 pop r12 | 0x005860c7 pop r13 | 0x005860c9 pop r14 | 0x005860cb pop r15 | 0x005860cd pop rbp | 0x005860ce ret | return rax; | }