; assembly | /* r2dec pseudo code output */ | /* bblb_schedulegenerationutil.t/none @ 0x41d590 */ | #include | ; (fcn) method.BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Unsigned_.replaceImp_void__unsigned_long__int__void__unsigned_long__int__unsigned_long_ () | uint64_t method_BloombergLP::bdlc::PackedIntArrayImp_BloombergLP::bdlc::PackedIntArrayImp_Unsigned_replaceImp_void_unsigned_long_int_void_unsigned_long_int_unsigned_long_ (int64_t arg_18h, int64_t arg_20h, void * arg6, int64_t arg5, void ** 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) */ 0x0041d590 push r14 | 0x0041d592 push rbx | 0x0041d593 dec ecx | ecx--; 0x0041d595 cmp ecx, 7 | | if (ecx > 7) { 0x0041d598 ja 0x41ea9c | goto label_11; | } 0x0041d59e mov r11, qword [rsp + 0x20] | r11 = *((rsp + 0x20)); 0x0041d5a3 mov edi, dword [rsp + 0x18] | edi = *((rsp + 0x18)); | /* switch table (8 cases) at 0x4604f0 */ 0x0041d5a7 jmp qword [rcx*8 + 0x4604f0] | 0x0041d5ae lea rax, [rsi + rdx] | rax = rsi + rdx; 0x0041d5b2 cmp edi, 8 | | if (edi == 8) { 0x0041d5b5 je 0x41d9ae | goto label_12; | } 0x0041d5bb cmp edi, 4 | | if (edi == 4) { 0x0041d5be je 0x41da86 | goto label_13; | } 0x0041d5c4 cmp edi, 2 | | if (edi != 2) { 0x0041d5c7 jne 0x41ea9c | goto label_11; | } 0x0041d5cd test r11, r11 | | if (r11 == 0) { 0x0041d5d0 je 0x41ea9c | goto label_11; | } 0x0041d5d6 lea rcx, [rax + r11] | rcx = rax + r11; 0x0041d5da lea r10, [r8 + r9*2] | r10 = r8 + r9*2; 0x0041d5de lea rdi, [r10 + r11*2] | rdi = r10 + r11*2; 0x0041d5e2 cmp r11, 0x10 | | if (r11 >= 0x10) { 0x0041d5e6 jb 0x41d602 | 0x0041d5e8 lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041d5ec lea rbx, [r8 + rbx*2] | rbx = r8 + rbx*2; 0x0041d5f0 cmp rax, rbx | | if (rax >= rbx) { 0x0041d5f3 jae 0x41e0e6 | goto label_14; | } 0x0041d5f9 cmp r10, rcx | | if (r10 >= rcx) { 0x0041d5fc jae 0x41e0e6 | goto label_14; | } | } 0x0041d602 xor r10d, r10d | r10d = 0; | label_0: 0x0041d605 mov rax, r10 | rax = r10; 0x0041d608 not rax | rax = ~rax; 0x0041d60b add rax, r11 | rax += r11; 0x0041d60e mov rdx, r11 | rdx = r11; 0x0041d611 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041d615 je 0x41d63a | goto label_15; | } 0x0041d617 neg rdx | rdx = -rdx; 0x0041d61a xor esi, esi | esi = 0; 0x0041d61c nop dword [rax] | | do { 0x0041d620 movzx ebx, byte [rdi - 2] | ebx = *((rdi - 2)); 0x0041d624 add rdi, 0xfffffffffffffffe | rdi += 0xfffffffffffffffe; 0x0041d628 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041d62c dec rsi | rsi--; 0x0041d62f cmp rdx, rsi | 0x0041d632 jne 0x41d620 | | } while (rdx != rsi); 0x0041d634 sub r10, rsi | r10 -= rsi; 0x0041d637 add rcx, rsi | rcx += rsi; | label_15: 0x0041d63a cmp rax, 7 | | if (rax < 7) { 0x0041d63e jb 0x41ea9c | goto label_11; | } 0x0041d644 sub r10, r11 | r10 -= r11; 0x0041d647 xor eax, eax | eax = 0; 0x0041d649 nop dword [rax] | | do { 0x0041d650 movzx edx, byte [rdi + rax*2 - 2] | edx = *((rdi + rax*2 - 2)); 0x0041d655 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041d659 movzx edx, byte [rdi + rax*2 - 4] | edx = *((rdi + rax*2 - 4)); 0x0041d65e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041d662 movzx edx, byte [rdi + rax*2 - 6] | edx = *((rdi + rax*2 - 6)); 0x0041d667 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041d66b movzx edx, byte [rdi + rax*2 - 8] | edx = *((rdi + rax*2 - 8)); 0x0041d670 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041d674 movzx edx, byte [rdi + rax*2 - 0xa] | edx = *((rdi + rax*2 - 0xa)); 0x0041d679 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041d67d movzx edx, byte [rdi + rax*2 - 0xc] | edx = *((rdi + rax*2 - 0xc)); 0x0041d682 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041d686 movzx edx, byte [rdi + rax*2 - 0xe] | edx = *((rdi + rax*2 - 0xe)); 0x0041d68b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041d68f movzx edx, byte [rdi + rax*2 - 0x10] | edx = *((rdi + rax*2 - 0x10)); 0x0041d694 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041d698 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041d69c cmp r10, rax | 0x0041d69f jne 0x41d650 | | } while (r10 != rax); 0x0041d6a1 jmp 0x41ea9c | goto label_11; 0x0041d6a6 lea r10, [rsi + rdx*2] | r10 = rsi + rdx*2; 0x0041d6aa cmp edi, 8 | | if (edi == 8) { 0x0041d6ad je 0x41db66 | goto label_16; | } 0x0041d6b3 cmp edi, 4 | | if (edi == 4) { 0x0041d6b6 je 0x41db94 | goto label_17; | } 0x0041d6bc cmp edi, 1 | | if (edi != 1) { 0x0041d6bf jne 0x41ea9c | goto label_11; | } 0x0041d6c5 test r11, r11 | | if (r11 == 0) { 0x0041d6c8 je 0x41ea9c | goto label_11; | } 0x0041d6ce lea rcx, [r10 + r11*2] | rcx = r10 + r11*2; 0x0041d6d2 lea rax, [r8 + r9] | rax = r8 + r9; 0x0041d6d6 lea rdi, [rax + r11] | rdi = rax + r11; 0x0041d6da cmp r11, 0x10 | | if (r11 >= 0x10) { 0x0041d6de jb 0x41d6fa | 0x0041d6e0 cmp r10, rdi | | if (r10 >= rdi) { 0x0041d6e3 jae 0x41e17d | goto label_18; | } 0x0041d6e9 lea rbx, [r11 + rdx] | rbx = r11 + rdx; 0x0041d6ed lea rbx, [rsi + rbx*2] | rbx = rsi + rbx*2; 0x0041d6f1 cmp rax, rbx | | if (rax >= rbx) { 0x0041d6f4 jae 0x41e17d | goto label_18; | } | } 0x0041d6fa xor r10d, r10d | r10d = 0; | label_1: 0x0041d6fd mov rax, r10 | rax = r10; 0x0041d700 not rax | rax = ~rax; 0x0041d703 add rax, r11 | rax += r11; 0x0041d706 mov rdx, r11 | rdx = r11; 0x0041d709 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041d70d je 0x41d73b | goto label_19; | } 0x0041d70f neg rdx | rdx = -rdx; 0x0041d712 xor esi, esi | esi = 0; 0x0041d714 nop word cs:[rax + rax] | 0x0041d71e nop | | do { 0x0041d720 movzx ebx, byte [rdi + rsi - 1] | ebx = *((rdi + rsi - 1)); 0x0041d725 mov word [rcx - 2], bx | *((rcx - 2)) = bx; 0x0041d729 add rcx, 0xfffffffffffffffe | rcx += 0xfffffffffffffffe; 0x0041d72d dec rsi | rsi--; 0x0041d730 cmp rdx, rsi | 0x0041d733 jne 0x41d720 | | } while (rdx != rsi); 0x0041d735 sub r10, rsi | r10 -= rsi; 0x0041d738 add rdi, rsi | rdi += rsi; | label_19: 0x0041d73b cmp rax, 7 | | if (rax < 7) { 0x0041d73f jb 0x41ea9c | goto label_11; | } 0x0041d745 sub r10, r11 | r10 -= r11; 0x0041d748 xor eax, eax | eax = 0; 0x0041d74a nop word [rax + rax] | | do { 0x0041d750 movzx edx, byte [rdi + rax - 1] | edx = *((rdi + rax - 1)); 0x0041d755 mov word [rcx + rax*2 - 2], dx | *((rcx + rax*2 - 2)) = dx; 0x0041d75a movzx edx, byte [rdi + rax - 2] | edx = *((rdi + rax - 2)); 0x0041d75f mov word [rcx + rax*2 - 4], dx | *((rcx + rax*2 - 4)) = dx; 0x0041d764 movzx edx, byte [rdi + rax - 3] | edx = *((rdi + rax - 3)); 0x0041d769 mov word [rcx + rax*2 - 6], dx | *((rcx + rax*2 - 6)) = dx; 0x0041d76e movzx edx, byte [rdi + rax - 4] | edx = *((rdi + rax - 4)); 0x0041d773 mov word [rcx + rax*2 - 8], dx | *((rcx + rax*2 - 8)) = dx; 0x0041d778 movzx edx, byte [rdi + rax - 5] | edx = *((rdi + rax - 5)); 0x0041d77d mov word [rcx + rax*2 - 0xa], dx | *((rcx + rax*2 - 0xa)) = dx; 0x0041d782 movzx edx, byte [rdi + rax - 6] | edx = *((rdi + rax - 6)); 0x0041d787 mov word [rcx + rax*2 - 0xc], dx | *((rcx + rax*2 - 0xc)) = dx; 0x0041d78c movzx edx, byte [rdi + rax - 7] | edx = *((rdi + rax - 7)); 0x0041d791 mov word [rcx + rax*2 - 0xe], dx | *((rcx + rax*2 - 0xe)) = dx; 0x0041d796 movzx edx, byte [rdi + rax - 8] | edx = *((rdi + rax - 8)); 0x0041d79b mov word [rcx + rax*2 - 0x10], dx | *((rcx + rax*2 - 0x10)) = dx; 0x0041d7a0 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041d7a4 cmp r10, rax | 0x0041d7a7 jne 0x41d750 | | } while (r10 != rax); 0x0041d7a9 jmp 0x41ea9c | goto label_11; 0x0041d7ae lea rax, [rsi + rdx*4] | rax = rsi + rdx*4; 0x0041d7b2 cmp edi, 8 | | if (edi == 8) { 0x0041d7b5 je 0x41dc7e | goto label_20; | } 0x0041d7bb cmp edi, 2 | | if (edi == 2) { 0x0041d7be je 0x41dd04 | goto label_21; | } 0x0041d7c4 cmp edi, 1 | | if (edi != 1) { 0x0041d7c7 jne 0x41ea9c | goto label_11; | } 0x0041d7cd test r11, r11 | | if (r11 == 0) { 0x0041d7d0 je 0x41ea9c | goto label_11; | } 0x0041d7d6 lea rcx, [rax + r11*4] | rcx = rax + r11*4; 0x0041d7da lea rbx, [r8 + r9] | rbx = r8 + r9; 0x0041d7de lea rdi, [rbx + r11] | rdi = rbx + r11; 0x0041d7e2 cmp r11, 8 | | if (r11 >= 8) { 0x0041d7e6 jb 0x41d802 | 0x0041d7e8 cmp rax, rdi | | if (rax >= rdi) { 0x0041d7eb jae 0x41e1ff | goto label_22; | } 0x0041d7f1 lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041d7f5 lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041d7f9 cmp rbx, rax | | if (rbx >= rax) { 0x0041d7fc jae 0x41e1ff | goto label_22; | } | } 0x0041d802 xor r10d, r10d | r10d = 0; | label_2: 0x0041d805 mov rax, r10 | rax = r10; 0x0041d808 not rax | rax = ~rax; 0x0041d80b add rax, r11 | rax += r11; 0x0041d80e mov rdx, r11 | rdx = r11; 0x0041d811 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041d815 je 0x41d83a | goto label_23; | } 0x0041d817 neg rdx | rdx = -rdx; 0x0041d81a xor esi, esi | esi = 0; 0x0041d81c nop dword [rax] | | do { 0x0041d820 movzx ebx, byte [rdi + rsi - 1] | ebx = *((rdi + rsi - 1)); 0x0041d825 mov dword [rcx - 4], ebx | *((rcx - 4)) = ebx; 0x0041d828 add rcx, 0xfffffffffffffffc | rcx += 0xfffffffffffffffc; 0x0041d82c dec rsi | rsi--; 0x0041d82f cmp rdx, rsi | 0x0041d832 jne 0x41d820 | | } while (rdx != rsi); 0x0041d834 sub r10, rsi | r10 -= rsi; 0x0041d837 add rdi, rsi | rdi += rsi; | label_23: 0x0041d83a cmp rax, 7 | | if (rax < 7) { 0x0041d83e jb 0x41ea9c | goto label_11; | } 0x0041d844 sub r10, r11 | r10 -= r11; 0x0041d847 xor eax, eax | eax = 0; 0x0041d849 nop dword [rax] | | do { 0x0041d850 movzx edx, byte [rdi + rax - 1] | edx = *((rdi + rax - 1)); 0x0041d855 mov dword [rcx + rax*4 - 4], edx | *((rcx + rax*4 - 4)) = edx; 0x0041d859 movzx edx, byte [rdi + rax - 2] | edx = *((rdi + rax - 2)); 0x0041d85e mov dword [rcx + rax*4 - 8], edx | *((rcx + rax*4 - 8)) = edx; 0x0041d862 movzx edx, byte [rdi + rax - 3] | edx = *((rdi + rax - 3)); 0x0041d867 mov dword [rcx + rax*4 - 0xc], edx | *((rcx + rax*4 - 0xc)) = edx; 0x0041d86b movzx edx, byte [rdi + rax - 4] | edx = *((rdi + rax - 4)); 0x0041d870 mov dword [rcx + rax*4 - 0x10], edx | *((rcx + rax*4 - 0x10)) = edx; 0x0041d874 movzx edx, byte [rdi + rax - 5] | edx = *((rdi + rax - 5)); 0x0041d879 mov dword [rcx + rax*4 - 0x14], edx | *((rcx + rax*4 - 0x14)) = edx; 0x0041d87d movzx edx, byte [rdi + rax - 6] | edx = *((rdi + rax - 6)); 0x0041d882 mov dword [rcx + rax*4 - 0x18], edx | *((rcx + rax*4 - 0x18)) = edx; 0x0041d886 movzx edx, byte [rdi + rax - 7] | edx = *((rdi + rax - 7)); 0x0041d88b mov dword [rcx + rax*4 - 0x1c], edx | *((rcx + rax*4 - 0x1c)) = edx; 0x0041d88f movzx edx, byte [rdi + rax - 8] | edx = *((rdi + rax - 8)); 0x0041d894 mov dword [rcx + rax*4 - 0x20], edx | *((rcx + rax*4 - 0x20)) = edx; 0x0041d898 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041d89c cmp r10, rax | 0x0041d89f jne 0x41d850 | | } while (r10 != rax); 0x0041d8a1 jmp 0x41ea9c | goto label_11; 0x0041d8a6 lea rax, [rsi + rdx*8] | rax = rsi + rdx*8; 0x0041d8aa cmp edi, 4 | | if (edi == 4) { 0x0041d8ad je 0x41dde6 | goto label_24; | } 0x0041d8b3 cmp edi, 2 | | if (edi == 2) { 0x0041d8b6 je 0x41de74 | goto label_25; | } 0x0041d8bc cmp edi, 1 | | if (edi != 1) { 0x0041d8bf jne 0x41ea9c | goto label_11; | } 0x0041d8c5 test r11, r11 | | if (r11 == 0) { 0x0041d8c8 je 0x41ea9c | goto label_11; | } 0x0041d8ce lea rcx, [rax + r11*8] | rcx = rax + r11*8; 0x0041d8d2 lea rbx, [r8 + r9] | rbx = r8 + r9; 0x0041d8d6 lea rdi, [rbx + r11] | rdi = rbx + r11; 0x0041d8da cmp r11, 4 | | if (r11 >= 4) { 0x0041d8de jb 0x41d8fa | 0x0041d8e0 cmp rax, rdi | | if (rax >= rdi) { 0x0041d8e3 jae 0x41e282 | goto label_26; | } 0x0041d8e9 lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041d8ed lea rax, [rsi + rax*8] | rax = rsi + rax*8; 0x0041d8f1 cmp rbx, rax | | if (rbx >= rax) { 0x0041d8f4 jae 0x41e282 | goto label_26; | } | } 0x0041d8fa xor r10d, r10d | r10d = 0; | label_3: 0x0041d8fd mov edx, r11d | edx = r11d; 0x0041d900 sub edx, r10d | edx -= r10d; 0x0041d903 mov rax, r10 | rax = r10; 0x0041d906 not rax | rax = ~rax; 0x0041d909 add rax, r11 | rax += r11; 0x0041d90c and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041d910 je 0x41d93b | goto label_27; | } 0x0041d912 neg rdx | rdx = -rdx; 0x0041d915 xor esi, esi | esi = 0; 0x0041d917 nop word [rax + rax] | | do { 0x0041d920 movzx ebx, byte [rdi + rsi - 1] | ebx = *((rdi + rsi - 1)); 0x0041d925 mov qword [rcx - 8], rbx | *((rcx - 8)) = rbx; 0x0041d929 add rcx, 0xfffffffffffffff8 | rcx += 0xfffffffffffffff8; 0x0041d92d dec rsi | rsi--; 0x0041d930 cmp rdx, rsi | 0x0041d933 jne 0x41d920 | | } while (rdx != rsi); 0x0041d935 sub r10, rsi | r10 -= rsi; 0x0041d938 add rdi, rsi | rdi += rsi; | label_27: 0x0041d93b cmp rax, 7 | | if (rax < 7) { 0x0041d93f jb 0x41ea9c | goto label_11; | } 0x0041d945 sub r10, r11 | r10 -= r11; 0x0041d948 xor eax, eax | eax = 0; 0x0041d94a nop word [rax + rax] | | do { 0x0041d950 movzx edx, byte [rdi + rax - 1] | edx = *((rdi + rax - 1)); 0x0041d955 mov qword [rcx + rax*8 - 8], rdx | *((rcx + rax*8 - 8)) = rdx; 0x0041d95a movzx edx, byte [rdi + rax - 2] | edx = *((rdi + rax - 2)); 0x0041d95f mov qword [rcx + rax*8 - 0x10], rdx | *((rcx + rax*8 - 0x10)) = rdx; 0x0041d964 movzx edx, byte [rdi + rax - 3] | edx = *((rdi + rax - 3)); 0x0041d969 mov qword [rcx + rax*8 - 0x18], rdx | *((rcx + rax*8 - 0x18)) = rdx; 0x0041d96e movzx edx, byte [rdi + rax - 4] | edx = *((rdi + rax - 4)); 0x0041d973 mov qword [rcx + rax*8 - 0x20], rdx | *((rcx + rax*8 - 0x20)) = rdx; 0x0041d978 movzx edx, byte [rdi + rax - 5] | edx = *((rdi + rax - 5)); 0x0041d97d mov qword [rcx + rax*8 - 0x28], rdx | *((rcx + rax*8 - 0x28)) = rdx; 0x0041d982 movzx edx, byte [rdi + rax - 6] | edx = *((rdi + rax - 6)); 0x0041d987 mov qword [rcx + rax*8 - 0x30], rdx | *((rcx + rax*8 - 0x30)) = rdx; 0x0041d98c movzx edx, byte [rdi + rax - 7] | edx = *((rdi + rax - 7)); 0x0041d991 mov qword [rcx + rax*8 - 0x38], rdx | *((rcx + rax*8 - 0x38)) = rdx; 0x0041d996 movzx edx, byte [rdi + rax - 8] | edx = *((rdi + rax - 8)); 0x0041d99b mov qword [rcx + rax*8 - 0x40], rdx | *((rcx + rax*8 - 0x40)) = rdx; 0x0041d9a0 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041d9a4 cmp r10, rax | 0x0041d9a7 jne 0x41d950 | | } while (r10 != rax); 0x0041d9a9 jmp 0x41ea9c | goto label_11; | label_12: 0x0041d9ae test r11, r11 | | if (r11 == 0) { 0x0041d9b1 je 0x41ea9c | goto label_11; | } 0x0041d9b7 lea rcx, [rax + r11] | rcx = rax + r11; 0x0041d9bb lea r10, [r8 + r9*8] | r10 = r8 + r9*8; 0x0041d9bf lea rdi, [r10 + r11*8] | rdi = r10 + r11*8; 0x0041d9c3 cmp r11, 4 | | if (r11 >= 4) { 0x0041d9c7 jb 0x41d9e3 | 0x0041d9c9 lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041d9cd lea rbx, [r8 + rbx*8] | rbx = r8 + rbx*8; 0x0041d9d1 cmp rax, rbx | | if (rax >= rbx) { 0x0041d9d4 jae 0x41e305 | goto label_28; | } 0x0041d9da cmp r10, rcx | | if (r10 >= rcx) { 0x0041d9dd jae 0x41e305 | goto label_28; | } | } 0x0041d9e3 xor r10d, r10d | r10d = 0; | label_4: 0x0041d9e6 mov edx, r11d | edx = r11d; 0x0041d9e9 sub edx, r10d | edx -= r10d; 0x0041d9ec mov rax, r10 | rax = r10; 0x0041d9ef not rax | rax = ~rax; 0x0041d9f2 add rax, r11 | rax += r11; 0x0041d9f5 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041d9f9 je 0x41da1a | goto label_29; | } 0x0041d9fb neg rdx | rdx = -rdx; 0x0041d9fe xor esi, esi | esi = 0; | do { 0x0041da00 movzx ebx, byte [rdi - 8] | ebx = *((rdi - 8)); 0x0041da04 add rdi, 0xfffffffffffffff8 | rdi += 0xfffffffffffffff8; 0x0041da08 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041da0c dec rsi | rsi--; 0x0041da0f cmp rdx, rsi | 0x0041da12 jne 0x41da00 | | } while (rdx != rsi); 0x0041da14 sub r10, rsi | r10 -= rsi; 0x0041da17 add rcx, rsi | rcx += rsi; | label_29: 0x0041da1a cmp rax, 7 | | if (rax < 7) { 0x0041da1e jb 0x41ea9c | goto label_11; | } 0x0041da24 sub r10, r11 | r10 -= r11; 0x0041da27 xor eax, eax | eax = 0; 0x0041da29 nop dword [rax] | | do { 0x0041da30 movzx edx, byte [rdi + rax*8 - 8] | edx = *((rdi + rax*8 - 8)); 0x0041da35 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041da39 movzx edx, byte [rdi + rax*8 - 0x10] | edx = *((rdi + rax*8 - 0x10)); 0x0041da3e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041da42 movzx edx, byte [rdi + rax*8 - 0x18] | edx = *((rdi + rax*8 - 0x18)); 0x0041da47 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041da4b movzx edx, byte [rdi + rax*8 - 0x20] | edx = *((rdi + rax*8 - 0x20)); 0x0041da50 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041da54 movzx edx, byte [rdi + rax*8 - 0x28] | edx = *((rdi + rax*8 - 0x28)); 0x0041da59 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041da5d movzx edx, byte [rdi + rax*8 - 0x30] | edx = *((rdi + rax*8 - 0x30)); 0x0041da62 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041da66 movzx edx, byte [rdi + rax*8 - 0x38] | edx = *((rdi + rax*8 - 0x38)); 0x0041da6b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041da6f movzx edx, byte [rdi + rax*8 - 0x40] | edx = *((rdi + rax*8 - 0x40)); 0x0041da74 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041da78 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041da7c cmp r10, rax | 0x0041da7f jne 0x41da30 | | } while (r10 != rax); 0x0041da81 jmp 0x41ea9c | goto label_11; | label_13: 0x0041da86 test r11, r11 | | if (r11 == 0) { 0x0041da89 je 0x41ea9c | goto label_11; | } 0x0041da8f lea rcx, [rax + r11] | rcx = rax + r11; 0x0041da93 lea r10, [r8 + r9*4] | r10 = r8 + r9*4; 0x0041da97 lea rdi, [r10 + r11*4] | rdi = r10 + r11*4; 0x0041da9b cmp r11, 8 | | if (r11 >= 8) { 0x0041da9f jb 0x41dabb | 0x0041daa1 lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041daa5 lea rbx, [r8 + rbx*4] | rbx = r8 + rbx*4; 0x0041daa9 cmp rax, rbx | | if (rax >= rbx) { 0x0041daac jae 0x41e3a8 | goto label_30; | } 0x0041dab2 cmp r10, rcx | | if (r10 >= rcx) { 0x0041dab5 jae 0x41e3a8 | goto label_30; | } | } 0x0041dabb xor r10d, r10d | r10d = 0; | label_5: 0x0041dabe mov rax, r10 | rax = r10; 0x0041dac1 not rax | rax = ~rax; 0x0041dac4 add rax, r11 | rax += r11; 0x0041dac7 mov rdx, r11 | rdx = r11; 0x0041daca and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041dace je 0x41dafa | goto label_31; | } 0x0041dad0 neg rdx | rdx = -rdx; 0x0041dad3 xor esi, esi | esi = 0; 0x0041dad5 nop word cs:[rax + rax] | 0x0041dadf nop | | do { 0x0041dae0 movzx ebx, byte [rdi - 4] | ebx = *((rdi - 4)); 0x0041dae4 add rdi, 0xfffffffffffffffc | rdi += 0xfffffffffffffffc; 0x0041dae8 mov byte [rcx + rsi - 1], bl | *((rcx + rsi - 1)) = bl; 0x0041daec dec rsi | rsi--; 0x0041daef cmp rdx, rsi | 0x0041daf2 jne 0x41dae0 | | } while (rdx != rsi); 0x0041daf4 sub r10, rsi | r10 -= rsi; 0x0041daf7 add rcx, rsi | rcx += rsi; | label_31: 0x0041dafa cmp rax, 7 | | if (rax < 7) { 0x0041dafe jb 0x41ea9c | goto label_11; | } 0x0041db04 sub r10, r11 | r10 -= r11; 0x0041db07 xor eax, eax | eax = 0; 0x0041db09 nop dword [rax] | | do { 0x0041db10 movzx edx, byte [rdi + rax*4 - 4] | edx = *((rdi + rax*4 - 4)); 0x0041db15 mov byte [rcx + rax - 1], dl | *((rcx + rax - 1)) = dl; 0x0041db19 movzx edx, byte [rdi + rax*4 - 8] | edx = *((rdi + rax*4 - 8)); 0x0041db1e mov byte [rcx + rax - 2], dl | *((rcx + rax - 2)) = dl; 0x0041db22 movzx edx, byte [rdi + rax*4 - 0xc] | edx = *((rdi + rax*4 - 0xc)); 0x0041db27 mov byte [rcx + rax - 3], dl | *((rcx + rax - 3)) = dl; 0x0041db2b movzx edx, byte [rdi + rax*4 - 0x10] | edx = *((rdi + rax*4 - 0x10)); 0x0041db30 mov byte [rcx + rax - 4], dl | *((rcx + rax - 4)) = dl; 0x0041db34 movzx edx, byte [rdi + rax*4 - 0x14] | edx = *((rdi + rax*4 - 0x14)); 0x0041db39 mov byte [rcx + rax - 5], dl | *((rcx + rax - 5)) = dl; 0x0041db3d movzx edx, byte [rdi + rax*4 - 0x18] | edx = *((rdi + rax*4 - 0x18)); 0x0041db42 mov byte [rcx + rax - 6], dl | *((rcx + rax - 6)) = dl; 0x0041db46 movzx edx, byte [rdi + rax*4 - 0x1c] | edx = *((rdi + rax*4 - 0x1c)); 0x0041db4b mov byte [rcx + rax - 7], dl | *((rcx + rax - 7)) = dl; 0x0041db4f movzx edx, byte [rdi + rax*4 - 0x20] | edx = *((rdi + rax*4 - 0x20)); 0x0041db54 mov byte [rcx + rax - 8], dl | *((rcx + rax - 8)) = dl; 0x0041db58 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041db5c cmp r10, rax | 0x0041db5f jne 0x41db10 | | } while (r10 != rax); 0x0041db61 jmp 0x41ea9c | goto label_11; | label_16: 0x0041db66 test r11, r11 | | if (r11 == 0) { 0x0041db69 je 0x41ea9c | goto label_11; | } 0x0041db6f lea rcx, [r11 - 1] | rcx = r11 - 1; 0x0041db73 mov eax, r11d | eax = r11d; 0x0041db76 and eax, 7 | eax &= 7; 0x0041db79 cmp rcx, 7 | | if (rcx >= 7) { 0x0041db7d jae 0x41df5e | goto label_32; | } 0x0041db83 lea rsi, [r10 + r11*2] | rsi = r10 + r11*2; 0x0041db87 lea rcx, [r8 + r9*8] | rcx = r8 + r9*8; 0x0041db8b lea r8, [rcx + r11*8] | r8 = rcx + r11*8; 0x0041db8f jmp 0x41dfec | goto label_33; | label_17: 0x0041db94 test r11, r11 | | if (r11 == 0) { 0x0041db97 je 0x41ea9c | goto label_11; | } 0x0041db9d lea rcx, [r10 + r11*2] | rcx = r10 + r11*2; 0x0041dba1 lea rax, [r8 + r9*4] | rax = r8 + r9*4; 0x0041dba5 lea rdi, [rax + r11*4] | rdi = rax + r11*4; 0x0041dba9 cmp r11, 8 | | if (r11 >= 8) { 0x0041dbad jb 0x41dbd1 | 0x0041dbaf lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041dbb3 lea rbx, [r8 + rbx*4] | rbx = r8 + rbx*4; 0x0041dbb7 cmp r10, rbx | | if (r10 >= rbx) { 0x0041dbba jae 0x41e443 | goto label_34; | } 0x0041dbc0 lea rbx, [r11 + rdx] | rbx = r11 + rdx; 0x0041dbc4 lea rbx, [rsi + rbx*2] | rbx = rsi + rbx*2; 0x0041dbc8 cmp rax, rbx | | if (rax >= rbx) { 0x0041dbcb jae 0x41e443 | goto label_34; | } | } 0x0041dbd1 xor r10d, r10d | r10d = 0; | label_6: 0x0041dbd4 mov rax, r10 | rax = r10; 0x0041dbd7 not rax | rax = ~rax; 0x0041dbda add rax, r11 | rax += r11; 0x0041dbdd mov rdx, r11 | rdx = r11; 0x0041dbe0 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041dbe4 je 0x41dc0b | goto label_35; | } 0x0041dbe6 neg rdx | rdx = -rdx; 0x0041dbe9 xor esi, esi | esi = 0; 0x0041dbeb nop dword [rax + rax] | | do { 0x0041dbf0 movzx ebx, word [rdi - 4] | ebx = *((rdi - 4)); 0x0041dbf4 add rdi, 0xfffffffffffffffc | rdi += 0xfffffffffffffffc; 0x0041dbf8 mov word [rcx - 2], bx | *((rcx - 2)) = bx; 0x0041dbfc add rcx, 0xfffffffffffffffe | rcx += 0xfffffffffffffffe; 0x0041dc00 dec rsi | rsi--; 0x0041dc03 cmp rdx, rsi | 0x0041dc06 jne 0x41dbf0 | | } while (rdx != rsi); 0x0041dc08 sub r10, rsi | r10 -= rsi; | label_35: 0x0041dc0b cmp rax, 7 | | if (rax < 7) { 0x0041dc0f jb 0x41ea9c | goto label_11; | } 0x0041dc15 sub r10, r11 | r10 -= r11; 0x0041dc18 xor eax, eax | eax = 0; 0x0041dc1a nop word [rax + rax] | | do { 0x0041dc20 movzx edx, word [rdi + rax*4 - 4] | edx = *((rdi + rax*4 - 4)); 0x0041dc25 mov word [rcx + rax*2 - 2], dx | *((rcx + rax*2 - 2)) = dx; 0x0041dc2a movzx edx, word [rdi + rax*4 - 8] | edx = *((rdi + rax*4 - 8)); 0x0041dc2f mov word [rcx + rax*2 - 4], dx | *((rcx + rax*2 - 4)) = dx; 0x0041dc34 movzx edx, word [rdi + rax*4 - 0xc] | edx = *((rdi + rax*4 - 0xc)); 0x0041dc39 mov word [rcx + rax*2 - 6], dx | *((rcx + rax*2 - 6)) = dx; 0x0041dc3e movzx edx, word [rdi + rax*4 - 0x10] | edx = *((rdi + rax*4 - 0x10)); 0x0041dc43 mov word [rcx + rax*2 - 8], dx | *((rcx + rax*2 - 8)) = dx; 0x0041dc48 movzx edx, word [rdi + rax*4 - 0x14] | edx = *((rdi + rax*4 - 0x14)); 0x0041dc4d mov word [rcx + rax*2 - 0xa], dx | *((rcx + rax*2 - 0xa)) = dx; 0x0041dc52 movzx edx, word [rdi + rax*4 - 0x18] | edx = *((rdi + rax*4 - 0x18)); 0x0041dc57 mov word [rcx + rax*2 - 0xc], dx | *((rcx + rax*2 - 0xc)) = dx; 0x0041dc5c movzx edx, word [rdi + rax*4 - 0x1c] | edx = *((rdi + rax*4 - 0x1c)); 0x0041dc61 mov word [rcx + rax*2 - 0xe], dx | *((rcx + rax*2 - 0xe)) = dx; 0x0041dc66 movzx edx, word [rdi + rax*4 - 0x20] | edx = *((rdi + rax*4 - 0x20)); 0x0041dc6b mov word [rcx + rax*2 - 0x10], dx | *((rcx + rax*2 - 0x10)) = dx; 0x0041dc70 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041dc74 cmp r10, rax | 0x0041dc77 jne 0x41dc20 | | } while (r10 != rax); 0x0041dc79 jmp 0x41ea9c | goto label_11; | label_20: 0x0041dc7e test r11, r11 | | if (r11 == 0) { 0x0041dc81 je 0x41ea9c | goto label_11; | } 0x0041dc87 lea rcx, [rax + r11*4] | rcx = rax + r11*4; 0x0041dc8b lea rdi, [r8 + r9*8] | rdi = r8 + r9*8; 0x0041dc8f lea r10, [rdi + r11*8] | r10 = rdi + r11*8; 0x0041dc93 cmp r11, 4 | | if (r11 >= 4) { 0x0041dc97 jb 0x41dcbb | 0x0041dc99 lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041dc9d lea rbx, [r8 + rbx*8] | rbx = r8 + rbx*8; 0x0041dca1 cmp rax, rbx | | if (rax >= rbx) { 0x0041dca4 jae 0x41e4df | goto label_36; | } 0x0041dcaa lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041dcae lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041dcb2 cmp rdi, rax | | if (rdi >= rax) { 0x0041dcb5 jae 0x41e4df | goto label_36; | } | } 0x0041dcbb xor edi, edi | edi = 0; | label_7: 0x0041dcbd mov esi, r11d | esi = r11d; 0x0041dcc0 sub esi, edi | esi -= edi; 0x0041dcc2 mov r8, rdi | r8 = rdi; 0x0041dcc5 not r8 | r8 = ~r8; 0x0041dcc8 add r8, r11 | r8 += r11; 0x0041dccb and rsi, 7 | rsi &= 7; | if (rsi == 0) { 0x0041dccf je 0x41e018 | goto label_37; | } 0x0041dcd5 shl rsi, 2 | rsi <<= 2; 0x0041dcd9 xor ebx, ebx | ebx = 0; 0x0041dcdb mov rax, r10 | rax = r10; 0x0041dcde nop | | do { 0x0041dce0 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041dce4 mov edx, dword [r10 + rbx*2 - 8] | edx = *((r10 + rbx*2 - 8)); 0x0041dce9 mov dword [rcx + rbx - 4], edx | *((rcx + rbx - 4)) = edx; 0x0041dced inc rdi | rdi++; 0x0041dcf0 add rbx, 0xfffffffffffffffc | rbx += 0xfffffffffffffffc; 0x0041dcf4 mov rdx, rsi | rdx = rsi; 0x0041dcf7 add rdx, rbx | rdx += rbx; 0x0041dcfa jne 0x41dce0 | | } while (rdx != 0); 0x0041dcfc add rcx, rbx | rcx += rbx; 0x0041dcff jmp 0x41e01b | goto label_38; | label_21: 0x0041dd04 test r11, r11 | | if (r11 == 0) { 0x0041dd07 je 0x41ea9c | goto label_11; | } 0x0041dd0d lea rcx, [rax + r11*4] | rcx = rax + r11*4; 0x0041dd11 lea r10, [r8 + r9*2] | r10 = r8 + r9*2; 0x0041dd15 lea rdi, [r10 + r11*2] | rdi = r10 + r11*2; 0x0041dd19 cmp r11, 8 | | if (r11 >= 8) { 0x0041dd1d jb 0x41dd41 | 0x0041dd1f lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041dd23 lea rbx, [r8 + rbx*2] | rbx = r8 + rbx*2; 0x0041dd27 cmp rax, rbx | | if (rax >= rbx) { 0x0041dd2a jae 0x41e574 | goto label_39; | } 0x0041dd30 lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041dd34 lea rax, [rsi + rax*4] | rax = rsi + rax*4; 0x0041dd38 cmp r10, rax | | if (r10 >= rax) { 0x0041dd3b jae 0x41e574 | goto label_39; | } | } 0x0041dd41 xor r10d, r10d | r10d = 0; | label_8: 0x0041dd44 mov rax, r10 | rax = r10; 0x0041dd47 not rax | rax = ~rax; 0x0041dd4a add rax, r11 | rax += r11; 0x0041dd4d mov rdx, r11 | rdx = r11; 0x0041dd50 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041dd54 je 0x41dd7a | goto label_40; | } 0x0041dd56 neg rdx | rdx = -rdx; 0x0041dd59 xor esi, esi | esi = 0; 0x0041dd5b nop dword [rax + rax] | | do { 0x0041dd60 movzx ebx, word [rdi - 2] | ebx = *((rdi - 2)); 0x0041dd64 add rdi, 0xfffffffffffffffe | rdi += 0xfffffffffffffffe; 0x0041dd68 mov dword [rcx - 4], ebx | *((rcx - 4)) = ebx; 0x0041dd6b add rcx, 0xfffffffffffffffc | rcx += 0xfffffffffffffffc; 0x0041dd6f dec rsi | rsi--; 0x0041dd72 cmp rdx, rsi | 0x0041dd75 jne 0x41dd60 | | } while (rdx != rsi); 0x0041dd77 sub r10, rsi | r10 -= rsi; | label_40: 0x0041dd7a cmp rax, 7 | | if (rax < 7) { 0x0041dd7e jb 0x41ea9c | goto label_11; | } 0x0041dd84 sub r10, r11 | r10 -= r11; 0x0041dd87 xor eax, eax | eax = 0; 0x0041dd89 nop dword [rax] | | do { 0x0041dd90 movzx edx, word [rdi + rax*2 - 2] | edx = *((rdi + rax*2 - 2)); 0x0041dd95 mov dword [rcx + rax*4 - 4], edx | *((rcx + rax*4 - 4)) = edx; 0x0041dd99 movzx edx, word [rdi + rax*2 - 4] | edx = *((rdi + rax*2 - 4)); 0x0041dd9e mov dword [rcx + rax*4 - 8], edx | *((rcx + rax*4 - 8)) = edx; 0x0041dda2 movzx edx, word [rdi + rax*2 - 6] | edx = *((rdi + rax*2 - 6)); 0x0041dda7 mov dword [rcx + rax*4 - 0xc], edx | *((rcx + rax*4 - 0xc)) = edx; 0x0041ddab movzx edx, word [rdi + rax*2 - 8] | edx = *((rdi + rax*2 - 8)); 0x0041ddb0 mov dword [rcx + rax*4 - 0x10], edx | *((rcx + rax*4 - 0x10)) = edx; 0x0041ddb4 movzx edx, word [rdi + rax*2 - 0xa] | edx = *((rdi + rax*2 - 0xa)); 0x0041ddb9 mov dword [rcx + rax*4 - 0x14], edx | *((rcx + rax*4 - 0x14)) = edx; 0x0041ddbd movzx edx, word [rdi + rax*2 - 0xc] | edx = *((rdi + rax*2 - 0xc)); 0x0041ddc2 mov dword [rcx + rax*4 - 0x18], edx | *((rcx + rax*4 - 0x18)) = edx; 0x0041ddc6 movzx edx, word [rdi + rax*2 - 0xe] | edx = *((rdi + rax*2 - 0xe)); 0x0041ddcb mov dword [rcx + rax*4 - 0x1c], edx | *((rcx + rax*4 - 0x1c)) = edx; 0x0041ddcf movzx edx, word [rdi + rax*2 - 0x10] | edx = *((rdi + rax*2 - 0x10)); 0x0041ddd4 mov dword [rcx + rax*4 - 0x20], edx | *((rcx + rax*4 - 0x20)) = edx; 0x0041ddd8 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041dddc cmp r10, rax | 0x0041dddf jne 0x41dd90 | | } while (r10 != rax); 0x0041dde1 jmp 0x41ea9c | goto label_11; | label_24: 0x0041dde6 test r11, r11 | | if (r11 == 0) { 0x0041dde9 je 0x41ea9c | goto label_11; | } 0x0041ddef lea r14, [rax + r11*8] | r14 = rax + r11*8; 0x0041ddf3 lea rdi, [r8 + r9*4] | rdi = r8 + r9*4; 0x0041ddf7 lea rcx, [rdi + r11*4] | rcx = rdi + r11*4; 0x0041ddfb cmp r11, 4 | | if (r11 >= 4) { 0x0041ddff jb 0x41de23 | 0x0041de01 lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041de05 lea rbx, [r8 + rbx*4] | rbx = r8 + rbx*4; 0x0041de09 cmp rax, rbx | | if (rax >= rbx) { 0x0041de0c jae 0x41e5fb | goto label_41; | } 0x0041de12 lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041de16 lea rax, [rsi + rax*8] | rax = rsi + rax*8; 0x0041de1a cmp rdi, rax | | if (rdi >= rax) { 0x0041de1d jae 0x41e5fb | goto label_41; | } | } 0x0041de23 xor edi, edi | edi = 0; | label_9: 0x0041de25 mov r9d, r11d | r9d = r11d; 0x0041de28 sub r9d, edi | r9d -= edi; 0x0041de2b mov r8, rdi | r8 = rdi; 0x0041de2e not r8 | r8 = ~r8; 0x0041de31 add r8, r11 | r8 += r11; 0x0041de34 and r9, 7 | r9 &= 7; | if (r9 == 0) { 0x0041de38 je 0x41e07e | goto label_42; | } 0x0041de3e shl r9, 2 | r9 <<= 2; 0x0041de42 xor esi, esi | esi = 0; 0x0041de44 mov rdx, r14 | rdx = r14; 0x0041de47 nop word [rax + rax] | | do { 0x0041de50 mov ebx, dword [rcx + rsi - 4] | ebx = *((rcx + rsi - 4)); 0x0041de54 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041de58 mov qword [r14 + rsi*2 - 8], rbx | *((r14 + rsi*2 - 8)) = rbx; 0x0041de5d inc rdi | rdi++; 0x0041de60 add rsi, 0xfffffffffffffffc | rsi += 0xfffffffffffffffc; 0x0041de64 mov rax, r9 | rax = r9; 0x0041de67 add rax, rsi | rax += rsi; 0x0041de6a jne 0x41de50 | | } while (rax != 0); 0x0041de6c add rcx, rsi | rcx += rsi; 0x0041de6f jmp 0x41e081 | goto label_43; | label_25: 0x0041de74 test r11, r11 | | if (r11 == 0) { 0x0041de77 je 0x41ea9c | goto label_11; | } 0x0041de7d lea rcx, [rax + r11*8] | rcx = rax + r11*8; 0x0041de81 lea r10, [r8 + r9*2] | r10 = r8 + r9*2; 0x0041de85 lea rdi, [r10 + r11*2] | rdi = r10 + r11*2; 0x0041de89 cmp r11, 4 | | if (r11 >= 4) { 0x0041de8d jb 0x41deb1 | 0x0041de8f lea rbx, [r11 + r9] | rbx = r11 + r9; 0x0041de93 lea rbx, [r8 + rbx*2] | rbx = r8 + rbx*2; 0x0041de97 cmp rax, rbx | | if (rax >= rbx) { 0x0041de9a jae 0x41e683 | goto label_44; | } 0x0041dea0 lea rax, [r11 + rdx] | rax = r11 + rdx; 0x0041dea4 lea rax, [rsi + rax*8] | rax = rsi + rax*8; 0x0041dea8 cmp r10, rax | | if (r10 >= rax) { 0x0041deab jae 0x41e683 | goto label_44; | } | } 0x0041deb1 xor r10d, r10d | r10d = 0; | label_10: 0x0041deb4 mov edx, r11d | edx = r11d; 0x0041deb7 sub edx, r10d | edx -= r10d; 0x0041deba mov rax, r10 | rax = r10; 0x0041debd not rax | rax = ~rax; 0x0041dec0 add rax, r11 | rax += r11; 0x0041dec3 and rdx, 7 | rdx &= 7; | if (rdx == 0) { 0x0041dec7 je 0x41deeb | goto label_45; | } 0x0041dec9 neg rdx | rdx = -rdx; 0x0041decc xor esi, esi | esi = 0; 0x0041dece nop | | do { 0x0041ded0 movzx ebx, word [rdi - 2] | ebx = *((rdi - 2)); 0x0041ded4 add rdi, 0xfffffffffffffffe | rdi += 0xfffffffffffffffe; 0x0041ded8 mov qword [rcx - 8], rbx | *((rcx - 8)) = rbx; 0x0041dedc add rcx, 0xfffffffffffffff8 | rcx += 0xfffffffffffffff8; 0x0041dee0 dec rsi | rsi--; 0x0041dee3 cmp rdx, rsi | 0x0041dee6 jne 0x41ded0 | | } while (rdx != rsi); 0x0041dee8 sub r10, rsi | r10 -= rsi; | label_45: 0x0041deeb cmp rax, 7 | | if (rax < 7) { 0x0041deef jb 0x41ea9c | goto label_11; | } 0x0041def5 sub r10, r11 | r10 -= r11; 0x0041def8 xor eax, eax | eax = 0; 0x0041defa nop word [rax + rax] | | do { 0x0041df00 movzx edx, word [rdi + rax*2 - 2] | edx = *((rdi + rax*2 - 2)); 0x0041df05 mov qword [rcx + rax*8 - 8], rdx | *((rcx + rax*8 - 8)) = rdx; 0x0041df0a movzx edx, word [rdi + rax*2 - 4] | edx = *((rdi + rax*2 - 4)); 0x0041df0f mov qword [rcx + rax*8 - 0x10], rdx | *((rcx + rax*8 - 0x10)) = rdx; 0x0041df14 movzx edx, word [rdi + rax*2 - 6] | edx = *((rdi + rax*2 - 6)); 0x0041df19 mov qword [rcx + rax*8 - 0x18], rdx | *((rcx + rax*8 - 0x18)) = rdx; 0x0041df1e movzx edx, word [rdi + rax*2 - 8] | edx = *((rdi + rax*2 - 8)); 0x0041df23 mov qword [rcx + rax*8 - 0x20], rdx | *((rcx + rax*8 - 0x20)) = rdx; 0x0041df28 movzx edx, word [rdi + rax*2 - 0xa] | edx = *((rdi + rax*2 - 0xa)); 0x0041df2d mov qword [rcx + rax*8 - 0x28], rdx | *((rcx + rax*8 - 0x28)) = rdx; 0x0041df32 movzx edx, word [rdi + rax*2 - 0xc] | edx = *((rdi + rax*2 - 0xc)); 0x0041df37 mov qword [rcx + rax*8 - 0x30], rdx | *((rcx + rax*8 - 0x30)) = rdx; 0x0041df3c movzx edx, word [rdi + rax*2 - 0xe] | edx = *((rdi + rax*2 - 0xe)); 0x0041df41 mov qword [rcx + rax*8 - 0x38], rdx | *((rcx + rax*8 - 0x38)) = rdx; 0x0041df46 movzx edx, word [rdi + rax*2 - 0x10] | edx = *((rdi + rax*2 - 0x10)); 0x0041df4b mov qword [rcx + rax*8 - 0x40], rdx | *((rcx + rax*8 - 0x40)) = rdx; 0x0041df50 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041df54 cmp r10, rax | 0x0041df57 jne 0x41df00 | | } while (r10 != rax); 0x0041df59 jmp 0x41ea9c | goto label_11; | label_32: 0x0041df5e shl r9, 3 | r9 <<= 3; 0x0041df62 lea rcx, [r9 + r11*8] | rcx = r9 + r11*8; 0x0041df66 add r8, rcx | r8 += rcx; 0x0041df69 add rdx, rdx | rdx += rdx; 0x0041df6c lea rcx, [rdx + r11*2] | rcx = rdx + r11*2; 0x0041df70 add rsi, rcx | rsi += rcx; 0x0041df73 and r11, 0xfffffffffffffff8 | r11 &= 0xfffffffffffffff8; 0x0041df77 neg r11 | r11 = -r11; 0x0041df7a xor ecx, ecx | ecx = 0; 0x0041df7c xor edx, edx | edx = 0; 0x0041df7e nop | | do { 0x0041df80 movzx edi, word [r8 + rcx*4 - 8] | edi = *((r8 + rcx*4 - 8)); 0x0041df86 mov word [rsi + rcx - 2], di | *((rsi + rcx - 2)) = di; 0x0041df8b movzx edi, word [r8 + rcx*4 - 0x10] | edi = *((r8 + rcx*4 - 0x10)); 0x0041df91 mov word [rsi + rcx - 4], di | *((rsi + rcx - 4)) = di; 0x0041df96 movzx edi, word [r8 + rcx*4 - 0x18] | edi = *((r8 + rcx*4 - 0x18)); 0x0041df9c mov word [rsi + rcx - 6], di | *((rsi + rcx - 6)) = di; 0x0041dfa1 movzx edi, word [r8 + rcx*4 - 0x20] | edi = *((r8 + rcx*4 - 0x20)); 0x0041dfa7 mov word [rsi + rcx - 8], di | *((rsi + rcx - 8)) = di; 0x0041dfac movzx edi, word [r8 + rcx*4 - 0x28] | edi = *((r8 + rcx*4 - 0x28)); 0x0041dfb2 mov word [rsi + rcx - 0xa], di | *((rsi + rcx - 0xa)) = di; 0x0041dfb7 movzx edi, word [r8 + rcx*4 - 0x30] | edi = *((r8 + rcx*4 - 0x30)); 0x0041dfbd mov word [rsi + rcx - 0xc], di | *((rsi + rcx - 0xc)) = di; 0x0041dfc2 movzx edi, word [r8 + rcx*4 - 0x38] | edi = *((r8 + rcx*4 - 0x38)); 0x0041dfc8 mov word [rsi + rcx - 0xe], di | *((rsi + rcx - 0xe)) = di; 0x0041dfcd movzx edi, word [r8 + rcx*4 - 0x40] | edi = *((r8 + rcx*4 - 0x40)); 0x0041dfd3 mov word [rsi + rcx - 0x10], di | *((rsi + rcx - 0x10)) = di; 0x0041dfd8 add rdx, 0x40 | rdx += 0x40; 0x0041dfdc add rcx, 0xfffffffffffffff0 | rcx += 0xfffffffffffffff0; 0x0041dfe0 add r11, 8 | r11 += 8; 0x0041dfe4 jne 0x41df80 | | } while (r11 != 0); 0x0041dfe6 sub r8, rdx | r8 -= rdx; 0x0041dfe9 add rsi, rcx | rsi += rcx; | label_33: 0x0041dfec test rax, rax | | if (rax == 0) { 0x0041dfef je 0x41ea9c | goto label_11; | } 0x0041dff5 neg rax | rax = -rax; 0x0041dff8 xor ecx, ecx | ecx = 0; 0x0041dffa nop word [rax + rax] | | do { 0x0041e000 movzx edx, word [r8 + rcx*8 - 8] | edx = *((r8 + rcx*8 - 8)); 0x0041e006 mov word [rsi + rcx*2 - 2], dx | *((rsi + rcx*2 - 2)) = dx; 0x0041e00b dec rcx | rcx--; 0x0041e00e cmp rax, rcx | 0x0041e011 jne 0x41e000 | | } while (rax != rcx); 0x0041e013 jmp 0x41ea9c | goto label_11; | label_37: 0x0041e018 mov rax, r10 | rax = r10; | label_38: 0x0041e01b cmp r8, 7 | | if (r8 < 7) { 0x0041e01f jb 0x41ea9c | goto label_11; | } 0x0041e025 sub rdi, r11 | rdi -= r11; 0x0041e028 xor edx, edx | edx = 0; 0x0041e02a nop word [rax + rax] | | do { 0x0041e030 mov esi, dword [rax + rdx*8 - 8] | esi = *((rax + rdx*8 - 8)); 0x0041e034 mov dword [rcx + rdx*4 - 4], esi | *((rcx + rdx*4 - 4)) = esi; 0x0041e038 mov esi, dword [rax + rdx*8 - 0x10] | esi = *((rax + rdx*8 - 0x10)); 0x0041e03c mov dword [rcx + rdx*4 - 8], esi | *((rcx + rdx*4 - 8)) = esi; 0x0041e040 mov esi, dword [rax + rdx*8 - 0x18] | esi = *((rax + rdx*8 - 0x18)); 0x0041e044 mov dword [rcx + rdx*4 - 0xc], esi | *((rcx + rdx*4 - 0xc)) = esi; 0x0041e048 mov esi, dword [rax + rdx*8 - 0x20] | esi = *((rax + rdx*8 - 0x20)); 0x0041e04c mov dword [rcx + rdx*4 - 0x10], esi | *((rcx + rdx*4 - 0x10)) = esi; 0x0041e050 mov esi, dword [rax + rdx*8 - 0x28] | esi = *((rax + rdx*8 - 0x28)); 0x0041e054 mov dword [rcx + rdx*4 - 0x14], esi | *((rcx + rdx*4 - 0x14)) = esi; 0x0041e058 mov esi, dword [rax + rdx*8 - 0x30] | esi = *((rax + rdx*8 - 0x30)); 0x0041e05c mov dword [rcx + rdx*4 - 0x18], esi | *((rcx + rdx*4 - 0x18)) = esi; 0x0041e060 mov esi, dword [rax + rdx*8 - 0x38] | esi = *((rax + rdx*8 - 0x38)); 0x0041e064 mov dword [rcx + rdx*4 - 0x1c], esi | *((rcx + rdx*4 - 0x1c)) = esi; 0x0041e068 mov esi, dword [rax + rdx*8 - 0x40] | esi = *((rax + rdx*8 - 0x40)); 0x0041e06c mov dword [rcx + rdx*4 - 0x20], esi | *((rcx + rdx*4 - 0x20)) = esi; 0x0041e070 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041e074 cmp rdi, rdx | 0x0041e077 jne 0x41e030 | | } while (rdi != rdx); 0x0041e079 jmp 0x41ea9c | goto label_11; | label_42: 0x0041e07e mov rdx, r14 | rdx = r14; | label_43: 0x0041e081 cmp r8, 7 | | if (r8 < 7) { 0x0041e085 jb 0x41ea9c | goto label_11; | } 0x0041e08b sub rdi, r11 | rdi -= r11; 0x0041e08e xor eax, eax | eax = 0; | do { 0x0041e090 mov esi, dword [rcx + rax*4 - 4] | esi = *((rcx + rax*4 - 4)); 0x0041e094 mov qword [rdx + rax*8 - 8], rsi | *((rdx + rax*8 - 8)) = rsi; 0x0041e099 mov esi, dword [rcx + rax*4 - 8] | esi = *((rcx + rax*4 - 8)); 0x0041e09d mov qword [rdx + rax*8 - 0x10], rsi | *((rdx + rax*8 - 0x10)) = rsi; 0x0041e0a2 mov esi, dword [rcx + rax*4 - 0xc] | esi = *((rcx + rax*4 - 0xc)); 0x0041e0a6 mov qword [rdx + rax*8 - 0x18], rsi | *((rdx + rax*8 - 0x18)) = rsi; 0x0041e0ab mov esi, dword [rcx + rax*4 - 0x10] | esi = *((rcx + rax*4 - 0x10)); 0x0041e0af mov qword [rdx + rax*8 - 0x20], rsi | *((rdx + rax*8 - 0x20)) = rsi; 0x0041e0b4 mov esi, dword [rcx + rax*4 - 0x14] | esi = *((rcx + rax*4 - 0x14)); 0x0041e0b8 mov qword [rdx + rax*8 - 0x28], rsi | *((rdx + rax*8 - 0x28)) = rsi; 0x0041e0bd mov esi, dword [rcx + rax*4 - 0x18] | esi = *((rcx + rax*4 - 0x18)); 0x0041e0c1 mov qword [rdx + rax*8 - 0x30], rsi | *((rdx + rax*8 - 0x30)) = rsi; 0x0041e0c6 mov esi, dword [rcx + rax*4 - 0x1c] | esi = *((rcx + rax*4 - 0x1c)); 0x0041e0ca mov qword [rdx + rax*8 - 0x38], rsi | *((rdx + rax*8 - 0x38)) = rsi; 0x0041e0cf mov esi, dword [rcx + rax*4 - 0x20] | esi = *((rcx + rax*4 - 0x20)); 0x0041e0d3 mov qword [rdx + rax*8 - 0x40], rsi | *((rdx + rax*8 - 0x40)) = rsi; 0x0041e0d8 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041e0dc cmp rdi, rax | 0x0041e0df jne 0x41e090 | | } while (rdi != rax); 0x0041e0e1 jmp 0x41ea9c | goto label_11; | label_14: 0x0041e0e6 mov r10, r11 | r10 = r11; 0x0041e0e9 and r10, 0xfffffffffffffff0 | r10 &= 0xfffffffffffffff0; 0x0041e0ed lea rax, [r10 - 0x10] | rax = r10 - 0x10; 0x0041e0f1 mov r14, rax | r14 = rax; 0x0041e0f4 shr r14, 4 | r14 >>= 4; 0x0041e0f8 inc r14 | r14++; 0x0041e0fb test rax, rax | | if (rax == 0) { 0x0041e0fe je 0x41e70a | goto label_46; | } 0x0041e104 add rdx, r11 | rdx += r11; 0x0041e107 lea rsi, [rsi + rdx - 8] | rsi = rsi + rdx - 8; 0x0041e10c add r9, r9 | r9 += r9; 0x0041e10f lea rax, [r9 + r11*2] | rax = r9 + r11*2; 0x0041e113 lea rbx, [r8 + rax - 0x10] | rbx = r8 + rax - 0x10; 0x0041e118 mov rax, r14 | rax = r14; 0x0041e11b and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e11f neg rax | rax = -rax; 0x0041e122 xor edx, edx | edx = 0; 0x0041e124 movdqa xmm0, xmmword [rip + 0x42174] | __asm ("movdqa xmm0, xmmword [0x004602a0]"); | do { 0x0041e12c movdqu xmm1, xmmword [rbx + rdx*2 - 0x10] | __asm ("movdqu xmm1, xmmword [rbx + rdx*2 - 0x10]"); 0x0041e132 movdqu xmm2, xmmword [rbx + rdx*2] | __asm ("movdqu xmm2, xmmword [rbx + rdx*2]"); 0x0041e137 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e13c pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e141 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041e145 movdqu xmmword [rsi + rdx - 8], xmm1 | __asm ("movdqu xmmword [rsi + rdx - 8], xmm1"); 0x0041e14b movdqu xmm1, xmmword [rbx + rdx*2 - 0x30] | __asm ("movdqu xmm1, xmmword [rbx + rdx*2 - 0x30]"); 0x0041e151 movdqu xmm2, xmmword [rbx + rdx*2 - 0x20] | __asm ("movdqu xmm2, xmmword [rbx + rdx*2 - 0x20]"); 0x0041e157 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e15c pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e161 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041e165 movdqu xmmword [rsi + rdx - 0x18], xmm1 | __asm ("movdqu xmmword [rsi + rdx - 0x18], xmm1"); 0x0041e16b add rdx, 0xffffffffffffffe0 | rdx += 0xffffffffffffffe0; 0x0041e16f add rax, 2 | rax += 2; 0x0041e173 jne 0x41e12c | | } while (rax != 0); 0x0041e175 neg rdx | rdx = -rdx; 0x0041e178 jmp 0x41e70c | goto label_47; | label_18: 0x0041e17d mov r10, r11 | r10 = r11; 0x0041e180 and r10, 0xfffffffffffffff0 | r10 &= 0xfffffffffffffff0; 0x0041e184 lea rax, [r10 - 0x10] | rax = r10 - 0x10; 0x0041e188 mov r14, rax | r14 = rax; 0x0041e18b shr r14, 4 | r14 >>= 4; 0x0041e18f inc r14 | r14++; 0x0041e192 test rax, rax | | if (rax == 0) { 0x0041e195 je 0x41e75f | goto label_48; | } 0x0041e19b add rdx, rdx | rdx += rdx; 0x0041e19e lea rax, [rdx + r11*2] | rax = rdx + r11*2; 0x0041e1a2 lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041e1a7 add r9, r11 | r9 += r11; 0x0041e1aa lea rbx, [r8 + r9 - 8] | rbx = r8 + r9 - 8; 0x0041e1af mov rax, r14 | rax = r14; 0x0041e1b2 and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e1b6 neg rax | rax = -rax; 0x0041e1b9 xor edx, edx | edx = 0; | do { 0x0041e1bb pmovzxbw xmm0, qword [rbx + rdx] | __asm ("pmovzxbw xmm0, qword [rbx + rdx]"); 0x0041e1c1 pmovzxbw xmm1, qword [rbx + rdx - 8] | __asm ("pmovzxbw xmm1, qword [rbx + rdx - 8]"); 0x0041e1c8 movdqu xmmword [rsi + rdx*2], xmm0 | __asm ("movdqu xmmword [rsi + rdx*2], xmm0"); 0x0041e1cd movdqu xmmword [rsi + rdx*2 - 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x10], xmm1"); 0x0041e1d3 pmovzxbw xmm0, qword [rbx + rdx - 0x10] | __asm ("pmovzxbw xmm0, qword [rbx + rdx - 0x10]"); 0x0041e1da pmovzxbw xmm1, qword [rbx + rdx - 0x18] | __asm ("pmovzxbw xmm1, qword [rbx + rdx - 0x18]"); 0x0041e1e1 movdqu xmmword [rsi + rdx*2 - 0x20], xmm0 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x20], xmm0"); 0x0041e1e7 movdqu xmmword [rsi + rdx*2 - 0x30], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x30], xmm1"); 0x0041e1ed add rdx, 0xffffffffffffffe0 | rdx += 0xffffffffffffffe0; 0x0041e1f1 add rax, 2 | rax += 2; 0x0041e1f5 jne 0x41e1bb | | } while (rax != 0); 0x0041e1f7 neg rdx | rdx = -rdx; 0x0041e1fa jmp 0x41e761 | goto label_49; | label_22: 0x0041e1ff mov r10, r11 | r10 = r11; 0x0041e202 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041e206 lea rax, [r10 - 8] | rax = r10 - 8; 0x0041e20a mov r14, rax | r14 = rax; 0x0041e20d shr r14, 3 | r14 >>= 3; 0x0041e211 inc r14 | r14++; 0x0041e214 test rax, rax | | if (rax == 0) { 0x0041e217 je 0x41e7a4 | goto label_50; | } 0x0041e21d shl rdx, 2 | rdx <<= 2; 0x0041e221 lea rax, [rdx + r11*4] | rax = rdx + r11*4; 0x0041e225 lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041e22a add r9, r11 | r9 += r11; 0x0041e22d lea rbx, [r8 + r9 - 4] | rbx = r8 + r9 - 4; 0x0041e232 mov rax, r14 | rax = r14; 0x0041e235 and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e239 neg rax | rax = -rax; 0x0041e23c xor edx, edx | edx = 0; | do { 0x0041e23e pmovzxbd xmm0, dword [rbx + rdx] | __asm ("pmovzxbd xmm0, dword [rbx + rdx]"); 0x0041e244 pmovzxbd xmm1, dword [rbx + rdx - 4] | __asm ("pmovzxbd xmm1, dword [rbx + rdx - 4]"); 0x0041e24b movdqu xmmword [rsi + rdx*4], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4], xmm0"); 0x0041e250 movdqu xmmword [rsi + rdx*4 - 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x10], xmm1"); 0x0041e256 pmovzxbd xmm0, dword [rbx + rdx - 8] | __asm ("pmovzxbd xmm0, dword [rbx + rdx - 8]"); 0x0041e25d pmovzxbd xmm1, dword [rbx + rdx - 0xc] | __asm ("pmovzxbd xmm1, dword [rbx + rdx - 0xc]"); 0x0041e264 movdqu xmmword [rsi + rdx*4 - 0x20], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x20], xmm0"); 0x0041e26a movdqu xmmword [rsi + rdx*4 - 0x30], xmm1 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x30], xmm1"); 0x0041e270 add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041e274 add rax, 2 | rax += 2; 0x0041e278 jne 0x41e23e | | } while (rax != 0); 0x0041e27a neg rdx | rdx = -rdx; 0x0041e27d jmp 0x41e7a6 | goto label_51; | label_26: 0x0041e282 mov r10, r11 | r10 = r11; 0x0041e285 and r10, 0xfffffffffffffffc | r10 &= 0xfffffffffffffffc; 0x0041e289 lea rax, [r10 - 4] | rax = r10 - 4; 0x0041e28d mov r14, rax | r14 = rax; 0x0041e290 shr r14, 2 | r14 >>= 2; 0x0041e294 inc r14 | r14++; 0x0041e297 test rax, rax | | if (rax == 0) { 0x0041e29a je 0x41e7ee | goto label_52; | } 0x0041e2a0 shl rdx, 3 | rdx <<= 3; 0x0041e2a4 lea rax, [rdx + r11*8] | rax = rdx + r11*8; 0x0041e2a8 lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041e2ad add r9, r11 | r9 += r11; 0x0041e2b0 lea rbx, [r8 + r9 - 2] | rbx = r8 + r9 - 2; 0x0041e2b5 mov rax, r14 | rax = r14; 0x0041e2b8 and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e2bc neg rax | rax = -rax; 0x0041e2bf xor edx, edx | edx = 0; | do { 0x0041e2c1 pmovzxbq xmm0, word [rbx + rdx] | __asm ("pmovzxbq xmm0, word [rbx + rdx]"); 0x0041e2c7 pmovzxbq xmm1, word [rbx + rdx - 2] | __asm ("pmovzxbq xmm1, word [rbx + rdx - 2]"); 0x0041e2ce movdqu xmmword [rsi + rdx*8], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8], xmm0"); 0x0041e2d3 movdqu xmmword [rsi + rdx*8 - 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x10], xmm1"); 0x0041e2d9 pmovzxbq xmm0, word [rbx + rdx - 4] | __asm ("pmovzxbq xmm0, word [rbx + rdx - 4]"); 0x0041e2e0 pmovzxbq xmm1, word [rbx + rdx - 6] | __asm ("pmovzxbq xmm1, word [rbx + rdx - 6]"); 0x0041e2e7 movdqu xmmword [rsi + rdx*8 - 0x20], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x20], xmm0"); 0x0041e2ed movdqu xmmword [rsi + rdx*8 - 0x30], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x30], xmm1"); 0x0041e2f3 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041e2f7 add rax, 2 | rax += 2; 0x0041e2fb jne 0x41e2c1 | | } while (rax != 0); 0x0041e2fd neg rdx | rdx = -rdx; 0x0041e300 jmp 0x41e7f0 | goto label_53; | label_28: 0x0041e305 mov r10, r11 | r10 = r11; 0x0041e308 and r10, 0xfffffffffffffffc | r10 &= 0xfffffffffffffffc; 0x0041e30c lea rax, [r10 - 4] | rax = r10 - 4; 0x0041e310 mov r14, rax | r14 = rax; 0x0041e313 shr r14, 2 | r14 >>= 2; 0x0041e317 inc r14 | r14++; 0x0041e31a test rax, rax | | if (rax == 0) { 0x0041e31d je 0x41e838 | goto label_54; | } 0x0041e323 add rdx, r11 | rdx += r11; 0x0041e326 lea rsi, [rsi + rdx - 2] | rsi = rsi + rdx - 2; 0x0041e32b shl r9, 3 | r9 <<= 3; 0x0041e32f lea rax, [r9 + r11*8] | rax = r9 + r11*8; 0x0041e333 lea rbx, [r8 + rax - 0x10] | rbx = r8 + rax - 0x10; 0x0041e338 mov rax, r14 | rax = r14; 0x0041e33b and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e33f neg rax | rax = -rax; 0x0041e342 xor edx, edx | edx = 0; 0x0041e344 movdqa xmm0, xmmword [rip + 0x41f34] | __asm ("movdqa xmm0, xmmword [0x00460280]"); | do { 0x0041e34c movdqu xmm1, xmmword [rbx + rdx*8 - 0x10] | __asm ("movdqu xmm1, xmmword [rbx + rdx*8 - 0x10]"); 0x0041e352 movdqu xmm2, xmmword [rbx + rdx*8] | __asm ("movdqu xmm2, xmmword [rbx + rdx*8]"); 0x0041e357 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e35c pextrw word [rsi + rdx], xmm2, 0 | __asm ("pextrw word [rsi + rdx], xmm2, 0"); 0x0041e363 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e368 pextrw word [rsi + rdx - 2], xmm1, 0 | __asm ("pextrw word [rsi + rdx - 2], xmm1, 0"); 0x0041e370 movdqu xmm1, xmmword [rbx + rdx*8 - 0x30] | __asm ("movdqu xmm1, xmmword [rbx + rdx*8 - 0x30]"); 0x0041e376 movdqu xmm2, xmmword [rbx + rdx*8 - 0x20] | __asm ("movdqu xmm2, xmmword [rbx + rdx*8 - 0x20]"); 0x0041e37c pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e381 pextrw word [rsi + rdx - 4], xmm2, 0 | __asm ("pextrw word [rsi + rdx - 4], xmm2, 0"); 0x0041e389 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e38e pextrw word [rsi + rdx - 6], xmm1, 0 | __asm ("pextrw word [rsi + rdx - 6], xmm1, 0"); 0x0041e396 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041e39a add rax, 2 | rax += 2; 0x0041e39e jne 0x41e34c | | } while (rax != 0); 0x0041e3a0 neg rdx | rdx = -rdx; 0x0041e3a3 jmp 0x41e83a | goto label_55; | label_30: 0x0041e3a8 mov r10, r11 | r10 = r11; 0x0041e3ab and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041e3af lea rax, [r10 - 8] | rax = r10 - 8; 0x0041e3b3 mov r14, rax | r14 = rax; 0x0041e3b6 shr r14, 3 | r14 >>= 3; 0x0041e3ba inc r14 | r14++; 0x0041e3bd test rax, rax | | if (rax == 0) { 0x0041e3c0 je 0x41e89a | goto label_56; | } 0x0041e3c6 add rdx, r11 | rdx += r11; 0x0041e3c9 lea rsi, [rsi + rdx - 4] | rsi = rsi + rdx - 4; 0x0041e3ce shl r9, 2 | r9 <<= 2; 0x0041e3d2 lea rax, [r9 + r11*4] | rax = r9 + r11*4; 0x0041e3d6 lea rbx, [r8 + rax - 0x10] | rbx = r8 + rax - 0x10; 0x0041e3db mov rax, r14 | rax = r14; 0x0041e3de and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e3e2 neg rax | rax = -rax; 0x0041e3e5 xor edx, edx | edx = 0; 0x0041e3e7 movdqa xmm0, xmmword [rip + 0x41ea1] | __asm ("movdqa xmm0, xmmword [0x00460290]"); | do { 0x0041e3ef movdqu xmm1, xmmword [rbx + rdx*4 - 0x10] | __asm ("movdqu xmm1, xmmword [rbx + rdx*4 - 0x10]"); 0x0041e3f5 movdqu xmm2, xmmword [rbx + rdx*4] | __asm ("movdqu xmm2, xmmword [rbx + rdx*4]"); 0x0041e3fa pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e3ff movd dword [rsi + rdx], xmm2 | *((rsi + rdx)) = xmm2; 0x0041e404 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e409 movd dword [rsi + rdx - 4], xmm1 | *((rsi + rdx - 4)) = xmm1; 0x0041e40f movdqu xmm1, xmmword [rbx + rdx*4 - 0x30] | __asm ("movdqu xmm1, xmmword [rbx + rdx*4 - 0x30]"); 0x0041e415 movdqu xmm2, xmmword [rbx + rdx*4 - 0x20] | __asm ("movdqu xmm2, xmmword [rbx + rdx*4 - 0x20]"); 0x0041e41b pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e420 movd dword [rsi + rdx - 8], xmm2 | *((rsi + rdx - 8)) = xmm2; 0x0041e426 pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e42b movd dword [rsi + rdx - 0xc], xmm1 | *((rsi + rdx - 0xc)) = xmm1; 0x0041e431 add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041e435 add rax, 2 | rax += 2; 0x0041e439 jne 0x41e3ef | | } while (rax != 0); 0x0041e43b neg rdx | rdx = -rdx; 0x0041e43e jmp 0x41e89c | goto label_57; | label_34: 0x0041e443 mov r10, r11 | r10 = r11; 0x0041e446 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041e44a lea rax, [r10 - 8] | rax = r10 - 8; 0x0041e44e mov r14, rax | r14 = rax; 0x0041e451 shr r14, 3 | r14 >>= 3; 0x0041e455 inc r14 | r14++; 0x0041e458 test rax, rax | | if (rax == 0) { 0x0041e45b je 0x41e8f8 | goto label_58; | } 0x0041e461 add rdx, rdx | rdx += rdx; 0x0041e464 lea rax, [rdx + r11*2] | rax = rdx + r11*2; 0x0041e468 lea rsi, [rsi + rax - 8] | rsi = rsi + rax - 8; 0x0041e46d shl r9, 2 | r9 <<= 2; 0x0041e471 lea rax, [r9 + r11*4] | rax = r9 + r11*4; 0x0041e475 lea rbx, [r8 + rax - 0x10] | rbx = r8 + rax - 0x10; 0x0041e47a mov rax, r14 | rax = r14; 0x0041e47d and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e481 neg rax | rax = -rax; 0x0041e484 xor edx, edx | edx = 0; 0x0041e486 movdqa xmm0, xmmword [rip + 0x41dc2] | __asm ("movdqa xmm0, xmmword [0x00460250]"); | do { 0x0041e48e movdqu xmm1, xmmword [rbx + rdx*4 - 0x10] | __asm ("movdqu xmm1, xmmword [rbx + rdx*4 - 0x10]"); 0x0041e494 movdqu xmm2, xmmword [rbx + rdx*4] | __asm ("movdqu xmm2, xmmword [rbx + rdx*4]"); 0x0041e499 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e49e pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e4a3 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041e4a7 movdqu xmmword [rsi + rdx*2 - 8], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 - 8], xmm1"); 0x0041e4ad movdqu xmm1, xmmword [rbx + rdx*4 - 0x30] | __asm ("movdqu xmm1, xmmword [rbx + rdx*4 - 0x30]"); 0x0041e4b3 movdqu xmm2, xmmword [rbx + rdx*4 - 0x20] | __asm ("movdqu xmm2, xmmword [rbx + rdx*4 - 0x20]"); 0x0041e4b9 pshufb xmm2, xmm0 | __asm ("pshufb xmm2, xmm0"); 0x0041e4be pshufb xmm1, xmm0 | __asm ("pshufb xmm1, xmm0"); 0x0041e4c3 punpcklqdq xmm1, xmm2 | __asm ("punpcklqdq xmm1, xmm2"); 0x0041e4c7 movdqu xmmword [rsi + rdx*2 - 0x18], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 - 0x18], xmm1"); 0x0041e4cd add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041e4d1 add rax, 2 | rax += 2; 0x0041e4d5 jne 0x41e48e | | } while (rax != 0); 0x0041e4d7 neg rdx | rdx = -rdx; 0x0041e4da jmp 0x41e8fa | goto label_59; | label_36: 0x0041e4df mov rdi, r11 | rdi = r11; 0x0041e4e2 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x0041e4e6 lea rax, [rdi - 4] | rax = rdi - 4; 0x0041e4ea mov r14, rax | r14 = rax; 0x0041e4ed shr r14, 2 | r14 >>= 2; 0x0041e4f1 inc r14 | r14++; 0x0041e4f4 test rax, rax | | if (rax == 0) { 0x0041e4f7 je 0x41e95c | goto label_60; | } 0x0041e4fd shl rdx, 2 | rdx <<= 2; 0x0041e501 lea rax, [rdx + r11*4] | rax = rdx + r11*4; 0x0041e505 lea rsi, [rsi + rax - 8] | rsi = rsi + rax - 8; 0x0041e50a shl r9, 3 | r9 <<= 3; 0x0041e50e lea rax, [r9 + r11*8] | rax = r9 + r11*8; 0x0041e512 lea rbx, [r8 + rax - 0x10] | rbx = r8 + rax - 0x10; 0x0041e517 mov rax, r14 | rax = r14; 0x0041e51a and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e51e neg rax | rax = -rax; 0x0041e521 xor edx, edx | edx = 0; | do { 0x0041e523 movdqu xmm0, xmmword [rbx + rdx*8 - 0x10] | __asm ("movdqu xmm0, xmmword [rbx + rdx*8 - 0x10]"); 0x0041e529 movdqu xmm1, xmmword [rbx + rdx*8] | __asm ("movdqu xmm1, xmmword [rbx + rdx*8]"); 0x0041e52e pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041e533 pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041e538 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041e53c movdqu xmmword [rsi + rdx*4 - 8], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4 - 8], xmm0"); 0x0041e542 movdqu xmm0, xmmword [rbx + rdx*8 - 0x30] | __asm ("movdqu xmm0, xmmword [rbx + rdx*8 - 0x30]"); 0x0041e548 movdqu xmm1, xmmword [rbx + rdx*8 - 0x20] | __asm ("movdqu xmm1, xmmword [rbx + rdx*8 - 0x20]"); 0x0041e54e pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041e553 pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041e558 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041e55c movdqu xmmword [rsi + rdx*4 - 0x18], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x18], xmm0"); 0x0041e562 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041e566 add rax, 2 | rax += 2; 0x0041e56a jne 0x41e523 | | } while (rax != 0); 0x0041e56c neg rdx | rdx = -rdx; 0x0041e56f jmp 0x41e95e | goto label_61; | label_39: 0x0041e574 mov r10, r11 | r10 = r11; 0x0041e577 and r10, 0xfffffffffffffff8 | r10 &= 0xfffffffffffffff8; 0x0041e57b lea rax, [r10 - 8] | rax = r10 - 8; 0x0041e57f mov r14, rax | r14 = rax; 0x0041e582 shr r14, 3 | r14 >>= 3; 0x0041e586 inc r14 | r14++; 0x0041e589 test rax, rax | | if (rax == 0) { 0x0041e58c je 0x41e9bd | goto label_62; | } 0x0041e592 shl rdx, 2 | rdx <<= 2; 0x0041e596 lea rax, [rdx + r11*4] | rax = rdx + r11*4; 0x0041e59a lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041e59f add r9, r9 | r9 += r9; 0x0041e5a2 lea rax, [r9 + r11*2] | rax = r9 + r11*2; 0x0041e5a6 lea rbx, [r8 + rax - 8] | rbx = r8 + rax - 8; 0x0041e5ab mov rax, r14 | rax = r14; 0x0041e5ae and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e5b2 neg rax | rax = -rax; 0x0041e5b5 xor edx, edx | edx = 0; | do { 0x0041e5b7 pmovzxwd xmm0, qword [rbx + rdx*2] | __asm ("pmovzxwd xmm0, qword [rbx + rdx*2]"); 0x0041e5bd pmovzxwd xmm1, qword [rbx + rdx*2 - 8] | __asm ("pmovzxwd xmm1, qword [rbx + rdx*2 - 8]"); 0x0041e5c4 movdqu xmmword [rsi + rdx*4], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4], xmm0"); 0x0041e5c9 movdqu xmmword [rsi + rdx*4 - 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x10], xmm1"); 0x0041e5cf pmovzxwd xmm0, qword [rbx + rdx*2 - 0x10] | __asm ("pmovzxwd xmm0, qword [rbx + rdx*2 - 0x10]"); 0x0041e5d6 pmovzxwd xmm1, qword [rbx + rdx*2 - 0x18] | __asm ("pmovzxwd xmm1, qword [rbx + rdx*2 - 0x18]"); 0x0041e5dd movdqu xmmword [rsi + rdx*4 - 0x20], xmm0 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x20], xmm0"); 0x0041e5e3 movdqu xmmword [rsi + rdx*4 - 0x30], xmm1 | __asm ("movdqu xmmword [rsi + rdx*4 - 0x30], xmm1"); 0x0041e5e9 add rdx, 0xfffffffffffffff0 | rdx += 0xfffffffffffffff0; 0x0041e5ed add rax, 2 | rax += 2; 0x0041e5f1 jne 0x41e5b7 | | } while (rax != 0); 0x0041e5f3 neg rdx | rdx = -rdx; 0x0041e5f6 jmp 0x41e9bf | goto label_63; | label_41: 0x0041e5fb mov rdi, r11 | rdi = r11; 0x0041e5fe and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x0041e602 lea rax, [rdi - 4] | rax = rdi - 4; 0x0041e606 mov r10, rax | r10 = rax; 0x0041e609 shr r10, 2 | r10 >>= 2; 0x0041e60d inc r10 | r10++; 0x0041e610 test rax, rax | | if (rax == 0) { 0x0041e613 je 0x41ea0f | goto label_64; | } 0x0041e619 shl rdx, 3 | rdx <<= 3; 0x0041e61d lea rax, [rdx + r11*8] | rax = rdx + r11*8; 0x0041e621 lea rdx, [rsi + rax - 0x10] | rdx = rsi + rax - 0x10; 0x0041e626 shl r9, 2 | r9 <<= 2; 0x0041e62a lea rax, [r9 + r11*4] | rax = r9 + r11*4; 0x0041e62e lea rsi, [r8 + rax - 8] | rsi = r8 + rax - 8; 0x0041e633 mov rbx, r10 | rbx = r10; 0x0041e636 and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x0041e63a neg rbx | rbx = -rbx; 0x0041e63d xor eax, eax | eax = 0; | do { 0x0041e63f pmovzxdq xmm0, qword [rsi + rax*4] | __asm ("pmovzxdq xmm0, qword [rsi + rax*4]"); 0x0041e645 pmovzxdq xmm1, qword [rsi + rax*4 - 8] | __asm ("pmovzxdq xmm1, qword [rsi + rax*4 - 8]"); 0x0041e64c movdqu xmmword [rdx + rax*8], xmm0 | __asm ("movdqu xmmword [rdx + rax*8], xmm0"); 0x0041e651 movdqu xmmword [rdx + rax*8 - 0x10], xmm1 | __asm ("movdqu xmmword [rdx + rax*8 - 0x10], xmm1"); 0x0041e657 pmovzxdq xmm0, qword [rsi + rax*4 - 0x10] | __asm ("pmovzxdq xmm0, qword [rsi + rax*4 - 0x10]"); 0x0041e65e pmovzxdq xmm1, qword [rsi + rax*4 - 0x18] | __asm ("pmovzxdq xmm1, qword [rsi + rax*4 - 0x18]"); 0x0041e665 movdqu xmmword [rdx + rax*8 - 0x20], xmm0 | __asm ("movdqu xmmword [rdx + rax*8 - 0x20], xmm0"); 0x0041e66b movdqu xmmword [rdx + rax*8 - 0x30], xmm1 | __asm ("movdqu xmmword [rdx + rax*8 - 0x30], xmm1"); 0x0041e671 add rax, 0xfffffffffffffff8 | rax += 0xfffffffffffffff8; 0x0041e675 add rbx, 2 | rbx += 2; 0x0041e679 jne 0x41e63f | | } while (rbx != 0); 0x0041e67b neg rax | rax = -rax; 0x0041e67e jmp 0x41ea11 | goto label_65; | label_44: 0x0041e683 mov r10, r11 | r10 = r11; 0x0041e686 and r10, 0xfffffffffffffffc | r10 &= 0xfffffffffffffffc; 0x0041e68a lea rax, [r10 - 4] | rax = r10 - 4; 0x0041e68e mov r14, rax | r14 = rax; 0x0041e691 shr r14, 2 | r14 >>= 2; 0x0041e695 inc r14 | r14++; 0x0041e698 test rax, rax | | if (rax == 0) { 0x0041e69b je 0x41ea65 | goto label_66; | } 0x0041e6a1 shl rdx, 3 | rdx <<= 3; 0x0041e6a5 lea rax, [rdx + r11*8] | rax = rdx + r11*8; 0x0041e6a9 lea rsi, [rsi + rax - 0x10] | rsi = rsi + rax - 0x10; 0x0041e6ae add r9, r9 | r9 += r9; 0x0041e6b1 lea rax, [r9 + r11*2] | rax = r9 + r11*2; 0x0041e6b5 lea rbx, [r8 + rax - 4] | rbx = r8 + rax - 4; 0x0041e6ba mov rax, r14 | rax = r14; 0x0041e6bd and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0041e6c1 neg rax | rax = -rax; 0x0041e6c4 xor edx, edx | edx = 0; | do { 0x0041e6c6 pmovzxwq xmm0, dword [rbx + rdx*2] | __asm ("pmovzxwq xmm0, dword [rbx + rdx*2]"); 0x0041e6cc pmovzxwq xmm1, dword [rbx + rdx*2 - 4] | __asm ("pmovzxwq xmm1, dword [rbx + rdx*2 - 4]"); 0x0041e6d3 movdqu xmmword [rsi + rdx*8], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8], xmm0"); 0x0041e6d8 movdqu xmmword [rsi + rdx*8 - 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x10], xmm1"); 0x0041e6de pmovzxwq xmm0, dword [rbx + rdx*2 - 8] | __asm ("pmovzxwq xmm0, dword [rbx + rdx*2 - 8]"); 0x0041e6e5 pmovzxwq xmm1, dword [rbx + rdx*2 - 0xc] | __asm ("pmovzxwq xmm1, dword [rbx + rdx*2 - 0xc]"); 0x0041e6ec movdqu xmmword [rsi + rdx*8 - 0x20], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x20], xmm0"); 0x0041e6f2 movdqu xmmword [rsi + rdx*8 - 0x30], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 - 0x30], xmm1"); 0x0041e6f8 add rdx, 0xfffffffffffffff8 | rdx += 0xfffffffffffffff8; 0x0041e6fc add rax, 2 | rax += 2; 0x0041e700 jne 0x41e6c6 | | } while (rax != 0); 0x0041e702 neg rdx | rdx = -rdx; 0x0041e705 jmp 0x41ea67 | goto label_67; | label_46: 0x0041e70a xor edx, edx | edx = 0; | label_47: 0x0041e70c test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e710 je 0x41e747 | 0x0041e712 lea rax, [rdx + rdx] | rax = rdx + rdx; 0x0041e716 mov rsi, rdi | rsi = rdi; 0x0041e719 sub rsi, rax | rsi -= rax; 0x0041e71c mov rax, rcx | rax = rcx; 0x0041e71f sub rax, rdx | rax -= rdx; 0x0041e722 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041e727 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041e72c movdqa xmm2, xmmword [rip + 0x41b6c] | __asm ("movdqa xmm2, xmmword [0x004602a0]"); 0x0041e734 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041e739 pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041e73e punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041e742 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); | } 0x0041e747 cmp r10, r11 | | if (r10 != r11) { 0x0041e74a je 0x41ea9c | 0x0041e750 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041e754 sub rdi, rax | rdi -= rax; 0x0041e757 sub rcx, r10 | rcx -= r10; 0x0041e75a jmp 0x41d605 | goto label_0; | label_48: 0x0041e75f xor edx, edx | edx = 0; | label_49: 0x0041e761 test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e765 je 0x41e78c | 0x0041e767 mov rax, rdi | rax = rdi; 0x0041e76a sub rax, rdx | rax -= rdx; 0x0041e76d add rdx, rdx | rdx += rdx; 0x0041e770 mov rsi, rcx | rsi = rcx; 0x0041e773 sub rsi, rdx | rsi -= rdx; 0x0041e776 pmovzxbw xmm0, qword [rax - 8] | __asm ("pmovzxbw xmm0, qword [rax - 8]"); 0x0041e77c pmovzxbw xmm1, qword [rax - 0x10] | __asm ("pmovzxbw xmm1, qword [rax - 0x10]"); 0x0041e782 movdqu xmmword [rsi - 0x10], xmm0 | __asm ("movdqu xmmword [rsi - 0x10], xmm0"); 0x0041e787 movdqu xmmword [rsi - 0x20], xmm1 | __asm ("movdqu xmmword [rsi - 0x20], xmm1"); | } 0x0041e78c cmp r10, r11 | | if (r10 == r11) { 0x0041e78f je 0x41ea9c | goto label_11; | } 0x0041e795 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041e799 sub rdi, r10 | rdi -= r10; 0x0041e79c sub rcx, rax | rcx -= rax; 0x0041e79f jmp 0x41d6fd | goto label_1; | label_50: 0x0041e7a4 xor edx, edx | edx = 0; | label_51: 0x0041e7a6 test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e7aa je 0x41e7d2 | 0x0041e7ac mov rax, rdi | rax = rdi; 0x0041e7af sub rax, rdx | rax -= rdx; 0x0041e7b2 shl rdx, 2 | rdx <<= 2; 0x0041e7b6 mov rsi, rcx | rsi = rcx; 0x0041e7b9 sub rsi, rdx | rsi -= rdx; 0x0041e7bc pmovzxbd xmm0, dword [rax - 4] | __asm ("pmovzxbd xmm0, dword [rax - 4]"); 0x0041e7c2 pmovzxbd xmm1, dword [rax - 8] | __asm ("pmovzxbd xmm1, dword [rax - 8]"); 0x0041e7c8 movdqu xmmword [rsi - 0x10], xmm0 | __asm ("movdqu xmmword [rsi - 0x10], xmm0"); 0x0041e7cd movdqu xmmword [rsi - 0x20], xmm1 | __asm ("movdqu xmmword [rsi - 0x20], xmm1"); | } 0x0041e7d2 cmp r10, r11 | | if (r10 == r11) { 0x0041e7d5 je 0x41ea9c | goto label_11; | } 0x0041e7db lea rax, [r10*4] | rax = r10*4; 0x0041e7e3 sub rdi, r10 | rdi -= r10; 0x0041e7e6 sub rcx, rax | rcx -= rax; 0x0041e7e9 jmp 0x41d805 | goto label_2; | label_52: 0x0041e7ee xor edx, edx | edx = 0; | label_53: 0x0041e7f0 test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e7f4 je 0x41e81c | 0x0041e7f6 mov rax, rdi | rax = rdi; 0x0041e7f9 sub rax, rdx | rax -= rdx; 0x0041e7fc shl rdx, 3 | rdx <<= 3; 0x0041e800 mov rsi, rcx | rsi = rcx; 0x0041e803 sub rsi, rdx | rsi -= rdx; 0x0041e806 pmovzxbq xmm0, word [rax - 2] | __asm ("pmovzxbq xmm0, word [rax - 2]"); 0x0041e80c pmovzxbq xmm1, word [rax - 4] | __asm ("pmovzxbq xmm1, word [rax - 4]"); 0x0041e812 movdqu xmmword [rsi - 0x10], xmm0 | __asm ("movdqu xmmword [rsi - 0x10], xmm0"); 0x0041e817 movdqu xmmword [rsi - 0x20], xmm1 | __asm ("movdqu xmmword [rsi - 0x20], xmm1"); | } 0x0041e81c cmp r10, r11 | | if (r10 == r11) { 0x0041e81f je 0x41ea9c | goto label_11; | } 0x0041e825 lea rax, [r10*8] | rax = r10*8; 0x0041e82d sub rdi, r10 | rdi -= r10; 0x0041e830 sub rcx, rax | rcx -= rax; 0x0041e833 jmp 0x41d8fd | goto label_3; | label_54: 0x0041e838 xor edx, edx | edx = 0; | label_55: 0x0041e83a test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e83e je 0x41e87e | 0x0041e840 lea rax, [rdx*8] | rax = rdx*8; 0x0041e848 mov rsi, rdi | rsi = rdi; 0x0041e84b sub rsi, rax | rsi -= rax; 0x0041e84e mov rax, rcx | rax = rcx; 0x0041e851 sub rax, rdx | rax -= rdx; 0x0041e854 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041e859 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041e85e movdqa xmm2, xmmword [rip + 0x41a1a] | __asm ("movdqa xmm2, xmmword [0x00460280]"); 0x0041e866 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041e86b pextrw word [rax - 2], xmm1, 0 | __asm ("pextrw word [rax - 2], xmm1, 0"); 0x0041e872 pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041e877 pextrw word [rax - 4], xmm0, 0 | __asm ("pextrw word [rax - 4], xmm0, 0"); | } 0x0041e87e cmp r10, r11 | | if (r10 == r11) { 0x0041e881 je 0x41ea9c | goto label_11; | } 0x0041e887 lea rax, [r10*8] | rax = r10*8; 0x0041e88f sub rdi, rax | rdi -= rax; 0x0041e892 sub rcx, r10 | rcx -= r10; 0x0041e895 jmp 0x41d9e6 | goto label_4; | label_56: 0x0041e89a xor edx, edx | edx = 0; | label_57: 0x0041e89c test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e8a0 je 0x41e8dc | 0x0041e8a2 lea rax, [rdx*4] | rax = rdx*4; 0x0041e8aa mov rsi, rdi | rsi = rdi; 0x0041e8ad sub rsi, rax | rsi -= rax; 0x0041e8b0 mov rax, rcx | rax = rcx; 0x0041e8b3 sub rax, rdx | rax -= rdx; 0x0041e8b6 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041e8bb movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041e8c0 movdqa xmm2, xmmword [rip + 0x419c8] | __asm ("movdqa xmm2, xmmword [0x00460290]"); 0x0041e8c8 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041e8cd movd dword [rax - 4], xmm1 | *((rax - 4)) = xmm1; 0x0041e8d2 pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041e8d7 movd dword [rax - 8], xmm0 | *((rax - 8)) = xmm0; | } 0x0041e8dc cmp r10, r11 | | if (r10 == r11) { 0x0041e8df je 0x41ea9c | goto label_11; | } 0x0041e8e5 lea rax, [r10*4] | rax = r10*4; 0x0041e8ed sub rdi, rax | rdi -= rax; 0x0041e8f0 sub rcx, r10 | rcx -= r10; 0x0041e8f3 jmp 0x41dabe | goto label_5; | label_58: 0x0041e8f8 xor edx, edx | edx = 0; | label_59: 0x0041e8fa test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e8fe je 0x41e93c | 0x0041e900 lea rax, [rdx*4] | rax = rdx*4; 0x0041e908 mov rsi, rdi | rsi = rdi; 0x0041e90b sub rsi, rax | rsi -= rax; 0x0041e90e add rdx, rdx | rdx += rdx; 0x0041e911 mov rax, rcx | rax = rcx; 0x0041e914 sub rax, rdx | rax -= rdx; 0x0041e917 movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041e91c movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041e921 movdqa xmm2, xmmword [rip + 0x41927] | __asm ("movdqa xmm2, xmmword [0x00460250]"); 0x0041e929 pshufb xmm1, xmm2 | __asm ("pshufb xmm1, xmm2"); 0x0041e92e pshufb xmm0, xmm2 | __asm ("pshufb xmm0, xmm2"); 0x0041e933 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041e937 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); | } 0x0041e93c cmp r10, r11 | | if (r10 == r11) { 0x0041e93f je 0x41ea9c | goto label_11; | } 0x0041e945 lea rax, [r10*4] | rax = r10*4; 0x0041e94d lea rdx, [r10 + r10] | rdx = r10 + r10; 0x0041e951 sub rdi, rax | rdi -= rax; 0x0041e954 sub rcx, rdx | rcx -= rdx; 0x0041e957 jmp 0x41dbd4 | goto label_6; | label_60: 0x0041e95c xor edx, edx | edx = 0; | label_61: 0x0041e95e test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e962 je 0x41e999 | 0x0041e964 lea rax, [rdx*8] | rax = rdx*8; 0x0041e96c mov rsi, r10 | rsi = r10; 0x0041e96f sub rsi, rax | rsi -= rax; 0x0041e972 shl rdx, 2 | rdx <<= 2; 0x0041e976 mov rax, rcx | rax = rcx; 0x0041e979 sub rax, rdx | rax -= rdx; 0x0041e97c movdqu xmm0, xmmword [rsi - 0x20] | __asm ("movdqu xmm0, xmmword [rsi - 0x20]"); 0x0041e981 movdqu xmm1, xmmword [rsi - 0x10] | __asm ("movdqu xmm1, xmmword [rsi - 0x10]"); 0x0041e986 pshufd xmm1, xmm1, 0xe8 | __asm ("pshufd xmm1, xmm1, 0xe8"); 0x0041e98b pshufd xmm0, xmm0, 0xe8 | __asm ("pshufd xmm0, xmm0, 0xe8"); 0x0041e990 punpcklqdq xmm0, xmm1 | __asm ("punpcklqdq xmm0, xmm1"); 0x0041e994 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); | } 0x0041e999 cmp rdi, r11 | | if (rdi == r11) { 0x0041e99c je 0x41ea9c | goto label_11; | } 0x0041e9a2 lea rax, [rdi*8] | rax = rdi*8; 0x0041e9aa lea rdx, [rdi*4] | rdx = rdi*4; 0x0041e9b2 sub r10, rax | r10 -= rax; 0x0041e9b5 sub rcx, rdx | rcx -= rdx; 0x0041e9b8 jmp 0x41dcbd | goto label_7; | label_62: 0x0041e9bd xor edx, edx | edx = 0; | label_63: 0x0041e9bf test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041e9c3 je 0x41e9ef | 0x0041e9c5 lea rax, [rdx + rdx] | rax = rdx + rdx; 0x0041e9c9 mov rsi, rdi | rsi = rdi; 0x0041e9cc sub rsi, rax | rsi -= rax; 0x0041e9cf shl rdx, 2 | rdx <<= 2; 0x0041e9d3 mov rax, rcx | rax = rcx; 0x0041e9d6 sub rax, rdx | rax -= rdx; 0x0041e9d9 pmovzxwd xmm0, qword [rsi - 8] | __asm ("pmovzxwd xmm0, qword [rsi - 8]"); 0x0041e9df pmovzxwd xmm1, qword [rsi - 0x10] | __asm ("pmovzxwd xmm1, qword [rsi - 0x10]"); 0x0041e9e5 movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); 0x0041e9ea movdqu xmmword [rax - 0x20], xmm1 | __asm ("movdqu xmmword [rax - 0x20], xmm1"); | } 0x0041e9ef cmp r10, r11 | | if (r10 == r11) { 0x0041e9f2 je 0x41ea9c | goto label_11; | } 0x0041e9f8 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041e9fc lea rdx, [r10*4] | rdx = r10*4; 0x0041ea04 sub rdi, rax | rdi -= rax; 0x0041ea07 sub rcx, rdx | rcx -= rdx; 0x0041ea0a jmp 0x41dd44 | goto label_8; | label_64: 0x0041ea0f xor eax, eax | eax = 0; | label_65: 0x0041ea11 test r10b, 1 | | if ((r10b & 1) != 0) { 0x0041ea15 je 0x41ea45 | 0x0041ea17 lea rdx, [rax*4] | rdx = rax*4; 0x0041ea1f mov rsi, rcx | rsi = rcx; 0x0041ea22 sub rsi, rdx | rsi -= rdx; 0x0041ea25 shl rax, 3 | rax <<= 3; 0x0041ea29 mov rdx, r14 | rdx = r14; 0x0041ea2c sub rdx, rax | rdx -= rax; 0x0041ea2f pmovzxdq xmm0, qword [rsi - 8] | __asm ("pmovzxdq xmm0, qword [rsi - 8]"); 0x0041ea35 pmovzxdq xmm1, qword [rsi - 0x10] | __asm ("pmovzxdq xmm1, qword [rsi - 0x10]"); 0x0041ea3b movdqu xmmword [rdx - 0x10], xmm0 | __asm ("movdqu xmmword [rdx - 0x10], xmm0"); 0x0041ea40 movdqu xmmword [rdx - 0x20], xmm1 | __asm ("movdqu xmmword [rdx - 0x20], xmm1"); | } 0x0041ea45 cmp rdi, r11 | | if (rdi == r11) { 0x0041ea48 je 0x41ea9c | goto label_11; | } 0x0041ea4a lea rax, [rdi*4] | rax = rdi*4; 0x0041ea52 lea rdx, [rdi*8] | rdx = rdi*8; 0x0041ea5a sub rcx, rax | rcx -= rax; 0x0041ea5d sub r14, rdx | r14 -= rdx; 0x0041ea60 jmp 0x41de25 | goto label_9; | label_66: 0x0041ea65 xor edx, edx | edx = 0; | label_67: 0x0041ea67 test r14b, 1 | | if ((r14b & 1) != 0) { 0x0041ea6b je 0x41ea97 | 0x0041ea6d lea rax, [rdx + rdx] | rax = rdx + rdx; 0x0041ea71 mov rsi, rdi | rsi = rdi; 0x0041ea74 sub rsi, rax | rsi -= rax; 0x0041ea77 shl rdx, 3 | rdx <<= 3; 0x0041ea7b mov rax, rcx | rax = rcx; 0x0041ea7e sub rax, rdx | rax -= rdx; 0x0041ea81 pmovzxwq xmm0, dword [rsi - 4] | __asm ("pmovzxwq xmm0, dword [rsi - 4]"); 0x0041ea87 pmovzxwq xmm1, dword [rsi - 8] | __asm ("pmovzxwq xmm1, dword [rsi - 8]"); 0x0041ea8d movdqu xmmword [rax - 0x10], xmm0 | __asm ("movdqu xmmword [rax - 0x10], xmm0"); 0x0041ea92 movdqu xmmword [rax - 0x20], xmm1 | __asm ("movdqu xmmword [rax - 0x20], xmm1"); | } 0x0041ea97 cmp r10, r11 | | if (r10 != r11) { 0x0041ea9a jne 0x41eaa0 | goto label_68; | } | } | label_11: 0x0041ea9c pop rbx | 0x0041ea9d pop r14 | r14 = rbx; 0x0041ea9f ret | return rax; | label_68: 0x0041eaa0 lea rax, [r10 + r10] | rax = r10 + r10; 0x0041eaa4 lea rdx, [r10*8] | rdx = r10*8; 0x0041eaac sub rdi, rax | rdi -= rax; 0x0041eaaf sub rcx, rdx | rcx -= rdx; 0x0041eab2 jmp 0x41deb4 | goto label_10; | }