; assembly | /* r2dec pseudo code output */ | /* bblb_schedulegenerationutil.t/none @ 0x41a170 */ | #include | ; (fcn) method.BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Signed_.replaceImp_void__unsigned_long__int__void__unsigned_long__int__unsigned_long_ () | uint64_t method_BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Signed_replaceImp_void_unsigned_long_int_void_unsigned_long_int_unsigned_long_ (int64_t arg_18h, int64_t arg_20h, void ** arg6, int64_t arg5, uint32_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) */ 0x0041a170 push r14 | 0x0041a172 push rbx | 0x0041a173 dec ecx | ecx--; 0x0041a175 cmp ecx, 7 | | if (ecx > 7) { 0x0041a178 ja 0x41b528 | goto label_8; | } 0x0041a17e mov r14, qword [rsp + 0x20] | r14 = *((rsp + 0x20)); 0x0041a183 mov ebx, dword [rsp + 0x18] | ebx = *((rsp + 0x18)); | /* switch table (8 cases) at 0x4602b0 */ 0x0041a187 jmp qword [rcx*8 + 0x4602b0] | 0x0041a18e lea r10, [rsi + rdx] | r10 = rsi + rdx; 0x0041a192 cmp ebx, 8 | | if (ebx == 8) { 0x0041a195 je 0x41a4d1 | goto label_9; | } 0x0041a19b cmp ebx, 4 | | if (ebx == 4) { 0x0041a19e je 0x41a5b6 | goto label_10; | } 0x0041a1a4 cmp ebx, 2 | | if (ebx != 2) { 0x0041a1a7 jne 0x41b528 | goto label_8; | } 0x0041a1ad test r14, r14 | | if (r14 == 0) { 0x0041a1b0 je 0x41b528 | goto label_8; | } 0x0041a1b6 lea rcx, [r10 + r14] | rcx = r10 + r14; 0x0041a1ba lea rax, [r8 + r9*2] | rax = r8 + r9*2; 0x0041a1be lea rdi, [rax + r14*2] | rdi = rax + r14*2; 0x0041a1c2 cmp r14, 0x10 | | if (r14 >= 0x10) { 0x0041a1c6 jb 0x41a1e2 | 0x0041a1c8 lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a1cc lea rbx, [r8 + rbx*2] | rbx = r8 + rbx*2; 0x0041a1d0 cmp r10, rbx | | if (r10 >= rbx) { 0x0041a1d3 jae 0x41acce | goto label_11; | } 0x0041a1d9 cmp rax, rcx | | if (rax >= rcx) { 0x0041a1dc jae 0x41acce | goto label_11; | } | } 0x0041a1e2 xor r10d, r10d | r10d = 0; | label_0: 0x0041a1e5 mov rax, r10 | rax = r10; 0x0041a1e8 not rax | rax = ~rax; 0x0041a1eb add rax, r14 | rax += r14; 0x0041a1ee mov rdx, r14 | rdx = r14; 0x0041a1f1 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a1f5 je 0x41a21a | goto label_12; | } 0x0041a1f7 neg rdx | rdx = -rdx; 0x0041a1fa xor esi, esi | esi = 0; 0x0041a1fc nop dword [rax] | | do { 0x0041a200 movzx ebx, byte [rdi - 2] | ebx = *((rdi - 2)); 0x0041a204 add rdi, 0xfffffffffffffffe | rdi += 0xfffffffffffffffe; 0x0041a208 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041a20c dec rsi | rsi--; 0x0041a20f cmp rdx, rsi | 0x0041a212 jne 0x41a200 | | } while (rdx != rsi); 0x0041a214 sub r10, rsi | r10 -= rsi; 0x0041a217 add rcx, rsi | rcx += rsi; | label_12: 0x0041a21a cmp rax, 7 | | if (rax < 7) { 0x0041a21e jb 0x41b528 | goto label_8; | } 0x0041a224 sub r10, r14 | r10 -= r14; 0x0041a227 xor eax, eax | eax = 0; 0x0041a229 nop dword [rax] | | do { 0x0041a230 movzx edx, byte [rdi + rax*2 - 2] | edx = *((rdi + rax*2 - 2)); 0x0041a235 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041a239 movzx edx, byte [rdi + rax*2 - 4] | edx = *((rdi + rax*2 - 4)); 0x0041a23e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041a242 movzx edx, byte [rdi + rax*2 - 6] | edx = *((rdi + rax*2 - 6)); 0x0041a247 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041a24b movzx edx, byte [rdi + rax*2 - 8] | edx = *((rdi + rax*2 - 8)); 0x0041a250 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041a254 movzx edx, byte [rdi + rax*2 - 0xa] | edx = *((rdi + rax*2 - 0xa)); 0x0041a259 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041a25d movzx edx, byte [rdi + rax*2 - 0xc] | edx = *((rdi + rax*2 - 0xc)); 0x0041a262 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041a266 movzx edx, byte [rdi + rax*2 - 0xe] | edx = *((rdi + rax*2 - 0xe)); 0x0041a26b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041a26f movzx edx, byte [rdi + rax*2 - 0x10] | edx = *((rdi + rax*2 - 0x10)); 0x0041a274 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041a278 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a27c cmp r10, rax | 0x0041a27f jne 0x41a230 | | } while (r10 != rax); 0x0041a281 jmp 0x41b528 | goto label_8; 0x0041a286 lea rax, [rsi + rdx*2] | rax = rsi + rdx*2; 0x0041a28a cmp ebx, 8 | | if (ebx == 8) { 0x0041a28d je 0x41a696 | goto label_13; | } 0x0041a293 cmp ebx, 4 | | if (ebx == 4) { 0x0041a296 je 0x41a6c4 | goto label_14; | } 0x0041a29c cmp ebx, 1 | | if (ebx != 1) { 0x0041a29f jne 0x41b528 | goto label_8; | } 0x0041a2a5 test r14, r14 | | if (r14 == 0) { 0x0041a2a8 je 0x41b528 | goto label_8; | } 0x0041a2ae lea rcx, [rax + r14*2] | rcx = rax + r14*2; 0x0041a2b2 lea rbx, [r8 + r9] | rbx = r8 + r9; 0x0041a2b6 lea rdi, [rbx + r14] | rdi = rbx + r14; 0x0041a2ba cmp r14, 0x10 | | if (r14 >= 0x10) { 0x0041a2be jb 0x41a2da | 0x0041a2c0 cmp rax, rdi | | if (rax >= rdi) { 0x0041a2c3 jae 0x41ad65 | goto label_15; | } 0x0041a2c9 lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041a2cd lea rax, [rsi + rax*2] | rax = rsi + rax*2; 0x0041a2d1 cmp rbx, rax | | if (rbx >= rax) { 0x0041a2d4 jae 0x41ad65 | goto label_15; | } | } 0x0041a2da xor r10d, r10d | r10d = 0; | label_1: 0x0041a2dd mov rax, r10 | rax = r10; 0x0041a2e0 not rax | rax = ~rax; 0x0041a2e3 add rax, r14 | rax += r14; 0x0041a2e6 mov rdx, r14 | rdx = r14; 0x0041a2e9 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a2ed je 0x41a31b | goto label_16; | } 0x0041a2ef neg rdx | rdx = -rdx; 0x0041a2f2 xor esi, esi | esi = 0; 0x0041a2f4 nop word cs:[rax + rax] | 0x0041a2fe nop | | do { 0x0041a300 movsx ebx, byte [rdi + rsi - 1] | ebx = *((rdi + rsi - 1)); 0x0041a305 mov word [rcx - 2], bx | *((rcx - 2)) = bx; 0x0041a309 add rcx, 0xfffffffffffffffe | rcx += 0xfffffffffffffffe; 0x0041a30d dec rsi | rsi--; 0x0041a310 cmp rdx, rsi | 0x0041a313 jne 0x41a300 | | } while (rdx != rsi); 0x0041a315 sub r10, rsi | r10 -= rsi; 0x0041a318 add rdi, rsi | rdi += rsi; | label_16: 0x0041a31b cmp rax, 7 | | if (rax < 7) { 0x0041a31f jb 0x41b528 | goto label_8; | } 0x0041a325 sub r10, r14 | r10 -= r14; 0x0041a328 xor eax, eax | eax = 0; 0x0041a32a nop word [rax + rax] | | do { 0x0041a330 movsx edx, byte [rdi + rax - 1] | edx = *((rdi + rax - 1)); 0x0041a335 mov word [rcx + rax*2 - 2], dx | *((rcx + rax*2 - 2)) = dx; 0x0041a33a movsx edx, byte [rdi + rax - 2] | edx = *((rdi + rax - 2)); 0x0041a33f mov word [rcx + rax*2 - 4], dx | *((rcx + rax*2 - 4)) = dx; 0x0041a344 movsx edx, byte [rdi + rax - 3] | edx = *((rdi + rax - 3)); 0x0041a349 mov word [rcx + rax*2 - 6], dx | *((rcx + rax*2 - 6)) = dx; 0x0041a34e movsx edx, byte [rdi + rax - 4] | edx = *((rdi + rax - 4)); 0x0041a353 mov word [rcx + rax*2 - 8], dx | *((rcx + rax*2 - 8)) = dx; 0x0041a358 movsx edx, byte [rdi + rax - 5] | edx = *((rdi + rax - 5)); 0x0041a35d mov word [rcx + rax*2 - 0xa], dx | *((rcx + rax*2 - 0xa)) = dx; 0x0041a362 movsx edx, byte [rdi + rax - 6] | edx = *((rdi + rax - 6)); 0x0041a367 mov word [rcx + rax*2 - 0xc], dx | *((rcx + rax*2 - 0xc)) = dx; 0x0041a36c movsx edx, byte [rdi + rax - 7] | edx = *((rdi + rax - 7)); 0x0041a371 mov word [rcx + rax*2 - 0xe], dx | *((rcx + rax*2 - 0xe)) = dx; 0x0041a376 movsx edx, byte [rdi + rax - 8] | edx = *((rdi + rax - 8)); 0x0041a37b mov word [rcx + rax*2 - 0x10], dx | *((rcx + rax*2 - 0x10)) = dx; 0x0041a380 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a384 cmp r10, rax | 0x0041a387 jne 0x41a330 | | } while (r10 != rax); 0x0041a389 jmp 0x41b528 | goto label_8; 0x0041a38e lea rax, [rsi + rdx*4] | rax = rsi + rdx*4; 0x0041a392 cmp ebx, 8 | | if (ebx == 8) { 0x0041a395 je 0x41a7ae | goto label_17; | } 0x0041a39b cmp ebx, 2 | | if (ebx == 2) { 0x0041a39e je 0x41a834 | goto label_18; | } 0x0041a3a4 cmp ebx, 1 | | if (ebx != 1) { 0x0041a3a7 jne 0x41b528 | goto label_8; | } 0x0041a3ad test r14, r14 | | if (r14 == 0) { 0x0041a3b0 je 0x41b528 | goto label_8; | } 0x0041a3b6 lea rcx, [rax + r14*4] | rcx = rax + r14*4; 0x0041a3ba lea rbx, [r8 + r9] | rbx = r8 + r9; 0x0041a3be lea rdi, [rbx + r14] | rdi = rbx + r14; 0x0041a3c2 cmp r14, 8 | | if (r14 >= 8) { 0x0041a3c6 jb 0x41a3e2 | 0x0041a3c8 cmp rax, rdi | | if (rax >= rdi) { 0x0041a3cb jae 0x41ae2f | goto label_19; | } 0x0041a3d1 lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041a3d5 lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041a3d9 cmp rbx, rax | | if (rbx >= rax) { 0x0041a3dc jae 0x41ae2f | goto label_19; | } | } 0x0041a3e2 xor r10d, r10d | r10d = 0; | label_2: 0x0041a3e5 mov rax, r10 | rax = r10; 0x0041a3e8 not rax | rax = ~rax; 0x0041a3eb add rax, r14 | rax += r14; 0x0041a3ee mov rdx, r14 | rdx = r14; 0x0041a3f1 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a3f5 je 0x41a41a | goto label_20; | } 0x0041a3f7 neg rdx | rdx = -rdx; 0x0041a3fa xor esi, esi | esi = 0; 0x0041a3fc nop dword [rax] | | do { 0x0041a400 movsx ebx, byte [rdi + rsi - 1] | ebx = *((rdi + rsi - 1)); 0x0041a405 mov dword [rcx - 4], ebx | *((rcx - 4)) = ebx; 0x0041a408 add rcx, 0xfffffffffffffffc | rcx += 0xfffffffffffffffc; 0x0041a40c dec rsi | rsi--; 0x0041a40f cmp rdx, rsi | 0x0041a412 jne 0x41a400 | | } while (rdx != rsi); 0x0041a414 sub r10, rsi | r10 -= rsi; 0x0041a417 add rdi, rsi | rdi += rsi; | label_20: 0x0041a41a cmp rax, 7 | | if (rax < 7) { 0x0041a41e jb 0x41b528 | goto label_8; | } 0x0041a424 sub r10, r14 | r10 -= r14; 0x0041a427 xor eax, eax | eax = 0; 0x0041a429 nop dword [rax] | | do { 0x0041a430 movsx edx, byte [rdi + rax - 1] | edx = *((rdi + rax - 1)); 0x0041a435 mov dword [rcx + rax*4 - 4], edx | *((rcx + rax*4 - 4)) = edx; 0x0041a439 movsx edx, byte [rdi + rax - 2] | edx = *((rdi + rax - 2)); 0x0041a43e mov dword [rcx + rax*4 - 8], edx | *((rcx + rax*4 - 8)) = edx; 0x0041a442 movsx edx, byte [rdi + rax - 3] | edx = *((rdi + rax - 3)); 0x0041a447 mov dword [rcx + rax*4 - 0xc], edx | *((rcx + rax*4 - 0xc)) = edx; 0x0041a44b movsx edx, byte [rdi + rax - 4] | edx = *((rdi + rax - 4)); 0x0041a450 mov dword [rcx + rax*4 - 0x10], edx | *((rcx + rax*4 - 0x10)) = edx; 0x0041a454 movsx edx, byte [rdi + rax - 5] | edx = *((rdi + rax - 5)); 0x0041a459 mov dword [rcx + rax*4 - 0x14], edx | *((rcx + rax*4 - 0x14)) = edx; 0x0041a45d movsx edx, byte [rdi + rax - 6] | edx = *((rdi + rax - 6)); 0x0041a462 mov dword [rcx + rax*4 - 0x18], edx | *((rcx + rax*4 - 0x18)) = edx; 0x0041a466 movsx edx, byte [rdi + rax - 7] | edx = *((rdi + rax - 7)); 0x0041a46b mov dword [rcx + rax*4 - 0x1c], edx | *((rcx + rax*4 - 0x1c)) = edx; 0x0041a46f movsx edx, byte [rdi + rax - 8] | edx = *((rdi + rax - 8)); 0x0041a474 mov dword [rcx + rax*4 - 0x20], edx | *((rcx + rax*4 - 0x20)) = edx; 0x0041a478 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a47c cmp r10, rax | 0x0041a47f jne 0x41a430 | | } while (r10 != rax); 0x0041a481 jmp 0x41b528 | goto label_8; 0x0041a486 lea rdi, [rsi + rdx*8] | rdi = rsi + rdx*8; 0x0041a48a cmp ebx, 4 | | if (ebx == 4) { 0x0041a48d je 0x41a916 | goto label_21; | } 0x0041a493 cmp ebx, 2 | | if (ebx == 2) { 0x0041a496 je 0x41a944 | goto label_22; | } 0x0041a49c cmp ebx, 1 | | if (ebx != 1) { 0x0041a49f jne 0x41b528 | goto label_8; | } 0x0041a4a5 test r14, r14 | | if (r14 == 0) { 0x0041a4a8 je 0x41b528 | goto label_8; | } 0x0041a4ae add r8, r9 | r8 += r9; 0x0041a4b1 add r8, r14 | r8 += r14; 0x0041a4b4 lea rax, [r14 - 1] | rax = r14 - 1; 0x0041a4b8 mov ecx, r14d | ecx = r14d; 0x0041a4bb and ecx, 7 | ecx &= 7; 0x0041a4be cmp rax, 7 | | if (rax >= 7) { 0x0041a4c2 jae 0x41a972 | goto label_23; | } 0x0041a4c8 lea rsi, [rdi + r14*8] | rsi = rdi + r14*8; 0x0041a4cc jmp 0x41a9fb | goto label_24; | label_9: 0x0041a4d1 test r14, r14 | | if (r14 == 0) { 0x0041a4d4 je 0x41b528 | goto label_8; | } 0x0041a4da lea rcx, [r10 + r14] | rcx = r10 + r14; 0x0041a4de lea rax, [r8 + r9*8] | rax = r8 + r9*8; 0x0041a4e2 lea rdi, [rax + r14*8] | rdi = rax + r14*8; 0x0041a4e6 cmp r14, 4 | | if (r14 >= 4) { 0x0041a4ea jb 0x41a506 | 0x0041a4ec lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a4f0 lea rbx, [r8 + rbx*8] | rbx = r8 + rbx*8; 0x0041a4f4 cmp r10, rbx | | if (r10 >= rbx) { 0x0041a4f7 jae 0x41aef2 | goto label_25; | } 0x0041a4fd cmp rax, rcx | | if (rax >= rcx) { 0x0041a500 jae 0x41aef2 | goto label_25; | } | } 0x0041a506 xor r10d, r10d | r10d = 0; | label_3: 0x0041a509 mov edx, r14d | edx = r14d; 0x0041a50c sub edx, r10d | edx -= r10d; 0x0041a50f mov rax, r10 | rax = r10; 0x0041a512 not rax | rax = ~rax; 0x0041a515 add rax, r14 | rax += r14; 0x0041a518 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a51c je 0x41a54a | goto label_26; | } 0x0041a51e neg rdx | rdx = -rdx; 0x0041a521 xor esi, esi | esi = 0; 0x0041a523 nop word cs:[rax + rax] | 0x0041a52d nop dword [rax] | | do { 0x0041a530 movzx ebx, byte [rdi - 8] | ebx = *((rdi - 8)); 0x0041a534 add rdi, 0xfffffffffffffff8 | rdi += 0xfffffffffffffff8; 0x0041a538 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041a53c dec rsi | rsi--; 0x0041a53f cmp rdx, rsi | 0x0041a542 jne 0x41a530 | | } while (rdx != rsi); 0x0041a544 sub r10, rsi | r10 -= rsi; 0x0041a547 add rcx, rsi | rcx += rsi; | label_26: 0x0041a54a cmp rax, 7 | | if (rax < 7) { 0x0041a54e jb 0x41b528 | goto label_8; | } 0x0041a554 sub r10, r14 | r10 -= r14; 0x0041a557 xor eax, eax | eax = 0; 0x0041a559 nop dword [rax] | | do { 0x0041a560 movzx edx, byte [rdi + rax*8 - 8] | edx = *((rdi + rax*8 - 8)); 0x0041a565 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041a569 movzx edx, byte [rdi + rax*8 - 0x10] | edx = *((rdi + rax*8 - 0x10)); 0x0041a56e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041a572 movzx edx, byte [rdi + rax*8 - 0x18] | edx = *((rdi + rax*8 - 0x18)); 0x0041a577 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041a57b movzx edx, byte [rdi + rax*8 - 0x20] | edx = *((rdi + rax*8 - 0x20)); 0x0041a580 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041a584 movzx edx, byte [rdi + rax*8 - 0x28] | edx = *((rdi + rax*8 - 0x28)); 0x0041a589 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041a58d movzx edx, byte [rdi + rax*8 - 0x30] | edx = *((rdi + rax*8 - 0x30)); 0x0041a592 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041a596 movzx edx, byte [rdi + rax*8 - 0x38] | edx = *((rdi + rax*8 - 0x38)); 0x0041a59b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041a59f movzx edx, byte [rdi + rax*8 - 0x40] | edx = *((rdi + rax*8 - 0x40)); 0x0041a5a4 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041a5a8 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a5ac cmp r10, rax | 0x0041a5af jne 0x41a560 | | } while (r10 != rax); 0x0041a5b1 jmp 0x41b528 | goto label_8; | label_10: 0x0041a5b6 test r14, r14 | | if (r14 == 0) { 0x0041a5b9 je 0x41b528 | goto label_8; | } 0x0041a5bf lea rcx, [r10 + r14] | rcx = r10 + r14; 0x0041a5c3 lea rax, [r8 + r9*4] | rax = r8 + r9*4; 0x0041a5c7 lea rdi, [rax + r14*4] | rdi = rax + r14*4; 0x0041a5cb cmp r14, 8 | | if (r14 >= 8) { 0x0041a5cf jb 0x41a5eb | 0x0041a5d1 lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a5d5 lea rbx, [r8 + rbx*4] | rbx = r8 + rbx*4; 0x0041a5d9 cmp r10, rbx | | if (r10 >= rbx) { 0x0041a5dc jae 0x41af95 | goto label_27; | } 0x0041a5e2 cmp rax, rcx | | if (rax >= rcx) { 0x0041a5e5 jae 0x41af95 | goto label_27; | } | } 0x0041a5eb xor r10d, r10d | r10d = 0; | label_4: 0x0041a5ee mov rax, r10 | rax = r10; 0x0041a5f1 not rax | rax = ~rax; 0x0041a5f4 add rax, r14 | rax += r14; 0x0041a5f7 mov rdx, r14 | rdx = r14; 0x0041a5fa and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a5fe je 0x41a62a | goto label_28; | } 0x0041a600 neg rdx | rdx = -rdx; 0x0041a603 xor esi, esi | esi = 0; 0x0041a605 nop word cs:[rax + rax] | 0x0041a60f nop | | do { 0x0041a610 movzx ebx, byte [rdi - 4] | ebx = *((rdi - 4)); 0x0041a614 add rdi, 0xfffffffffffffffc | rdi += 0xfffffffffffffffc; 0x0041a618 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041a61c dec rsi | rsi--; 0x0041a61f cmp rdx, rsi | 0x0041a622 jne 0x41a610 | | } while (rdx != rsi); 0x0041a624 sub r10, rsi | r10 -= rsi; 0x0041a627 add rcx, rsi | rcx += rsi; | label_28: 0x0041a62a cmp rax, 7 | | if (rax < 7) { 0x0041a62e jb 0x41b528 | goto label_8; | } 0x0041a634 sub r10, r14 | r10 -= r14; 0x0041a637 xor eax, eax | eax = 0; 0x0041a639 nop dword [rax] | | do { 0x0041a640 movzx edx, byte [rdi + rax*4 - 4] | edx = *((rdi + rax*4 - 4)); 0x0041a645 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041a649 movzx edx, byte [rdi + rax*4 - 8] | edx = *((rdi + rax*4 - 8)); 0x0041a64e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041a652 movzx edx, byte [rdi + rax*4 - 0xc] | edx = *((rdi + rax*4 - 0xc)); 0x0041a657 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041a65b movzx edx, byte [rdi + rax*4 - 0x10] | edx = *((rdi + rax*4 - 0x10)); 0x0041a660 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041a664 movzx edx, byte [rdi + rax*4 - 0x14] | edx = *((rdi + rax*4 - 0x14)); 0x0041a669 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041a66d movzx edx, byte [rdi + rax*4 - 0x18] | edx = *((rdi + rax*4 - 0x18)); 0x0041a672 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041a676 movzx edx, byte [rdi + rax*4 - 0x1c] | edx = *((rdi + rax*4 - 0x1c)); 0x0041a67b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041a67f movzx edx, byte [rdi + rax*4 - 0x20] | edx = *((rdi + rax*4 - 0x20)); 0x0041a684 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041a688 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a68c cmp r10, rax | 0x0041a68f jne 0x41a640 | | } while (r10 != rax); 0x0041a691 jmp 0x41b528 | goto label_8; | label_13: 0x0041a696 test r14, r14 | | if (r14 == 0) { 0x0041a699 je 0x41b528 | goto label_8; | } 0x0041a69f lea rdi, [r14 - 1] | rdi = r14 - 1; 0x0041a6a3 mov ecx, r14d | ecx = r14d; 0x0041a6a6 and ecx, 7 | ecx &= 7; 0x0041a6a9 cmp rdi, 7 | | if (rdi >= 7) { 0x0041a6ad jae 0x41aa28 | goto label_29; | } 0x0041a6b3 lea rsi, [rax + r14*2] | rsi = rax + r14*2; 0x0041a6b7 lea rax, [r8 + r9*8] | rax = r8 + r9*8; 0x0041a6bb lea r8, [rax + r14*8] | r8 = rax + r14*8; 0x0041a6bf jmp 0x41aabc | goto label_30; | label_14: 0x0041a6c4 test r14, r14 | | if (r14 == 0) { 0x0041a6c7 je 0x41b528 | goto label_8; | } 0x0041a6cd lea rcx, [rax + r14*2] | rcx = rax + r14*2; 0x0041a6d1 lea r10, [r8 + r9*4] | r10 = r8 + r9*4; 0x0041a6d5 lea rdi, [r10 + r14*4] | rdi = r10 + r14*4; 0x0041a6d9 cmp r14, 8 | | if (r14 >= 8) { 0x0041a6dd jb 0x41a701 | 0x0041a6df lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a6e3 lea rbx, [r8 + rbx*4] | rbx = r8 + rbx*4; 0x0041a6e7 cmp rax, rbx | | if (rax >= rbx) { 0x0041a6ea jae 0x41b030 | goto label_31; | } 0x0041a6f0 lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041a6f4 lea rax, [rsi + rax*2] | rax = rsi + rax*2; 0x0041a6f8 cmp r10, rax | | if (r10 >= rax) { 0x0041a6fb jae 0x41b030 | goto label_31; | } | } 0x0041a701 xor r10d, r10d | r10d = 0; | label_5: 0x0041a704 mov rax, r10 | rax = r10; 0x0041a707 not rax | rax = ~rax; 0x0041a70a add rax, r14 | rax += r14; 0x0041a70d mov rdx, r14 | rdx = r14; 0x0041a710 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a714 je 0x41a73b | goto label_32; | } 0x0041a716 neg rdx | rdx = -rdx; 0x0041a719 xor esi, esi | esi = 0; 0x0041a71b nop dword [rax + rax] | | do { 0x0041a720 movzx ebx, word [rdi - 4] | ebx = *((rdi - 4)); 0x0041a724 add rdi, 0xfffffffffffffffc | rdi += 0xfffffffffffffffc; 0x0041a728 mov word [rcx - 2], bx | *((rcx - 2)) = bx; 0x0041a72c add rcx, 0xfffffffffffffffe | rcx += 0xfffffffffffffffe; 0x0041a730 dec rsi | rsi--; 0x0041a733 cmp rdx, rsi | 0x0041a736 jne 0x41a720 | | } while (rdx != rsi); 0x0041a738 sub r10, rsi | r10 -= rsi; | label_32: 0x0041a73b cmp rax, 7 | | if (rax < 7) { 0x0041a73f jb 0x41b528 | goto label_8; | } 0x0041a745 sub r10, r14 | r10 -= r14; 0x0041a748 xor eax, eax | eax = 0; 0x0041a74a nop word [rax + rax] | | do { 0x0041a750 movzx edx, word [rdi + rax*4 - 4] | edx = *((rdi + rax*4 - 4)); 0x0041a755 mov word [rcx + rax*2 - 2], dx | *((rcx + rax*2 - 2)) = dx; 0x0041a75a movzx edx, word [rdi + rax*4 - 8] | edx = *((rdi + rax*4 - 8)); 0x0041a75f mov word [rcx + rax*2 - 4], dx | *((rcx + rax*2 - 4)) = dx; 0x0041a764 movzx edx, word [rdi + rax*4 - 0xc] | edx = *((rdi + rax*4 - 0xc)); 0x0041a769 mov word [rcx + rax*2 - 6], dx | *((rcx + rax*2 - 6)) = dx; 0x0041a76e movzx edx, word [rdi + rax*4 - 0x10] | edx = *((rdi + rax*4 - 0x10)); 0x0041a773 mov word [rcx + rax*2 - 8], dx | *((rcx + rax*2 - 8)) = dx; 0x0041a778 movzx edx, word [rdi + rax*4 - 0x14] | edx = *((rdi + rax*4 - 0x14)); 0x0041a77d mov word [rcx + rax*2 - 0xa], dx | *((rcx + rax*2 - 0xa)) = dx; 0x0041a782 movzx edx, word [rdi + rax*4 - 0x18] | edx = *((rdi + rax*4 - 0x18)); 0x0041a787 mov word [rcx + rax*2 - 0xc], dx | *((rcx + rax*2 - 0xc)) = dx; 0x0041a78c movzx edx, word [rdi + rax*4 - 0x1c] | edx = *((rdi + rax*4 - 0x1c)); 0x0041a791 mov word [rcx + rax*2 - 0xe], dx | *((rcx + rax*2 - 0xe)) = dx; 0x0041a796 movzx edx, word [rdi + rax*4 - 0x20] | edx = *((rdi + rax*4 - 0x20)); 0x0041a79b mov word [rcx + rax*2 - 0x10], dx | *((rcx + rax*2 - 0x10)) = dx; 0x0041a7a0 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a7a4 cmp r10, rax | 0x0041a7a7 jne 0x41a750 | | } while (r10 != rax); 0x0041a7a9 jmp 0x41b528 | goto label_8; | label_17: 0x0041a7ae test r14, r14 | | if (r14 == 0) { 0x0041a7b1 je 0x41b528 | goto label_8; | } 0x0041a7b7 lea rcx, [rax + r14*4] | rcx = rax + r14*4; 0x0041a7bb lea rdi, [r8 + r9*8] | rdi = r8 + r9*8; 0x0041a7bf lea r10, [rdi + r14*8] | r10 = rdi + r14*8; 0x0041a7c3 cmp r14, 4 | | if (r14 >= 4) { 0x0041a7c7 jb 0x41a7eb | 0x0041a7c9 lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a7cd lea rbx, [r8 + rbx*8] | rbx = r8 + rbx*8; 0x0041a7d1 cmp rax, rbx | | if (rax >= rbx) { 0x0041a7d4 jae 0x41b0cc | goto label_33; | } 0x0041a7da lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041a7de lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041a7e2 cmp rdi, rax | | if (rdi >= rax) { 0x0041a7e5 jae 0x41b0cc | goto label_33; | } | } 0x0041a7eb xor edi, edi | edi = 0; | label_6: 0x0041a7ed mov esi, r14d | esi = r14d; 0x0041a7f0 sub esi, edi | esi -= edi; 0x0041a7f2 mov r8, rdi | r8 = rdi; 0x0041a7f5 not r8 | r8 = ~r8; 0x0041a7f8 add r8, r14 | r8 += r14; 0x0041a7fb and rsi, 7 | rsi &= 7; | if (rsi == 0) { 0x0041a7ff je 0x41ac68 | goto label_34; | } 0x0041a805 shl rsi, 2 | rsi <<= 2; 0x0041a809 xor ebx, ebx | ebx = 0; 0x0041a80b mov rdx, r10 | rdx = r10; 0x0041a80e nop | | do { 0x0041a810 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041a814 mov eax, dword [r10 + rbx*2 - 8] | eax = *((r10 + rbx*2 - 8)); 0x0041a819 mov dword [rcx + rbx - 4], eax | *((rcx + rbx - 4)) = eax; 0x0041a81d inc rdi | rdi++; 0x0041a820 add rbx, 0xfffffffffffffffc | rbx += 0xfffffffffffffffc; 0x0041a824 mov rax, rsi | rax = rsi; 0x0041a827 add rax, rbx | rax += rbx; 0x0041a82a jne 0x41a810 | | } while (rax != 0); 0x0041a82c add rcx, rbx | rcx += rbx; 0x0041a82f jmp 0x41ac6b | goto label_35; | label_18: 0x0041a834 test r14, r14 | | if (r14 == 0) { 0x0041a837 je 0x41b528 | goto label_8; | } 0x0041a83d lea rcx, [rax + r14*4] | rcx = rax + r14*4; 0x0041a841 lea r10, [r8 + r9*2] | r10 = r8 + r9*2; 0x0041a845 lea rdi, [r10 + r14*2] | rdi = r10 + r14*2; 0x0041a849 cmp r14, 8 | | if (r14 >= 8) { 0x0041a84d jb 0x41a871 | 0x0041a84f lea rbx, [r14 + r9] | rbx = r14 + r9; 0x0041a853 lea rbx, [r8 + rbx*2] | rbx = r8 + rbx*2; 0x0041a857 cmp rax, rbx | | if (rax >= rbx) { 0x0041a85a jae 0x41b161 | goto label_36; | } 0x0041a860 lea rax, [r14 + rdx] | rax = r14 + rdx; 0x0041a864 lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041a868 cmp r10, rax | | if (r10 >= rax) { 0x0041a86b jae 0x41b161 | goto label_36; | } | } 0x0041a871 xor r10d, r10d | r10d = 0; | label_7: 0x0041a874 mov rax, r10 | rax = r10; 0x0041a877 not rax | rax = ~rax; 0x0041a87a add rax, r14 | rax += r14; 0x0041a87d mov rdx, r14 | rdx = r14; 0x0041a880 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041a884 je 0x41a8aa | goto label_37; | } 0x0041a886 neg rdx | rdx = -rdx; 0x0041a889 xor esi, esi | esi = 0; 0x0041a88b nop dword [rax + rax] | | do { 0x0041a890 movsx ebx, word [rdi - 2] | ebx = *((rdi - 2)); 0x0041a894 add rdi, 0xfffffffffffffffe | rdi += 0xfffffffffffffffe; 0x0041a898 mov dword [rcx - 4], ebx | *((rcx - 4)) = ebx; 0x0041a89b add rcx, 0xfffffffffffffffc | rcx += 0xfffffffffffffffc; 0x0041a89f dec rsi | rsi--; 0x0041a8a2 cmp rdx, rsi | 0x0041a8a5 jne 0x41a890 | | } while (rdx != rsi); 0x0041a8a7 sub r10, rsi | r10 -= rsi; | label_37: 0x0041a8aa cmp rax, 7 | | if (rax < 7) { 0x0041a8ae jb 0x41b528 | goto label_8; | } 0x0041a8b4 sub r10, r14 | r10 -= r14; 0x0041a8b7 xor eax, eax | eax = 0; 0x0041a8b9 nop dword [rax] | | do { 0x0041a8c0 movsx edx, word [rdi + rax*2 - 2] | edx = *((rdi + rax*2 - 2)); 0x0041a8c5 mov dword [rcx + rax*4 - 4], edx | *((rcx + rax*4 - 4)) = edx; 0x0041a8c9 movsx edx, word [rdi + rax*2 - 4] | edx = *((rdi + rax*2 - 4)); 0x0041a8ce mov dword [rcx + rax*4 - 8], edx | *((rcx + rax*4 - 8)) = edx; 0x0041a8d2 movsx edx, word [rdi + rax*2 - 6] | edx = *((rdi + rax*2 - 6)); 0x0041a8d7 mov dword [rcx + rax*4 - 0xc], edx | *((rcx + rax*4 - 0xc)) = edx; 0x0041a8db movsx edx, word [rdi + rax*2 - 8] | edx = *((rdi + rax*2 - 8)); 0x0041a8e0 mov dword [rcx + rax*4 - 0x10], edx | *((rcx + rax*4 - 0x10)) = edx; 0x0041a8e4 movsx edx, word [rdi + rax*2 - 0xa] | edx = *((rdi + rax*2 - 0xa)); 0x0041a8e9 mov dword [rcx + rax*4 - 0x14], edx | *((rcx + rax*4 - 0x14)) = edx; 0x0041a8ed movsx edx, word [rdi + rax*2 - 0xc] | edx = *((rdi + rax*2 - 0xc)); 0x0041a8f2 mov dword [rcx + rax*4 - 0x18], edx | *((rcx + rax*4 - 0x18)) = edx; 0x0041a8f6 movsx edx, word [rdi + rax*2 - 0xe] | edx = *((rdi + rax*2 - 0xe)); 0x0041a8fb mov dword [rcx + rax*4 - 0x1c], edx | *((rcx + rax*4 - 0x1c)) = edx; 0x0041a8ff movsx edx, word [rdi + rax*2 - 0x10] | edx = *((rdi + rax*2 - 0x10)); 0x0041a904 mov dword [rcx + rax*4 - 0x20], edx | *((rcx + rax*4 - 0x20)) = edx; 0x0041a908 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041a90c cmp r10, rax | 0x0041a90f jne 0x41a8c0 | | } while (r10 != rax); 0x0041a911 jmp 0x41b528 | goto label_8; | label_21: 0x0041a916 test r14, r14 | | if (r14 == 0) { 0x0041a919 je 0x41b528 | goto label_8; | } 0x0041a91f lea rax, [r14 - 1] | rax = r14 - 1; 0x0041a923 mov ecx, r14d | ecx = r14d; 0x0041a926 and ecx, 7 | ecx &= 7; 0x0041a929 cmp rax, 7 | | if (rax >= 7) { 0x0041a92d jae 0x41aae8 | goto label_38; | } 0x0041a933 lea rsi, [rdi + r14*8] | rsi = rdi + r14*8; 0x0041a937 lea rax, [r8 + r9*4] | rax = r8 + r9*4; 0x0041a93b lea r8, [rax + r14*4] | r8 = rax + r14*4; 0x0041a93f jmp 0x41ab74 | goto label_39; | label_22: 0x0041a944 test r14, r14 | | if (r14 == 0) { 0x0041a947 je 0x41b528 | goto label_8; | } 0x0041a94d lea rax, [r14 - 1] | rax = r14 - 1; 0x0041a951 mov ecx, r14d | ecx = r14d; 0x0041a954 and ecx, 7 | ecx &= 7; 0x0041a957 cmp rax, 7 | | if (rax >= 7) { 0x0041a95b jae 0x41aba7 | goto label_40; | } 0x0041a961 lea rsi, [rdi + r14*8] | rsi = rdi + r14*8; 0x0041a965 lea rax, [r8 + r9*2] | rax = r8 + r9*2; 0x0041a969 lea r8, [rax + r14*2] | r8 = rax + r14*2; 0x0041a96d jmp 0x41ac3c | goto label_41; | label_23: 0x0041a972 shl rdx, 3 | rdx <<= 3; 0x0041a976 lea rax, [rdx + r14*8] | rax = rdx + r14*8; 0x0041a97a add rsi, rax | rsi += rax; 0x0041a97d and r14, 0xfffffffffffffff8 | r14 &= 0xfffffffffffffff8; 0x0041a981 neg r14 | r14 = -r14; 0x0041a984 xor eax, eax | eax = 0; 0x0041a986 xor edx, edx | edx = 0; 0x0041a988 nop dword [rax + rax] | | do { 0x0041a990 movsx rdi, byte [r8 + rdx - 1] | rdi = *((r8 + rdx - 1)); 0x0041a996 mov qword [rsi + rdx*8 - 8], rdi | *((rsi + rdx*8 - 8)) = rdi; 0x0041a99b movsx rdi, byte [r8 + rdx - 2] | rdi = *((r8 + rdx - 2)); 0x0041a9a1 mov qword [rsi + rdx*8 - 0x10], rdi | *((rsi + rdx*8 - 0x10)) = rdi; 0x0041a9a6 movsx rdi, byte [r8 + rdx - 3] | rdi = *((r8 + rdx - 3)); 0x0041a9ac mov qword [rsi + rdx*8 - 0x18], rdi | *((rsi + rdx*8 - 0x18)) = rdi; 0x0041a9b1 movsx rdi, byte [r8 + rdx - 4] | rdi = *((r8 + rdx - 4)); 0x0041a9b7 mov qword [rsi + rdx*8 - 0x20], rdi | *((rsi + rdx*8 - 0x20)) = rdi; 0x0041a9bc movsx rdi, byte [r8 + rdx - 5] | rdi = *((r8 + rdx - 5)); 0x0041a9c2 mov qword [rsi + rdx*8 - 0x28], rdi | *((rsi + rdx*8 - 0x28)) = rdi; 0x0041a9c7 movsx rdi, byte [r8 + rdx - 6] | rdi = *((r8 + rdx - 6)); 0x0041a9cd mov qword [rsi + rdx*8 - 0x30], rdi | *((rsi + rdx*8 - 0x30)) = rdi; 0x0041a9d2 movsx rdi, byte [r8 + rdx - 7] | rdi = *((r8 + rdx - 7)); 0x0041a9d8 mov qword [rsi + rdx*8 - 0x38], rdi | *((rsi + rdx*8 - 0x38)) = rdi; 0x0041a9dd movsx rdi, byte [r8 + rdx - 8] | rdi = *((r8 + rdx - 8)); 0x0041a9e3 mov qword [rsi + rdx*8 - 0x40], rdi | *((rsi + rdx*8 - 0x40)) = rdi; 0x0041a9e8 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041a9ec add rax, 0x40 | rax += 0x40; 0x0041a9f0 cmp r14, rdx | 0x0041a9f3 jne 0x41a990 | | } while (r14 != rdx); 0x0041a9f5 add r8, rdx | r8 += rdx; 0x0041a9f8 sub rsi, rax | rsi -= rax; | label_24: 0x0041a9fb test rcx, rcx | | if (rcx == 0) { 0x0041a9fe je 0x41b528 | goto label_8; | } 0x0041aa04 neg rcx | rcx = -rcx; 0x0041aa07 xor eax, eax | eax = 0; 0x0041aa09 nop dword [rax] | | do { 0x0041aa10 movsx rdx, byte [r8 + rax - 1] | rdx = *((r8 + rax - 1)); 0x0041aa16 mov qword [rsi + rax*8 - 8], rdx | *((rsi + rax*8 - 8)) = rdx; 0x0041aa1b dec rax | rax--; 0x0041aa1e cmp rcx, rax | 0x0041aa21 jne 0x41aa10 | | } while (rcx != rax); 0x0041aa23 jmp 0x41b528 | goto label_8; | label_29: 0x0041aa28 shl r9, 3 | r9 <<= 3; 0x0041aa2c lea rax, [r9 + r14*8] | rax = r9 + r14*8; 0x0041aa30 add r8, rax | r8 += rax; 0x0041aa33 add rdx, rdx | rdx += rdx; 0x0041aa36 lea rax, [rdx + r14*2] | rax = rdx + r14*2; 0x0041aa3a add rsi, rax | rsi += rax; 0x0041aa3d and r14, 0xfffffffffffffff8 | r14 &= 0xfffffffffffffff8; 0x0041aa41 neg r14 | r14 = -r14; 0x0041aa44 xor eax, eax | eax = 0; 0x0041aa46 xor edx, edx | edx = 0; 0x0041aa48 nop dword [rax + rax] | | do { 0x0041aa50 movzx edi, word [r8 + rax*4 - 8] | edi = *((r8 + rax*4 - 8)); 0x0041aa56 mov word [rsi + rax - 2], di | *((rsi + rax - 2)) = di; 0x0041aa5b movzx edi, word [r8 + rax*4 - 0x10] | edi = *((r8 + rax*4 - 0x10)); 0x0041aa61 mov word [rsi + rax - 4], di | *((rsi + rax - 4)) = di; 0x0041aa66 movzx edi, word [r8 + rax*4 - 0x18] | edi = *((r8 + rax*4 - 0x18)); 0x0041aa6c mov word [rsi + rax - 6], di | *((rsi + rax - 6)) = di; 0x0041aa71 movzx edi, word [r8 + rax*4 - 0x20] | edi = *((r8 + rax*4 - 0x20)); 0x0041aa77 mov word [rsi + rax - 8], di | *((rsi + rax - 8)) = di; 0x0041aa7c movzx edi, word [r8 + rax*4 - 0x28] | edi = *((r8 + rax*4 - 0x28)); 0x0041aa82 mov word [rsi + rax - 0xa], di | *((rsi + rax - 0xa)) = di; 0x0041aa87 movzx edi, word [r8 + rax*4 - 0x30] | edi = *((r8 + rax*4 - 0x30)); 0x0041aa8d mov word [rsi + rax - 0xc], di | *((rsi + rax - 0xc)) = di; 0x0041aa92 movzx edi, word [r8 + rax*4 - 0x38] | edi = *((r8 + rax*4 - 0x38)); 0x0041aa98 mov word [rsi + rax - 0xe], di | *((rsi + rax - 0xe)) = di; 0x0041aa9d movzx edi, word [r8 + rax*4 - 0x40] | edi = *((r8 + rax*4 - 0x40)); 0x0041aaa3 mov word [rsi + rax - 0x10], di | *((rsi + rax - 0x10)) = di; 0x0041aaa8 add rdx, 0x40 | rdx += 0x40; 0x0041aaac add rax, 0xfffffffffffffff0 | rax += 0xfffffffffffffff0; 0x0041aab0 add r14, 8 | r14 += 8; 0x0041aab4 jne 0x41aa50 | | } while (r14 != 0); 0x0041aab6 sub r8, rdx | r8 -= rdx; 0x0041aab9 add rsi, rax | rsi += rax; | label_30: 0x0041aabc test rcx, rcx | | if (rcx == 0) { 0x0041aabf je 0x41b528 | goto label_8; | } 0x0041aac5 neg rcx | rcx = -rcx; 0x0041aac8 xor eax, eax | eax = 0; 0x0041aaca nop word [rax + rax] | | do { 0x0041aad0 movzx edx, word [r8 + rax*8 - 8] | edx = *((r8 + rax*8 - 8)); 0x0041aad6 mov word [rsi + rax*2 - 2], dx | *((rsi + rax*2 - 2)) = dx; 0x0041aadb dec rax | rax--; 0x0041aade cmp rcx, rax | 0x0041aae1 jne 0x41aad0 | | } while (rcx != rax); 0x0041aae3 jmp 0x41b528 | goto label_8; | label_38: 0x0041aae8 shl r9, 2 | r9 <<= 2; 0x0041aaec lea rax, [r9 + r14*4] | rax = r9 + r14*4; 0x0041aaf0 add r8, rax | r8 += rax; 0x0041aaf3 shl rdx, 3 | rdx <<= 3; 0x0041aaf7 lea rax, [rdx + r14*8] | rax = rdx + r14*8; 0x0041aafb add rsi, rax | rsi += rax; 0x0041aafe and r14, 0xfffffffffffffff8 | r14 &= 0xfffffffffffffff8; 0x0041ab02 neg r14 | r14 = -r14; 0x0041ab05 xor eax, eax | eax = 0; 0x0041ab07 xor edx, edx | edx = 0; 0x0041ab09 nop dword [rax] | | do { 0x0041ab10 movsxd rdi, dword [r8 + rdx - 4] | rdi = *((r8 + rdx - 4)); 0x0041ab15 mov qword [rsi + rdx*2 - 8], rdi | *((rsi + rdx*2 - 8)) = rdi; 0x0041ab1a movsxd rdi, dword [r8 + rdx - 8] | rdi = *((r8 + rdx - 8)); 0x0041ab1f mov qword [rsi + rdx*2 - 0x10], rdi | *((rsi + rdx*2 - 0x10)) = rdi; 0x0041ab24 movsxd rdi, dword [r8 + rdx - 0xc] | rdi = *((r8 + rdx - 0xc)); 0x0041ab29 mov qword [rsi + rdx*2 - 0x18], rdi | *((rsi + rdx*2 - 0x18)) = rdi; 0x0041ab2e movsxd rdi, dword [r8 + rdx - 0x10] | rdi = *((r8 + rdx - 0x10)); 0x0041ab33 mov qword [rsi + rdx*2 - 0x20], rdi | *((rsi + rdx*2 - 0x20)) = rdi; 0x0041ab38 movsxd rdi, dword [r8 + rdx - 0x14] | rdi = *((r8 + rdx - 0x14)); 0x0041ab3d mov qword [rsi + rdx*2 - 0x28], rdi | *((rsi + rdx*2 - 0x28)) = rdi; 0x0041ab42 movsxd rdi, dword [r8 + rdx - 0x18] | rdi = *((r8 + rdx - 0x18)); 0x0041ab47 mov qword [rsi + rdx*2 - 0x30], rdi | *((rsi + rdx*2 - 0x30)) = rdi; 0x0041ab4c movsxd rdi, dword [r8 + rdx - 0x1c] | rdi = *((r8 + rdx - 0x1c)); 0x0041ab51 mov qword [rsi + rdx*2 - 0x38], rdi | *((rsi + rdx*2 - 0x38)) = rdi; 0x0041ab56 movsxd rdi, dword [r8 + rdx - 0x20] | rdi = *((r8 + rdx - 0x20)); 0x0041ab5b mov qword [rsi + rdx*2 - 0x40], rdi | *((rsi + rdx*2 - 0x40)) = rdi; 0x0041ab60 add rdx, 0xffffffffffffffe0 | rdx += 0xffffffffffffffe0; 0x0041ab64 add rax, 0x40 | rax += 0x40; 0x0041ab68 add r14, 8 | r14 += 8; 0x0041ab6c jne 0x41ab10 | | } while (r14 != 0); 0x0041ab6e add r8, rdx | r8 += rdx; 0x0041ab71 sub rsi, rax | rsi -= rax; | label_39: 0x0041ab74 test rcx, rcx | | if (rcx == 0) { 0x0041ab77 je 0x41b528 | goto label_8; | } 0x0041ab7d neg rcx | rcx = -rcx; 0x0041ab80 xor eax, eax | eax = 0; 0x0041ab82 nop word cs:[rax + rax] | 0x0041ab8c nop dword [rax] | | do { 0x0041ab90 movsxd rdx, dword [r8 + rax*4 - 4] | rdx = *((r8 + rax*4 - 4)); 0x0041ab95 mov qword [rsi + rax*8 - 8], rdx | *((rsi + rax*8 - 8)) = rdx; 0x0041ab9a dec rax | rax--; 0x0041ab9d cmp rcx, rax | 0x0041aba0 jne 0x41ab90 | | } while (rcx != rax); 0x0041aba2 jmp 0x41b528 | goto label_8; | label_40: 0x0041aba7 add r9, r9 | r9 += r9; 0x0041abaa lea rax, [r9 + r14*2] | rax = r9 + r14*2; 0x0041abae add r8, rax | r8 += rax; 0x0041abb1 shl rdx, 3 | rdx <<= 3; 0x0041abb5 lea rax, [rdx + r14*8] | rax = rdx + r14*8; 0x0041abb9 add rsi, rax | rsi += rax; 0x0041abbc and r14, 0xfffffffffffffff8 | r14 &= 0xfffffffffffffff8; 0x0041abc0 neg r14 | r14 = -r14; 0x0041abc3 xor eax, eax | eax = 0; 0x0041abc5 xor edx, edx | edx = 0; 0x0041abc7 nop word [rax + rax] | | do { 0x0041abd0 movsx rdi, word [r8 + rdx - 2] | rdi = *((r8 + rdx - 2)); 0x0041abd6 mov qword [rsi + rdx*4 - 8], rdi | *((rsi + rdx*4 - 8)) = rdi; 0x0041abdb movsx rdi, word [r8 + rdx - 4] | rdi = *((r8 + rdx - 4)); 0x0041abe1 mov qword [rsi + rdx*4 - 0x10], rdi | *((rsi + rdx*4 - 0x10)) = rdi; 0x0041abe6 movsx rdi, word [r8 + rdx - 6] | rdi = *((r8 + rdx - 6)); 0x0041abec mov qword [rsi + rdx*4 - 0x18], rdi | *((rsi + rdx*4 - 0x18)) = rdi; 0x0041abf1 movsx rdi, word [r8 + rdx - 8] | rdi = *((r8 + rdx - 8)); 0x0041abf7 mov qword [rsi + rdx*4 - 0x20], rdi | *((rsi + rdx*4 - 0x20)) = rdi; 0x0041abfc movsx rdi, word [r8 + rdx - 0xa] | rdi = *((r8 + rdx - 0xa)); 0x0041ac02 mov qword [rsi + rdx*4 - 0x28], rdi | *((rsi + rdx*4 - 0x28)) = rdi; 0x0041ac07 movsx rdi, word [r8 + rdx - 0xc] | rdi = *((r8 + rdx - 0xc)); 0x0041ac0d mov qword [rsi + rdx*4 - 0x30], rdi | *((rsi + rdx*4 - 0x30)) = rdi; 0x0041ac12 movsx rdi, word [r8 + rdx - 0xe] | rdi = *((r8 + rdx - 0xe)); 0x0041ac18 mov qword [rsi + rdx*4 - 0x38], rdi | *((rsi + rdx*4 - 0x38)) = rdi; 0x0041ac1d movsx rdi, word [r8 + rdx - 0x10] | rdi = *((r8 + rdx - 0x10)); 0x0041ac23 mov qword [rsi + rdx*4 - 0x40], rdi | *((rsi + rdx*4 - 0x40)) = rdi; 0x0041ac28 add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041ac2c add rax, 0x40 | rax += 0x40; 0x0041ac30 add r14, 8 | r14 += 8; 0x0041ac34 jne 0x41abd0 | | } while (r14 != 0); 0x0041ac36 add r8, rdx | r8 += rdx; 0x0041ac39 sub rsi, rax | rsi -= rax; | label_41: 0x0041ac3c test rcx, rcx | | if (rcx == 0) { 0x0041ac3f je 0x41b528 | goto label_8; | } 0x0041ac45 neg rcx | rcx = -rcx; 0x0041ac48 xor eax, eax | eax = 0; 0x0041ac4a nop word [rax + rax] | | do { 0x0041ac50 movsx rdx, word [r8 + rax*2 - 2] | rdx = *((r8 + rax*2 - 2)); 0x0041ac56 mov qword [rsi + rax*8 - 8], rdx | *((rsi + rax*8 - 8)) = rdx; 0x0041ac5b dec rax | rax--; 0x0041ac5e cmp rcx, rax | 0x0041ac61 jne 0x41ac50 | | } while (rcx != rax); 0x0041ac63 jmp 0x41b528 | goto label_8; | label_34: 0x0041ac68 mov rdx, r10 | rdx = r10; | label_35: 0x0041ac6b cmp r8, 7 | | if (r8 < 7) { 0x0041ac6f jb 0x41b528 | goto label_8; | } 0x0041ac75 sub rdi, r14 | rdi -= r14; 0x0041ac78 xor eax, eax | eax = 0; 0x0041ac7a nop word [rax + rax] | | do { 0x0041ac80 mov esi, dword [rdx + rax*8 - 8] | esi = *((rdx + rax*8 - 8)); 0x0041ac84 mov dword [rcx + rax*4 - 4], esi | *((rcx + rax*4 - 4)) = esi; 0x0041ac88 mov esi, dword [rdx + rax*8 - 0x10] | esi = *((rdx + rax*8 - 0x10)); 0x0041ac8c mov dword [rcx + rax*4 - 8], esi | *((rcx + rax*4 - 8)) = esi; 0x0041ac90 mov esi, dword [rdx + rax*8 - 0x18] | esi = *((rdx + rax*8 - 0x18)); 0x0041ac94 mov dword [rcx + rax*4 - 0xc], esi | *((rcx + rax*4 - 0xc)) = esi; 0x0041ac98 mov esi, dword [rdx + rax*8 - 0x20] | esi = *((rdx + rax*8 - 0x20)); 0x0041ac9c mov dword [rcx + rax*4 - 0x10], esi | *((rcx + rax*4 - 0x10)) = esi; 0x0041aca0 mov esi, dword [rdx + rax*8 - 0x28] | esi = *((rdx + rax*8 - 0x28)); 0x0041aca4 mov dword [rcx + rax*4 - 0x14], esi | *((rcx + rax*4 - 0x14)) = esi; 0x0041aca8 mov esi, dword [rdx + rax*8 - 0x30] | esi = *((rdx + rax*8 - 0x30)); 0x0041acac mov dword [rcx + rax*4 - 0x18], esi | *((rcx + rax*4 - 0x18)) = esi; 0x0041acb0 mov esi, dword [rdx + rax*8 - 0x38] | esi = *((rdx + rax*8 - 0x38)); 0x0041acb4 mov dword [rcx + rax*4 - 0x1c], esi | *((rcx + rax*4 - 0x1c)) = esi; 0x0041acb8 mov esi, dword [rdx + rax*8 - 0x40] | esi = *((rdx + rax*8 - 0x40)); 0x0041acbc mov dword [rcx + rax*4 - 0x20], esi | *((rcx + rax*4 - 0x20)) = esi; 0x0041acc0 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041acc4 cmp rdi, rax | 0x0041acc7 jne 0x41ac80 | | } while (rdi != rax); 0x0041acc9 jmp 0x41b528 | goto label_8; | label_11: 0x0041acce mov r10, r14 | r10 = r14; 0x0041acd1 and r10, 0xfffffffffffffff0 | r10 &= 0xfffffffffffffff0; 0x0041acd5 lea rax, [r10 - 0x10] | rax = r10 - 0x10; 0x0041acd9 mov r11, rax | r11 = rax; 0x0041acdc shr r11, 4 | r11 >>= 4; 0x0041ace0 inc r11 | r11++; 0x0041ace3 test rax, rax | | if (rax == 0) { 0x0041ace6 je 0x41b220 | goto label_42; | } 0x0041acec add rdx, r14 | rdx += r14; 0x0041acef lea rax, [rsi + rdx - 8] | rax = rsi + rdx - 8; 0x0041acf4 add r9, r9 | r9 += r9; 0x0041acf7 lea rdx, [r9 + r14*2] | rdx = r9 + r14*2; 0x0041acfb lea rsi, [r8 + rdx - 0x10] | rsi = r8 + rdx - 0x10; 0x0041ad00 mov rbx, r11 | rbx = r11; 0x0041ad03 and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041ad07 neg rbx | rbx = -rbx; 0x0041ad0a xor edx, edx | edx = 0; 0x0041ad0c movdqa xmm0, xmmword [rip + 0x4558c] | __asm ("movdqa xmm0, xmmword [0x004602a0]"); | do { 0x0041ad14 movdqu xmm1, xmmword [rsi + rdx*2 - 0x10] | __asm ("movdqu xmm1, xmmword [rsi + rdx*2 - 0x10]"); 0x0041ad1a movdqu xmm2, xmmword [rsi + rdx*2] | __asm ("movdqu xmm2, xmmword [rsi + rdx*2]"); 0x0041ad1f pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041ad24 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041ad29 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041ad2d movdqu xmmword [rax + rdx - 8], xmm1 | __asm ("movdqu xmmword [rax + rdx - 8], xmm1"); 0x0041ad33 movdqu xmm1, xmmword [rsi + rdx*2 - 0x30] | __asm ("movdqu xmm1, xmmword [rsi + rdx*2 - 0x30]"); 0x0041ad39 movdqu xmm2, xmmword [rsi + rdx*2 - 0x20] | __asm ("movdqu xmm2, xmmword [rsi + rdx*2 - 0x20]"); 0x0041ad3f pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041ad44 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041ad49 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041ad4d movdqu xmmword [rax + rdx - 0x18], xmm1 | __asm ("movdqu xmmword [rax + rdx - 0x18], xmm1"); 0x0041ad53 add rdx, 0xffffffffffffffe0 | rdx += 0xffffffffffffffe0; 0x0041ad57 add rbx, 2 | rbx += 2; 0x0041ad5b jne 0x41ad14 | | } while (rbx != 0); 0x0041ad5d neg rdx | rdx = -rdx; 0x0041ad60 jmp 0x41b222 | goto label_43; | label_15: 0x0041ad65 mov r10, r14 | r10 = r14; 0x0041ad68 and r10, 0xfffffffffffffff0 | r10 &= 0xfffffffffffffff0; 0x0041ad6c lea rax, [r10 - 0x10] | rax = r10 - 0x10; 0x0041ad70 mov r11, rax | r11 = rax; 0x0041ad73 shr r11, 4 | r11 >>= 4; 0x0041ad77 inc r11 | r11++; 0x0041ad7a test rax, rax | | if (rax == 0) { 0x0041ad7d je 0x41b275 | goto label_44; | } 0x0041ad83 add rdx, rdx | rdx += rdx; 0x0041ad86 lea rax, [rdx + r14*2] | rax = rdx + r14*2; 0x0041ad8a lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041ad8f add r9, r14 | r9 += r14; 0x0041ad92 lea rax, [r8 + r9 - 8] | rax = r8 + r9 - 8; 0x0041ad97 mov rbx, r11 | rbx = r11; 0x0041ad9a and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041ad9e neg rbx | rbx = -rbx; 0x0041ada1 xor edx, edx | edx = 0; 0x0041ada3 movdqa xmm0, xmmword [rip + 0x454b5] | __asm ("movdqa xmm0, xmmword [0x00460260]"); 0x0041adab movdqa xmm1, xmmword [rip + 0x454bd] | __asm ("movdqa xmm1, xmmword [0x00460270]"); | do { 0x0041adb3 movq xmm2, qword [rax + rdx] | xmm2 = *((rax + rdx)); 0x0041adb8 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041adbd movq xmm3, qword [rax + rdx - 8] | xmm3 = *((rax + rdx - 8)); 0x0041adc3 pshufb xmm3, xmm0 | __asm ("pshufb xmm3, xmm0"); 0x0041adc8 pmovsxbw xmm2, xmm2 | __asm ("pmovsxbw xmm2, xmm2"); 0x0041adcd pmovsxbw xmm3, xmm3 | __asm ("pmovsxbw xmm3, xmm3"); 0x0041add2 pshufb xmm2, xmm1 | __asm ("pshufb xmm2, xmm1"); 0x0041add7 movdqu xmmword [rsi + rdx*2], xmm2 | __asm ("movdqu xmmword [rsi + rdx*2], xmm2"); 0x0041addc pshufb xmm3, xmm1 | __asm ("pshufb xmm3, xmm1"); 0x0041ade1 movdqu xmmword [rsi + rdx*2 - 0x10], xmm3 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x10], xmm3"); 0x0041ade7 movq xmm2, qword [rax + rdx - 0x10] | xmm2 = *((rax + rdx - 0x10)); 0x0041aded pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041adf2 movq xmm3, qword [rax + rdx - 0x18] | xmm3 = *((rax + rdx - 0x18)); 0x0041adf8 pshufb xmm3, xmm0 | __asm ("pshufb xmm3, xmm0"); 0x0041adfd pmovsxbw xmm2, xmm2 | __asm ("pmovsxbw xmm2, xmm2"); 0x0041ae02 pmovsxbw xmm3, xmm3 | __asm ("pmovsxbw xmm3, xmm3"); 0x0041ae07 pshufb xmm2, xmm1 | __asm ("pshufb xmm2, xmm1"); 0x0041ae0c movdqu xmmword [rsi + rdx*2 - 0x20], xmm2 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x20], xmm2"); 0x0041ae12 pshufb xmm3, xmm1 | __asm ("pshufb xmm3, xmm1"); 0x0041ae17 movdqu xmmword [rsi + rdx*2 - 0x30], xmm3 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x30], xmm3"); 0x0041ae1d add rdx, 0xffffffffffffffe0 | rdx += 0xffffffffffffffe0; 0x0041ae21 add rbx, 2 | rbx += 2; 0x0041ae25 jne 0x41adb3 | | } while (rbx != 0); 0x0041ae27 neg rdx | rdx = -rdx; 0x0041ae2a jmp 0x41b277 | goto label_45; | label_19: 0x0041ae2f mov r10, r14 | r10 = r14; 0x0041ae32 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041ae36 lea rax, [r10 - 8] | rax = r10 - 8; 0x0041ae3a mov r11, rax | r11 = rax; 0x0041ae3d shr r11, 3 | r11 >>= 3; 0x0041ae41 inc r11 | r11++; 0x0041ae44 test rax, rax | | if (rax == 0) { 0x0041ae47 je 0x41b2e6 | goto label_46; | } 0x0041ae4d shl rdx, 2 | rdx <<= 2; 0x0041ae51 lea rax, [rdx + r14*4] | rax = rdx + r14*4; 0x0041ae55 lea rax, [rsi + rax - 0x10] | rax = rsi + rax - 0x10; 0x0041ae5a add r9, r14 | r9 += r14; 0x0041ae5d lea rsi, [r8 + r9 - 4] | rsi = r8 + r9 - 4; 0x0041ae62 mov rbx, r11 | rbx = r11; 0x0041ae65 and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041ae69 neg rbx | rbx = -rbx; 0x0041ae6c xor edx, edx | edx = 0; 0x0041ae6e movdqa xmm0, xmmword [rip + 0x453ca] | __asm ("movdqa xmm0, xmmword [0x00460240]"); | do { 0x0041ae76 movd xmm1, dword [rsi + rdx] | xmm1 = *((rsi + rdx)); 0x0041ae7b pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041ae80 movd xmm2, dword [rsi + rdx - 4] | xmm2 = *((rsi + rdx - 4)); 0x0041ae86 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041ae8b pmovsxbd xmm1, xmm1 | __asm ("pmovsxbd xmm1, xmm1"); 0x0041ae90 pmovsxbd xmm2, xmm2 | __asm ("pmovsxbd xmm2, xmm2"); 0x0041ae95 pshufd xmm1, xmm1, 0x1b | __asm ("pshufd xmm1, xmm1, 0x1b"); 0x0041ae9a movdqu xmmword [rax + rdx*4], xmm1 | __asm ("movdqu xmmword [rax + rdx*4], xmm1"); 0x0041ae9f pshufd xmm1, xmm2, 0x1b | __asm ("pshufd xmm1, xmm2, 0x1b"); 0x0041aea4 movdqu xmmword [rax + rdx*4 - 0x10], xmm1 | __asm ("movdqu xmmword [rax + rdx*4 - 0x10], xmm1"); 0x0041aeaa movd xmm1, dword [rsi + rdx - 8] | xmm1 = *((rsi + rdx - 8)); 0x0041aeb0 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041aeb5 movd xmm2, dword [rsi + rdx - 0xc] | xmm2 = *((rsi + rdx - 0xc)); 0x0041aebb pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041aec0 pmovsxbd xmm1, xmm1 | __asm ("pmovsxbd xmm1, xmm1"); 0x0041aec5 pmovsxbd xmm2, xmm2 | __asm ("pmovsxbd xmm2, xmm2"); 0x0041aeca pshufd xmm1, xmm1, 0x1b | __asm ("pshufd xmm1, xmm1, 0x1b"); 0x0041aecf movdqu xmmword [rax + rdx*4 - 0x20], xmm1 | __asm ("movdqu xmmword [rax + rdx*4 - 0x20], xmm1"); 0x0041aed5 pshufd xmm1, xmm2, 0x1b | __asm ("pshufd xmm1, xmm2, 0x1b"); 0x0041aeda movdqu xmmword [rax + rdx*4 - 0x30], xmm1 | __asm ("movdqu xmmword [rax + rdx*4 - 0x30], xmm1"); 0x0041aee0 add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041aee4 add rbx, 2 | rbx += 2; 0x0041aee8 jne 0x41ae76 | | } while (rbx != 0); 0x0041aeea neg rdx | rdx = -rdx; 0x0041aeed jmp 0x41b2e8 | goto label_47; | label_25: 0x0041aef2 mov r10, r14 | r10 = r14; 0x0041aef5 and r10, 0xfffffffffffffffc | r10 &= 0xfffffffffffffffc; 0x0041aef9 lea rax, [r10 - 4] | rax = r10 - 4; 0x0041aefd mov r11, rax | r11 = rax; 0x0041af00 shr r11, 2 | r11 >>= 2; 0x0041af04 inc r11 | r11++; 0x0041af07 test rax, rax | | if (rax == 0) { 0x0041af0a je 0x41b354 | goto label_48; | } 0x0041af10 add rdx, r14 | rdx += r14; 0x0041af13 lea rax, [rsi + rdx - 2] | rax = rsi + rdx - 2; 0x0041af18 shl r9, 3 | r9 <<= 3; 0x0041af1c lea rdx, [r9 + r14*8] | rdx = r9 + r14*8; 0x0041af20 lea rsi, [r8 + rdx - 0x10] | rsi = r8 + rdx - 0x10; 0x0041af25 mov rbx, r11 | rbx = r11; 0x0041af28 and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041af2c neg rbx | rbx = -rbx; 0x0041af2f xor edx, edx | edx = 0; 0x0041af31 movdqa xmm0, xmmword [rip + 0x45347] | __asm ("movdqa xmm0, xmmword [0x00460280]"); | do { 0x0041af39 movdqu xmm1, xmmword [rsi + rdx*8 - 0x10] | __asm ("movdqu xmm1, xmmword [rsi + rdx*8 - 0x10]"); 0x0041af3f movdqu xmm2, xmmword [rsi + rdx*8] | __asm ("movdqu xmm2, xmmword [rsi + rdx*8]"); 0x0041af44 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041af49 pextrw word [rax + rdx], xmm2, 0 | __asm ("pextrw word [rax + rdx], xmm2, 0"); 0x0041af50 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041af55 pextrw word [rax + rdx - 2], xmm1, 0 | __asm ("pextrw word [rax + rdx - 2], xmm1, 0"); 0x0041af5d movdqu xmm1, xmmword [rsi + rdx*8 - 0x30] | __asm ("movdqu xmm1, xmmword [rsi + rdx*8 - 0x30]"); 0x0041af63 movdqu xmm2, xmmword [rsi + rdx*8 - 0x20] | __asm ("movdqu xmm2, xmmword [rsi + rdx*8 - 0x20]"); 0x0041af69 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041af6e pextrw word [rax + rdx - 4], xmm2, 0 | __asm ("pextrw word [rax + rdx - 4], xmm2, 0"); 0x0041af76 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041af7b pextrw word [rax + rdx - 6], xmm1, 0 | __asm ("pextrw word [rax + rdx - 6], xmm1, 0"); 0x0041af83 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041af87 add rbx, 2 | rbx += 2; 0x0041af8b jne 0x41af39 | | } while (rbx != 0); 0x0041af8d neg rdx | rdx = -rdx; 0x0041af90 jmp 0x41b356 | goto label_49; | label_27: 0x0041af95 mov r10, r14 | r10 = r14; 0x0041af98 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041af9c lea rax, [r10 - 8] | rax = r10 - 8; 0x0041afa0 mov r11, rax | r11 = rax; 0x0041afa3 shr r11, 3 | r11 >>= 3; 0x0041afa7 inc r11 | r11++; 0x0041afaa test rax, rax | | if (rax == 0) { 0x0041afad je 0x41b3b6 | goto label_50; | } 0x0041afb3 add rdx, r14 | rdx += r14; 0x0041afb6 lea rax, [rsi + rdx - 4] | rax = rsi + rdx - 4; 0x0041afbb shl r9, 2 | r9 <<= 2; 0x0041afbf lea rdx, [r9 + r14*4] | rdx = r9 + r14*4; 0x0041afc3 lea rsi, [r8 + rdx - 0x10] | rsi = r8 + rdx - 0x10; 0x0041afc8 mov rbx, r11 | rbx = r11; 0x0041afcb and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041afcf neg rbx | rbx = -rbx; 0x0041afd2 xor edx, edx | edx = 0; 0x0041afd4 movdqa xmm0, xmmword [rip + 0x452b4] | __asm ("movdqa xmm0, xmmword [0x00460290]"); | do { 0x0041afdc movdqu xmm1, xmmword [rsi + rdx*4 - 0x10] | __asm ("movdqu xmm1, xmmword [rsi + rdx*4 - 0x10]"); 0x0041afe2 movdqu xmm2, xmmword [rsi + rdx*4] | __asm ("movdqu xmm2, xmmword [rsi + rdx*4]"); 0x0041afe7 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041afec movd dword [rax + rdx], xmm2 | *((rax + rdx)) = xmm2; 0x0041aff1 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041aff6 movd dword [rax + rdx - 4], xmm1 | *((rax + rdx - 4)) = xmm1; 0x0041affc movdqu xmm1, xmmword [rsi + rdx*4 - 0x30] | __asm ("movdqu xmm1, xmmword [rsi + rdx*4 - 0x30]"); 0x0041b002 movdqu xmm2, xmmword [rsi + rdx*4 - 0x20] | __asm ("movdqu xmm2, xmmword [rsi + rdx*4 - 0x20]"); 0x0041b008 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041b00d movd dword [rax + rdx - 8], xmm2 | *((rax + rdx - 8)) = xmm2; 0x0041b013 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041b018 movd dword [rax + rdx - 0xc], xmm1 | *((rax + rdx - 0xc)) = xmm1; 0x0041b01e add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041b022 add rbx, 2 | rbx += 2; 0x0041b026 jne 0x41afdc | | } while (rbx != 0); 0x0041b028 neg rdx | rdx = -rdx; 0x0041b02b jmp 0x41b3b8 | goto label_51; | label_31: 0x0041b030 mov r10, r14 | r10 = r14; 0x0041b033 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041b037 lea rax, [r10 - 8] | rax = r10 - 8; 0x0041b03b mov r11, rax | r11 = rax; 0x0041b03e shr r11, 3 | r11 >>= 3; 0x0041b042 inc r11 | r11++; 0x0041b045 test rax, rax | | if (rax == 0) { 0x0041b048 je 0x41b414 | goto label_52; | } 0x0041b04e add rdx, rdx | rdx += rdx; 0x0041b051 lea rax, [rdx + r14*2] | rax = rdx + r14*2; 0x0041b055 lea rax, [rsi + rax - 8] | rax = rsi + rax - 8; 0x0041b05a shl r9, 2 | r9 <<= 2; 0x0041b05e lea rdx, [r9 + r14*4] | rdx = r9 + r14*4; 0x0041b062 lea rsi, [r8 + rdx - 0x10] | rsi = r8 + rdx - 0x10; 0x0041b067 mov rbx, r11 | rbx = r11; 0x0041b06a and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041b06e neg rbx | rbx = -rbx; 0x0041b071 xor edx, edx | edx = 0; 0x0041b073 movdqa xmm0, xmmword [rip + 0x451d5] | __asm ("movdqa xmm0, xmmword [0x00460250]"); | do { 0x0041b07b movdqu xmm1, xmmword [rsi + rdx*4 - 0x10] | __asm ("movdqu xmm1, xmmword [rsi + rdx*4 - 0x10]"); 0x0041b081 movdqu xmm2, xmmword [rsi + rdx*4] | __asm ("movdqu xmm2, xmmword [rsi + rdx*4]"); 0x0041b086 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041b08b pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041b090 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041b094 movdqu xmmword [rax + rdx*2 - 8], xmm1 | __asm ("movdqu xmmword [rax + rdx*2 - 8], xmm1"); 0x0041b09a movdqu xmm1, xmmword [rsi + rdx*4 - 0x30] | __asm ("movdqu xmm1, xmmword [rsi + rdx*4 - 0x30]"); 0x0041b0a0 movdqu xmm2, xmmword [rsi + rdx*4 - 0x20] | __asm ("movdqu xmm2, xmmword [rsi + rdx*4 - 0x20]"); 0x0041b0a6 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041b0ab pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041b0b0 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041b0b4 movdqu xmmword [rax + rdx*2 - 0x18], xmm1 | __asm ("movdqu xmmword [rax + rdx*2 - 0x18], xmm1"); 0x0041b0ba add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041b0be add rbx, 2 | rbx += 2; 0x0041b0c2 jne 0x41b07b | | } while (rbx != 0); 0x0041b0c4 neg rdx | rdx = -rdx; 0x0041b0c7 jmp 0x41b416 | goto label_53; | label_33: 0x0041b0cc mov rdi, r14 | rdi = r14; 0x0041b0cf and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x0041b0d3 lea rax, [rdi - 4] | rax = rdi - 4; 0x0041b0d7 mov r11, rax | r11 = rax; 0x0041b0da shr r11, 2 | r11 >>= 2; 0x0041b0de inc r11 | r11++; 0x0041b0e1 test rax, rax | | if (rax == 0) { 0x0041b0e4 je 0x41b478 | goto label_54; | } 0x0041b0ea shl rdx, 2 | rdx <<= 2; 0x0041b0ee lea rax, [rdx + r14*4] | rax = rdx + r14*4; 0x0041b0f2 lea rdx, [rsi + rax - 8] | rdx = rsi + rax - 8; 0x0041b0f7 shl r9, 3 | r9 <<= 3; 0x0041b0fb lea rax, [r9 + r14*8] | rax = r9 + r14*8; 0x0041b0ff lea rsi, [r8 + rax - 0x10] | rsi = r8 + rax - 0x10; 0x0041b104 mov rbx, r11 | rbx = r11; 0x0041b107 and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041b10b neg rbx | rbx = -rbx; 0x0041b10e xor eax, eax | eax = 0; | do { 0x0041b110 movdqu xmm0, xmmword [rsi + rax*8 - 0x10] | __asm ("movdqu xmm0, xmmword [rsi + rax*8 - 0x10]"); 0x0041b116 movdqu xmm1, xmmword [rsi + rax*8] | __asm ("movdqu xmm1, xmmword [rsi + rax*8]"); 0x0041b11b pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041b120 pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041b125 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041b129 movdqu xmmword [rdx + rax*4 - 8], xmm0 | __asm ("movdqu xmmword [rdx + rax*4 - 8], xmm0"); 0x0041b12f movdqu xmm0, xmmword [rsi + rax*8 - 0x30] | __asm ("movdqu xmm0, xmmword [rsi + rax*8 - 0x30]"); 0x0041b135 movdqu xmm1, xmmword [rsi + rax*8 - 0x20] | __asm ("movdqu xmm1, xmmword [rsi + rax*8 - 0x20]"); 0x0041b13b pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041b140 pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041b145 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041b149 movdqu xmmword [rdx + rax*4 - 0x18], xmm0 | __asm ("movdqu xmmword [rdx + rax*4 - 0x18], xmm0"); 0x0041b14f add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041b153 add rbx, 2 | rbx += 2; 0x0041b157 jne 0x41b110 | | } while (rbx != 0); 0x0041b159 neg rax | rax = -rax; 0x0041b15c jmp 0x41b47a | goto label_55; | label_36: 0x0041b161 mov r10, r14 | r10 = r14; 0x0041b164 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041b168 lea rax, [r10 - 8] | rax = r10 - 8; 0x0041b16c mov r11, rax | r11 = rax; 0x0041b16f shr r11, 3 | r11 >>= 3; 0x0041b173 inc r11 | r11++; 0x0041b176 test rax, rax | | if (rax == 0) { 0x0041b179 je 0x41b4d5 | goto label_56; | } 0x0041b17f shl rdx, 2 | rdx <<= 2; 0x0041b183 lea rax, [rdx + r14*4] | rax = rdx + r14*4; 0x0041b187 lea rax, [rsi + rax - 0x10] | rax = rsi + rax - 0x10; 0x0041b18c add r9, r9 | r9 += r9; 0x0041b18f lea rdx, [r9 + r14*2] | rdx = r9 + r14*2; 0x0041b193 lea rsi, [r8 + rdx - 8] | rsi = r8 + rdx - 8; 0x0041b198 mov rbx, r11 | rbx = r11; 0x0041b19b and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041b19f neg rbx | rbx = -rbx; 0x0041b1a2 xor edx, edx | edx = 0; | do { 0x0041b1a4 movq xmm0, qword [rsi + rdx*2] | xmm0 = *((rsi + rdx*2)); 0x0041b1a9 pshuflw xmm0, xmm0, 0x1b | __asm ("pshuflw xmm0, xmm0, 0x1b"); 0x0041b1ae movq xmm1, qword [rsi + rdx*2 - 8] | xmm1 = *((rsi + rdx*2 - 8)); 0x0041b1b4 pshuflw xmm1, xmm1, 0x1b | __asm ("pshuflw xmm1, xmm1, 0x1b"); 0x0041b1b9 pmovsxwd xmm0, xmm0 | __asm ("pmovsxwd xmm0, xmm0"); 0x0041b1be pmovsxwd xmm1, xmm1 | __asm ("pmovsxwd xmm1, xmm1"); 0x0041b1c3 pshufd xmm0, xmm0, 0x1b | __asm ("pshufd xmm0, xmm0, 0x1b"); 0x0041b1c8 movdqu xmmword [rax + rdx*4], xmm0 | __asm ("movdqu xmmword [rax + rdx*4], xmm0"); 0x0041b1cd pshufd xmm0, xmm1, 0x1b | __asm ("pshufd xmm0, xmm1, 0x1b"); 0x0041b1d2 movdqu xmmword [rax + rdx*4 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rdx*4 - 0x10], xmm0"); 0x0041b1d8 movq xmm0, qword [rsi + rdx*2 - 0x10] | xmm0 = *((rsi + rdx*2 - 0x10)); 0x0041b1de pshuflw xmm0, xmm0, 0x1b | __asm ("pshuflw xmm0, xmm0, 0x1b"); 0x0041b1e3 movq xmm1, qword [rsi + rdx*2 - 0x18] | xmm1 = *((rsi + rdx*2 - 0x18)); 0x0041b1e9 pshuflw xmm1, xmm1, 0x1b | __asm ("pshuflw xmm1, xmm1, 0x1b"); 0x0041b1ee pmovsxwd xmm0, xmm0 | __asm ("pmovsxwd xmm0, xmm0"); 0x0041b1f3 pmovsxwd xmm1, xmm1 | __asm ("pmovsxwd xmm1, xmm1"); 0x0041b1f8 pshufd xmm0, xmm0, 0x1b | __asm ("pshufd xmm0, xmm0, 0x1b"); 0x0041b1fd movdqu xmmword [rax + rdx*4 - 0x20], xmm0 | __asm ("movdqu xmmword [rax + rdx*4 - 0x20], xmm0"); 0x0041b203 pshufd xmm0, xmm1, 0x1b | __asm ("pshufd xmm0, xmm1, 0x1b"); 0x0041b208 movdqu xmmword [rax + rdx*4 - 0x30], xmm0 | __asm ("movdqu xmmword [rax + rdx*4 - 0x30], xmm0"); 0x0041b20e add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041b212 add rbx, 2 | rbx += 2; 0x0041b216 jne 0x41b1a4 | | } while (rbx != 0); 0x0041b218 neg rdx | rdx = -rdx; 0x0041b21b jmp 0x41b4d7 | goto label_57; | label_42: 0x0041b220 xor edx, edx | edx = 0; | label_43: 0x0041b222 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b226 je 0x41b25d | 0x0041b228 lea rax, [rdx + rdx] | rax = rdx + rdx; 0x0041b22c mov rsi, rdi | rsi = rdi; 0x0041b22f sub rsi, rax | rsi -= rax; 0x0041b232 mov rax, rcx | rax = rcx; 0x0041b235 sub rax, rdx | rax -= rdx; 0x0041b238 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041b23d movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041b242 movdqa xmm2, xmmword [rip + 0x45056] | __asm ("movdqa xmm2, xmmword [0x004602a0]"); 0x0041b24a pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041b24f pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041b254 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041b258 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); | } 0x0041b25d cmp r10, r14 | | if (r10 != r14) { 0x0041b260 je 0x41b528 | 0x0041b266 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041b26a sub rdi, rax | rdi -= rax; 0x0041b26d sub rcx, r10 | rcx -= r10; 0x0041b270 jmp 0x41a1e5 | goto label_0; | label_44: 0x0041b275 xor edx, edx | edx = 0; | label_45: 0x0041b277 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b27b je 0x41b2ce | 0x0041b27d mov rax, rdi | rax = rdi; 0x0041b280 sub rax, rdx | rax -= rdx; 0x0041b283 add rdx, rdx | rdx += rdx; 0x0041b286 mov rsi, rcx | rsi = rcx; 0x0041b289 sub rsi, rdx | rsi -= rdx; 0x0041b28c movq xmm0, qword [rax - 8] | xmm0 = *((rax - 8)); 0x0041b291 movdqa xmm1, xmmword [rip + 0x44fc7] | __asm ("movdqa xmm1, xmmword [0x00460260]"); 0x0041b299 pshufb xmm0, xmm1 | __asm ("pshufb xmm0, xmm1"); 0x0041b29e movq xmm2, qword [rax - 0x10] | xmm2 = *((rax - 0x10)); 0x0041b2a3 pshufb xmm2, xmm1 | __asm ("pshufb xmm2, xmm1"); 0x0041b2a8 pmovsxbw xmm0, xmm0 | __asm ("pmovsxbw xmm0, xmm0"); 0x0041b2ad pmovsxbw xmm1, xmm2 | __asm ("pmovsxbw xmm1, xmm2"); 0x0041b2b2 movdqa xmm2, xmmword [rip + 0x44fb6] | __asm ("movdqa xmm2, xmmword [0x00460270]"); 0x0041b2ba pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041b2bf movdqu xmmword [rsi - 0x10], xmm0 | __asm ("movdqu xmmword [rsi - 0x10], xmm0"); 0x0041b2c4 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041b2c9 movdqu xmmword [rsi - 0x20], xmm1 | __asm ("movdqu xmmword [rsi - 0x20], xmm1"); | } 0x0041b2ce cmp r10, r14 | | if (r10 == r14) { 0x0041b2d1 je 0x41b528 | goto label_8; | } 0x0041b2d7 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041b2db sub rdi, r10 | rdi -= r10; 0x0041b2de sub rcx, rax | rcx -= rax; 0x0041b2e1 jmp 0x41a2dd | goto label_1; | label_46: 0x0041b2e6 xor edx, edx | edx = 0; | label_47: 0x0041b2e8 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b2ec je 0x41b338 | 0x0041b2ee mov rax, rdi | rax = rdi; 0x0041b2f1 sub rax, rdx | rax -= rdx; 0x0041b2f4 shl rdx, 2 | rdx <<= 2; 0x0041b2f8 mov rsi, rcx | rsi = rcx; 0x0041b2fb sub rsi, rdx | rsi -= rdx; 0x0041b2fe movd xmm0, dword [rax - 4] | xmm0 = *((rax - 4)); 0x0041b303 movdqa xmm1, xmmword [rip + 0x44f35] | __asm ("movdqa xmm1, xmmword [0x00460240]"); 0x0041b30b pshufb xmm0, xmm1 | __asm ("pshufb xmm0, xmm1"); 0x0041b310 movd xmm2, dword [rax - 8] | xmm2 = *((rax - 8)); 0x0041b315 pshufb xmm2, xmm1 | __asm ("pshufb xmm2, xmm1"); 0x0041b31a pmovsxbd xmm0, xmm0 | __asm ("pmovsxbd xmm0, xmm0"); 0x0041b31f pmovsxbd xmm1, xmm2 | __asm ("pmovsxbd xmm1, xmm2"); 0x0041b324 pshufd xmm0, xmm0, 0x1b | __asm ("pshufd xmm0, xmm0, 0x1b"); 0x0041b329 movdqu xmmword [rsi - 0x10], xmm0 | __asm ("movdqu xmmword [rsi - 0x10], xmm0"); 0x0041b32e pshufd xmm0, xmm1, 0x1b | __asm ("pshufd xmm0, xmm1, 0x1b"); 0x0041b333 movdqu xmmword [rsi - 0x20], xmm0 | __asm ("movdqu xmmword [rsi - 0x20], xmm0"); | } 0x0041b338 cmp r10, r14 | | if (r10 == r14) { 0x0041b33b je 0x41b528 | goto label_8; | } 0x0041b341 lea rax, [r10*4] | rax = r10*4; 0x0041b349 sub rdi, r10 | rdi -= r10; 0x0041b34c sub rcx, rax | rcx -= rax; 0x0041b34f jmp 0x41a3e5 | goto label_2; | label_48: 0x0041b354 xor edx, edx | edx = 0; | label_49: 0x0041b356 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b35a je 0x41b39a | 0x0041b35c lea rax, [rdx*8] | rax = rdx*8; 0x0041b364 mov rsi, rdi | rsi = rdi; 0x0041b367 sub rsi, rax | rsi -= rax; 0x0041b36a mov rax, rcx | rax = rcx; 0x0041b36d sub rax, rdx | rax -= rdx; 0x0041b370 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041b375 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041b37a movdqa xmm2, xmmword [rip + 0x44efe] | __asm ("movdqa xmm2, xmmword [0x00460280]"); 0x0041b382 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041b387 pextrw word [rax - 2], xmm1, 0 | __asm ("pextrw word [rax - 2], xmm1, 0"); 0x0041b38e pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041b393 pextrw word [rax - 4], xmm0, 0 | __asm ("pextrw word [rax - 4], xmm0, 0"); | } 0x0041b39a cmp r10, r14 | | if (r10 == r14) { 0x0041b39d je 0x41b528 | goto label_8; | } 0x0041b3a3 lea rax, [r10*8] | rax = r10*8; 0x0041b3ab sub rdi, rax | rdi -= rax; 0x0041b3ae sub rcx, r10 | rcx -= r10; 0x0041b3b1 jmp 0x41a509 | goto label_3; | label_50: 0x0041b3b6 xor edx, edx | edx = 0; | label_51: 0x0041b3b8 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b3bc je 0x41b3f8 | 0x0041b3be lea rax, [rdx*4] | rax = rdx*4; 0x0041b3c6 mov rsi, rdi | rsi = rdi; 0x0041b3c9 sub rsi, rax | rsi -= rax; 0x0041b3cc mov rax, rcx | rax = rcx; 0x0041b3cf sub rax, rdx | rax -= rdx; 0x0041b3d2 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041b3d7 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041b3dc movdqa xmm2, xmmword [rip + 0x44eac] | __asm ("movdqa xmm2, xmmword [0x00460290]"); 0x0041b3e4 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041b3e9 movd dword [rax - 4], xmm1 | *((rax - 4)) = xmm1; 0x0041b3ee pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041b3f3 movd dword [rax - 8], xmm0 | *((rax - 8)) = xmm0; | } 0x0041b3f8 cmp r10, r14 | | if (r10 == r14) { 0x0041b3fb je 0x41b528 | goto label_8; | } 0x0041b401 lea rax, [r10*4] | rax = r10*4; 0x0041b409 sub rdi, rax | rdi -= rax; 0x0041b40c sub rcx, r10 | rcx -= r10; 0x0041b40f jmp 0x41a5ee | goto label_4; | label_52: 0x0041b414 xor edx, edx | edx = 0; | label_53: 0x0041b416 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b41a je 0x41b458 | 0x0041b41c lea rax, [rdx*4] | rax = rdx*4; 0x0041b424 mov rsi, rdi | rsi = rdi; 0x0041b427 sub rsi, rax | rsi -= rax; 0x0041b42a add rdx, rdx | rdx += rdx; 0x0041b42d mov rax, rcx | rax = rcx; 0x0041b430 sub rax, rdx | rax -= rdx; 0x0041b433 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041b438 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041b43d movdqa xmm2, xmmword [rip + 0x44e0b] | __asm ("movdqa xmm2, xmmword [0x00460250]"); 0x0041b445 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041b44a pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041b44f punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041b453 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); | } 0x0041b458 cmp r10, r14 | | if (r10 == r14) { 0x0041b45b je 0x41b528 | goto label_8; | } 0x0041b461 lea rax, [r10*4] | rax = r10*4; 0x0041b469 lea rdx, [r10 + r10] | rdx = r10 + r10; 0x0041b46d sub rdi, rax | rdi -= rax; 0x0041b470 sub rcx, rdx | rcx -= rdx; 0x0041b473 jmp 0x41a704 | goto label_5; | label_54: 0x0041b478 xor eax, eax | eax = 0; | label_55: 0x0041b47a test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b47e je 0x41b4b5 | 0x0041b480 lea rdx, [rax*8] | rdx = rax*8; 0x0041b488 mov rsi, r10 | rsi = r10; 0x0041b48b sub rsi, rdx | rsi -= rdx; 0x0041b48e shl rax, 2 | rax <<= 2; 0x0041b492 mov rdx, rcx | rdx = rcx; 0x0041b495 sub rdx, rax | rdx -= rax; 0x0041b498 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041b49d movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041b4a2 pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041b4a7 pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041b4ac punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041b4b0 movdqu xmmword [rdx - 0x10], xmm0 | __asm ("movdqu xmmword [rdx - 0x10], xmm0"); | } 0x0041b4b5 cmp rdi, r14 | | if (rdi == r14) { 0x0041b4b8 je 0x41b528 | goto label_8; | } 0x0041b4ba lea rax, [rdi*8] | rax = rdi*8; 0x0041b4c2 lea rdx, [rdi*4] | rdx = rdi*4; 0x0041b4ca sub r10, rax | r10 -= rax; 0x0041b4cd sub rcx, rdx | rcx -= rdx; 0x0041b4d0 jmp 0x41a7ed | goto label_6; | label_56: 0x0041b4d5 xor edx, edx | edx = 0; | label_57: 0x0041b4d7 test r11b, 1 | | if ((r11b & 1) != 0) { 0x0041b4db je 0x41b523 | 0x0041b4dd lea rax, [rdx + rdx] | rax = rdx + rdx; 0x0041b4e1 mov rsi, rdi | rsi = rdi; 0x0041b4e4 sub rsi, rax | rsi -= rax; 0x0041b4e7 shl rdx, 2 | rdx <<= 2; 0x0041b4eb mov rax, rcx | rax = rcx; 0x0041b4ee sub rax, rdx | rax -= rdx; 0x0041b4f1 movq xmm0, qword [rsi - 8] | xmm0 = *((rsi - 8)); 0x0041b4f6 pshuflw xmm0, xmm0, 0x1b | __asm ("pshuflw xmm0, xmm0, 0x1b"); 0x0041b4fb movq xmm1, qword [rsi - 0x10] | xmm1 = *((rsi - 0x10)); 0x0041b500 pshuflw xmm1, xmm1, 0x1b | __asm ("pshuflw xmm1, xmm1, 0x1b"); 0x0041b505 pmovsxwd xmm0, xmm0 | __asm ("pmovsxwd xmm0, xmm0"); 0x0041b50a pmovsxwd xmm1, xmm1 | __asm ("pmovsxwd xmm1, xmm1"); 0x0041b50f pshufd xmm0, xmm0, 0x1b | __asm ("pshufd xmm0, xmm0, 0x1b"); 0x0041b514 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); 0x0041b519 pshufd xmm0, xmm1, 0x1b | __asm ("pshufd xmm0, xmm1, 0x1b"); 0x0041b51e movdqu xmmword [rax - 0x20], xmm0 | __asm ("movdqu xmmword [rax - 0x20], xmm0"); | } 0x0041b523 cmp r10, r14 | | if (r10 != r14) { 0x0041b526 jne 0x41b52c | goto label_58; | } | } | label_8: 0x0041b528 pop rbx | 0x0041b529 pop r14 | r14 = rbx; 0x0041b52b ret | return rax; | label_58: 0x0041b52c lea rax, [r10 + r10] | rax = r10 + r10; 0x0041b530 lea rdx, [r10*4] | rdx = r10*4; 0x0041b538 sub rdi, rax | rdi -= rax; 0x0041b53b sub rcx, rdx | rcx -= rdx; 0x0041b53e jmp 0x41a874 | goto label_7; | }