; assembly | /* r2dec pseudo code output */ | /* bdlcc_stripedunorderedmap.t/none @ 0x585e40 */ | #include | ; (fcn) method.BloombergLP::bslmt::ThroughputBenchmarkResult.ThroughputBenchmarkResult_int__bsl::vector_int__bsl::allocator_int____const__BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::bslmt::ThroughputBenchmarkResult_ThroughputBenchmarkResult_int_bsl::vector_int_bsl::allocator_int_const_BloombergLP::bslma::Allocator_ (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | signed int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bslmt::ThroughputBenchmarkResult::ThroughputBenchmarkResult(int, bsl::vector > const&, BloombergLP::bslma::Allocator*) */ 0x00585e40 push rbp | 0x00585e41 push r15 | 0x00585e43 push r14 | 0x00585e45 push r13 | 0x00585e47 push r12 | 0x00585e49 push rbx | 0x00585e4a sub rsp, 0x28 | 0x00585e4e mov rbx, rdx | rbx = rdx; 0x00585e51 mov r12d, esi | r12d = esi; 0x00585e54 mov r14, rdi | r14 = rdi; 0x00585e57 test rcx, rcx | | if (rcx == 0) { 0x00585e5a jne 0x585e70 | 0x00585e5c mov rcx, qword [rip + 0x29d67d] | rcx = BloombergLP::bslma::Default::s_defaultAllocator; 0x00585e63 test rcx, rcx | | if (rcx != 0) { 0x00585e66 jne 0x585e70 | goto label_1; | } 0x00585e68 call 0x5827a0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x00585e6d mov rcx, rax | rcx = rax; | } | label_1: 0x00585e70 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00585e73 movups xmmword [r14], xmm0 | __asm ("movups xmmword [r14], xmm0"); 0x00585e77 mov qword [r14 + 0x10], 0 | *((r14 + 0x10)) = 0; 0x00585e7f mov qword [r14 + 0x18], rcx | *((r14 + 0x18)) = rcx; 0x00585e83 mov rbp, qword [rbx + 8] | rbp = *((rbx + 8)); 0x00585e87 sub rbp, qword [rbx] | rbp -= *(rbx); 0x00585e8a movsxd rsi, r12d | rsi = (int64_t) r12d; 0x00585e8d mov rdi, r14 | 0x00585e90 call 0x587030 | bsl::vector>,bsl::allocator>>>,bsl::allocator>,bsl::allocator>>>>>::resize(unsigned long) (r14, rsi); 0x00585e95 test r12d, r12d | | if (r12d <= 0) { 0x00585e98 jle 0x585f33 | goto label_2; | } 0x00585e9e shr rbp, 2 | rbp >>= 2; 0x00585ea2 mov qword [rsp + 8], rbp | *((rsp + 8)) = rbp; 0x00585ea7 movsxd rax, ebp | rax = (int64_t) ebp; 0x00585eaa mov ecx, r12d | ecx = r12d; 0x00585ead mov qword [rsp], rcx | *(rsp) = rcx; 0x00585eb1 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x00585eb6 mov r13d, eax | r13d = eax; 0x00585eb9 xor ebp, ebp | ebp = 0; 0x00585ebb jmp 0x585ed1 | | while (*((rsp + 8)) <= 0) { | label_0: 0x00585ec0 mov rbp, qword [rsp + 0x18] | rbp = *((rsp + 0x18)); 0x00585ec5 inc rbp | rbp++; 0x00585ec8 cmp rbp, qword [rsp] | 0x00585ecc mov r14, r12 | r14 = r12; | if (rbp == *(rsp)) { 0x00585ecf je 0x585f33 | goto label_2; | } 0x00585ed1 mov qword [rsp + 0x18], rbp | *((rsp + 0x18)) = rbp; 0x00585ed6 shl rbp, 5 | rbp <<= 5; 0x00585eda mov r12, r14 | r12 = r14; 0x00585edd mov rdi, qword [r14] | 0x00585ee0 add rdi, rbp | rdi += rbp; 0x00585ee3 mov rsi, qword [rsp + 0x10] | 0x00585ee8 call 0x5874f0 | bsl::vector>,bsl::allocator>>>::resize(unsigned long) (*(r14), *((rsp + 0x10))); 0x00585eed cmp dword [rsp + 8], 0 | 0x00585ef2 jle 0x585ec0 | | } 0x00585ef4 xor r14d, r14d | r14d = 0; 0x00585ef7 xor r15d, r15d | r15d = 0; 0x00585efa nop word [rax + rax] | | do { 0x00585f00 mov rax, qword [r12] | rax = *(r12); 0x00585f04 mov rdi, qword [rax + rbp] | 0x00585f08 add rdi, r14 | rdi += r14; 0x00585f0b mov rax, qword [rbx] | rax = *(rbx); 0x00585f0e movsxd rsi, dword [rax + r15*4] | rsi = *((rax + r15*4)); 0x00585f12 mov qword [rsp + 0x20], 0 | *((rsp + 0x20)) = 0; 0x00585f1b lea rdx, [rsp + 0x20] | 0x00585f20 call 0x5a6f60 | bsl::vector>::resize(unsigned long,doubleconst&) (*((rax + rbp)), rsi, rsp + 0x20); 0x00585f25 inc r15 | r15++; 0x00585f28 add r14, 0x20 | r14 += 0x20; 0x00585f2c cmp r13, r15 | 0x00585f2f jne 0x585f00 | | } while (r13 != r15); 0x00585f31 jmp 0x585ec0 | goto label_0; | label_2: 0x00585f33 add rsp, 0x28 | 0x00585f37 pop rbx | 0x00585f38 pop r12 | 0x00585f3a pop r13 | 0x00585f3c pop r14 | 0x00585f3e pop r15 | 0x00585f40 pop rbp | 0x00585f41 ret | return rax; | }