; assembly | /* r2dec pseudo code output */ | /* bblb_schedulegenerationutil.t/assume @ 0x41d190 */ | #include | ; (fcn) method.BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Unsigned_.replaceImp_void__unsigned_long__int__void__unsigned_long__int__unsigned_long_ () | int64_t method_BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Unsigned_replaceImp_void_unsigned_long_int_void_unsigned_long_int_unsigned_long_ (int64_t arg_20h, int64_t arg_28h, void ** arg6, int64_t arg5, int64_t arg4, void ** arg3, int64_t arg2, int64_t arg7, int64_t arg8, int64_t arg9) { | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | xmm0 = arg7; | xmm1 = arg8; | xmm2 = arg9; | /* BloombergLP::bdlc::PackedIntArrayImp::replaceImp(void*, unsigned long, int, void*, unsigned long, int, unsigned long) */ 0x0041d190 push r15 | 0x0041d192 push r14 | 0x0041d194 push rbx | 0x0041d195 mov r14, qword [rsp + 0x28] | r14 = *((rsp + 0x28)); 0x0041d19a mov r10d, dword [rsp + 0x20] | r10d = *((rsp + 0x20)); 0x0041d19f movsxd r11, ecx | r11 = (int64_t) ecx; 0x0041d1a2 mov rax, r11 | rax = r11; 0x0041d1a5 imul rax, rdx | rax *= rdx; 0x0041d1a9 add rax, rsi | rax += rsi; 0x0041d1ac movsxd r15, r10d | r15 = (int64_t) r10d; 0x0041d1af mov rbx, r15 | rbx = r15; 0x0041d1b2 imul rbx, r9 | rbx *= r9; 0x0041d1b6 add rbx, r8 | rbx += r8; 0x0041d1b9 cmp rax, rbx | | if (rax <= rbx) { 0x0041d1bc ja 0x41d1ce | 0x0041d1be lea rdi, [r14 + rdx] | rdi = r14 + rdx; 0x0041d1c2 imul rdi, r11 | rdi *= r11; 0x0041d1c6 add rdi, rsi | rdi += rsi; 0x0041d1c9 cmp rdi, rbx | | if (rdi <= rbx) { 0x0041d1cc jbe 0x41d1de | goto label_0; | } | } 0x0041d1ce lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041d1d2 imul rbx, r15 | rbx *= r15; 0x0041d1d6 add rbx, r8 | rbx += r8; 0x0041d1d9 cmp rax, rbx | | if (rax < rbx) { 0x0041d1dc jae 0x41d1e7 | | label_0: 0x0041d1de dec ecx | ecx--; | /* switch table (80 cases) at 0x45fea0 */ 0x0041d1e0 jmp qword [rcx*8 + 0x45fea0] | | } 0x0041d1e7 lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041d1eb imul rax, r11 | rax *= r11; 0x0041d1ef add rax, rsi | rax += rsi; 0x0041d1f2 cmp rax, rbx | 0x0041d1f5 dec ecx | ecx--; | /* switch table (80 cases) at 0x45fea0 */ 0x0041d1f7 jmp qword [rcx*8 + 0x45fea0] | | }