Function at 0x691600
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0xb0], xmm8
movaps xmmword [rsp + 0xc0], xmm9
movaps xmmword [rsp + 0xd0], xmm10
movaps xmmword [rsp + 0xe0], xmm11
movaps xmmword [rsp + 0xf0], xmm12
movaps xmmword [rsp + 0x100], xmm13
movaps xmmword [rsp + 0x110], xmm14
movaps xmmword [rsp + 0x120], xmm15
mov eax, dword [r8 + 4]
mov qword [rsp + 0x188], rdx
prefetcht0 byte [rcx]
test eax, eax
je 0x69816f
prefetcht0 byte [rcx + 4]
prefetcht0 byte [rcx + 8]
mov r9, qword [r8 + 0x10]
lea rdi, str.cw
shr r9, 4
je 0x69816f
mov ebx, dword [rcx + 0x14]
movdqa xmm14, xmmword [rcx]
mov edx, ebx
movzx r8d, bl
shr edx, 0x18
movzx ebp, byte [rdi + r8]
movdqa xmm2, xmm14
movdqa xmm13, xmmword [rcx + 0x10]
movzx esi, byte [rdi + rdx]
movzx eax, bh
pslldq xmm2, 4
mov r10d, ebx
mov ebx, dword [rcx + 0x1c]
shr r10d, 0x10
movzx r13d, byte [rdi + rax]
movdqa xmm3, xmm2
shl esi, 0x18
movzx r11d, r10b
movdqa xmm11, xmm13
or esi, ebp
mov r14d, ebx
mov ebp, ebx
movzx r12d, byte [rdi + r11]
movzx edx, bl
shr r14d, 0x18
shr ebp, 0x10
movzx r8d, byte [rdi + rdx]
movzx eax, bh
movzx r15d, byte [rdi + r14]
shl r12d, 0x10
movzx r10d, bpl
shl r13d, 8
movzx r11d, byte [rdi + r10]
or esi, r12d
movzx r12d, byte [rdi + rax]
pslldq xmm3, 4
shl r15d, 0x18
or esi, r13d
pxor xmm2, xmm3
or r15d, r8d
shl r11d, 0x10
shl r12d, 8
mov r13d, esi
or r15d, r11d
or r15d, r12d
ror r13d, 8
pslldq xmm11, 4
mov ebx, r15d
ror ebx, 8
xor r13d, 1
mov dword [rsp + 0xc], r15d
movd xmm0, dword [rsp + 0xc]
xor ebx, 1
mov dword [rsp + 4], r13d
movd xmm1, dword [rsp + 4]
movdqa xmm12, xmm11
mov dword [rsp + 8], ebx
movd xmm5, dword [rsp + 8]
pslldq xmm12, 4
punpckldq xmm0, xmm5
mov dword [rsp + 8], esi
movd xmm6, dword [rsp + 8]
movdqa xmm7, xmm12
pxor xmm12, xmm11
pslldq xmm7, 4
punpckldq xmm6, xmm1
movdqa xmm4, xmm6
punpcklqdq xmm4, xmm0
movdqa xmm6, xmm3
pshufd xmm8, xmm4, 0xff
pslldq xmm6, 4
pxor xmm6, xmm8
pxor xmm6, xmm2
pxor xmm6, xmm14
pshufd xmm9, xmm6, 0x55
pshufd xmm10, xmm6, 0xff
movd esi, xmm9
movd eax, xmm9
movd r8d, xmm9
movzx ebx, ah
shr esi, 0x18
movzx r15d, al
shr r8d, 0x10
movd r12d, xmm10
movzx r14d, byte [rdi + rsi]
movzx edx, byte [rdi + r15]
movzx ebp, r8b
movd eax, xmm10
movzx r10d, byte [rdi + rbp]
shr r12d, 0x18
movzx esi, al
movdqa xmm5, xmm6
shl r14d, 0x18
movzx r11d, byte [rdi + rbx]
movzx r13d, byte [rdi + r12]
movzx ebx, ah
or r14d, edx
movd edx, xmm10
movzx r15d, byte [rdi + rsi]
shl r10d, 0x10
shr edx, 0x10
shl r11d, 8
pslldq xmm5, 4
or r14d, r10d
movzx r8d, dl
movzx r10d, byte [rdi + rbx]
shl r13d, 0x18
or r14d, r11d
movzx ebp, byte [rdi + r8]
or r13d, r15d
mov r11d, r14d
movdqa xmm9, xmm5
pslldq xmm9, 4
shl ebp, 0x10
pxor xmm5, xmm9
or r13d, ebp
shl r10d, 8
ror r11d, 8
or r13d, r10d
mov dword [rsp + 4], r11d
mov eax, r13d
mov dword [rsp + 0xc], r13d
ror eax, 8
mov dword [rsp + 8], eax
movd xmm15, dword [rsp + 0xc]
movd xmm2, dword [rsp + 8]
movd xmm0, dword [rsp + 4]
mov dword [rsp + 8], r14d
punpckldq xmm15, xmm2
movd xmm3, dword [rsp + 8]
punpckldq xmm3, xmm0
movdqa xmm0, xmm3
punpcklqdq xmm0, xmm15
pshufd xmm1, xmm0, 0xaa
pxor xmm7, xmm1
movdqa xmm1, xmm9
pxor xmm7, xmm12
pslldq xmm1, 4
pxor xmm7, xmm13
pshufd xmm4, xmm7, 0x55
pshufd xmm8, xmm7, 0xff
movdqa xmm9, xmm7
movd r14d, xmm4
movd ebx, xmm4
movd r15d, xmm4
movzx r13d, bl
shr r14d, 0x18
movzx esi, byte [rdi + r13]
shr r15d, 0x10
movzx ebp, bh
movzx r12d, byte [rdi + r14]
movzx edx, r15b
movd r11d, xmm8
movd eax, xmm8
movzx r8d, byte [rdi + rdx]
shr r11d, 0x18
movzx ebx, al
movzx r10d, byte [rdi + rbp]
shl r12d, 0x18
movzx r14d, byte [rdi + r11]
movzx r13d, byte [rdi + rbx]
movzx ebp, ah
or r12d, esi
movd esi, xmm8
shl r8d, 0x10
or r12d, r8d
shr esi, 0x10
movzx r8d, byte [rdi + rbp]
shl r14d, 0x18
pslldq xmm9, 4
movzx r15d, sil
or r14d, r13d
shl r10d, 8
movzx edx, byte [rdi + r15]
shl r8d, 8
or r12d, r10d
shl edx, 0x10
mov r10d, r12d
or r14d, edx
ror r10d, 8
or r14d, r8d
xor r10d, 2
mov eax, r14d
mov dword [rsp + 4], r10d
movd xmm15, dword [rsp + 4]
ror eax, 8
xor eax, 2
mov dword [rsp + 0xc], r14d
movd xmm10, dword [rsp + 0xc]
mov dword [rsp + 8], eax
movd xmm11, dword [rsp + 8]
punpckldq xmm10, xmm11
mov dword [rsp + 8], r12d
movd xmm12, dword [rsp + 8]
punpckldq xmm12, xmm15
movdqa xmm0, xmm12
punpcklqdq xmm0, xmm10
movdqa xmm10, xmm9
pshufd xmm3, xmm0, 0xff
pxor xmm3, xmm1
pslldq xmm10, 4
pxor xmm5, xmm3
pxor xmm5, xmm6
pshufd xmm4, xmm5, 0x55
pshufd xmm8, xmm5, 0xff
movd r12d, xmm4
movd esi, xmm4
movd ebx, xmm4
shr esi, 0x10
shr r12d, 0x18
movzx r14d, bl
movzx r15d, sil
movzx ebp, bh
movzx r11d, byte [rdi + r12]
movzx r13d, byte [rdi + r14]
movd r10d, xmm8
movd eax, xmm8
movzx edx, byte [rdi + r15]
movzx r8d, byte [rdi + rbp]
movzx ebx, al
shl edx, 0x10
shl r11d, 0x18
movzx r14d, byte [rdi + rbx]
or r11d, r13d
movd r13d, xmm8
or r11d, edx
shl r8d, 8
movzx edx, ah
movdqa xmm8, xmm10
shr r10d, 0x18
shr r13d, 0x10
movzx ebp, byte [rdi + rdx]
or r11d, r8d
movzx r12d, byte [rdi + r10]
movzx esi, r13b
mov r8d, r11d
pxor xmm10, xmm9
movzx r15d, byte [rdi + rsi]
shl ebp, 8
ror r8d, 8
pslldq xmm8, 4
shl r12d, 0x18
mov dword [rsp + 4], r8d
or r12d, r14d
shl r15d, 0x10
or r12d, r15d
or r12d, ebp
mov eax, r12d
mov dword [rsp + 0xc], r12d
ror eax, 8
mov dword [rsp + 8], eax
movd xmm11, dword [rsp + 0xc]
movd xmm12, dword [rsp + 8]
movd xmm0, dword [rsp + 4]
mov dword [rsp + 8], r11d
punpckldq xmm11, xmm12
movd xmm15, dword [rsp + 8]
punpckldq xmm15, xmm0
movdqa xmm0, xmm15
punpcklqdq xmm0, xmm11
pshufd xmm3, xmm0, 0xaa
pxor xmm8, xmm3
pxor xmm8, xmm10
pxor xmm8, xmm7
movdqa xmm10, xmm5
pshufd xmm1, xmm8, 0x55
movd r11d, xmm1
movd ebx, xmm1
movd r13d, xmm1
movzx r10d, bl
shr r11d, 0x18
movzx r14d, byte [rdi + r10]
shr r13d, 0x10
movzx edx, bh
movzx r12d, byte [rdi + r11]
pshufd xmm4, xmm8, 0xff
movzx esi, r13b
movzx ebp, byte [rdi + rdx]
movd r8d, xmm4
movzx r15d, byte [rdi + rsi]
movd eax, xmm4
shr r8d, 0x18
shl r12d, 0x18
movzx r11d, byte [rdi + r8]
movzx ebx, al
movzx edx, ah
movzx r10d, byte [rdi + rbx]
shl r15d, 0x10
or r12d, r14d
shl ebp, 8
movd r14d, xmm4
or r12d, r15d
shl r11d, 0x18
movzx r15d, byte [rdi + rdx]
shr r14d, 0x10
pslldq xmm10, 4
or r11d, r10d
or r12d, ebp
movzx r13d, r14b
shl r15d, 8
mov ebp, r12d
movdqa xmm11, xmm10
movzx esi, byte [rdi + r13]
ror ebp, 8
pslldq xmm11, 4
shl esi, 0x10
or r11d, esi
xor ebp, 4
or r11d, r15d
mov dword [rsp + 4], ebp
mov eax, r11d
movd xmm0, dword [rsp + 4]
mov dword [rsp + 0xc], r11d
ror eax, 8
xor eax, 4
movd xmm9, dword [rsp + 0xc]
mov dword [rsp + 8], eax
movd xmm12, dword [rsp + 8]
mov dword [rsp + 8], r12d
punpckldq xmm9, xmm12
movd xmm15, dword [rsp + 8]
punpckldq xmm15, xmm0
movdqa xmm0, xmm15
punpcklqdq xmm0, xmm9
movdqa xmm9, xmm11
pshufd xmm3, xmm0, 0xff
pxor xmm11, xmm10
pslldq xmm9, 4
pxor xmm9, xmm3
pxor xmm9, xmm11
pxor xmm9, xmm5
movdqa xmm11, xmm8
pshufd xmm1, xmm9, 0x55
movd r12d, xmm1
movd ebx, xmm1
movd r14d, xmm1
shr r12d, 0x18
movzx r11d, byte [rdi + r12]
movzx r8d, bl
shr r14d, 0x10
movzx edx, bh
movzx r10d, byte [rdi + r8]
pshufd xmm4, xmm9, 0xff
movzx r13d, r14b
movzx r15d, byte [rdi + rdx]
shl r11d, 0x18
movzx esi, byte [rdi + r13]
movd ebp, xmm4
movd eax, xmm4
or r11d, r10d
movd r10d, xmm4
shr ebp, 0x18
movzx ebx, al
shr r10d, 0x10
movzx r12d, byte [rdi + rbp]
shl esi, 0x10
movzx r8d, byte [rdi + rbx]
movzx r14d, r10b
or r11d, esi
movzx esi, ah
shl r15d, 8
movzx r13d, byte [rdi + r14]
movzx edx, byte [rdi + rsi]
shl r12d, 0x18
or r11d, r15d
or r12d, r8d
pslldq xmm11, 4
mov r15d, r11d
shl r13d, 0x10
shl edx, 8
or r12d, r13d
ror r15d, 8
movdqa xmm12, xmm11
or r12d, edx
mov dword [rsp + 4], r15d
pslldq xmm12, 4
mov eax, r12d
ror eax, 8
mov dword [rsp + 0xc], r12d
mov dword [rsp + 8], eax
movd xmm10, dword [rsp + 0xc]
movd xmm15, dword [rsp + 8]
movd xmm2, dword [rsp + 4]
mov dword [rsp + 8], r11d
punpckldq xmm10, xmm15
movd xmm0, dword [rsp + 8]
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm10
movdqa xmm10, xmm12
pshufd xmm1, xmm0, 0xaa
pslldq xmm10, 4
pxor xmm12, xmm11
pxor xmm10, xmm1
pxor xmm10, xmm12
pxor xmm10, xmm8
pshufd xmm4, xmm10, 0x55
pshufd xmm11, xmm10, 0xff
movd ebx, xmm4
movzx r12d, bl
movd r11d, xmm4
movzx r8d, byte [rdi + r12]
movd r10d, xmm4
movzx esi, bh
shr r11d, 0x18
shr r10d, 0x10
movd r15d, xmm11
movd eax, xmm11
movzx ebp, byte [rdi + r11]
movzx r14d, r10b
shr r15d, 0x18
movzx ebx, al
movzx r13d, byte [rdi + r14]
movzx r11d, byte [rdi + r15]
shl ebp, 0x18
shl r13d, 0x10
or ebp, r8d
movd r8d, xmm11
movzx edx, byte [rdi + rsi]
movzx esi, ah
shr r8d, 0x10
movzx r12d, byte [rdi + rbx]
or ebp, r13d
shl r11d, 0x18
movzx r10d, r8b
movzx r13d, byte [rdi + rsi]
shl edx, 8
movdqa xmm11, xmm9
movzx r14d, byte [rdi + r10]
or r11d, r12d
pslldq xmm11, 4
or ebp, edx
mov edx, ebp
movdqa xmm12, xmm11
shl r14d, 0x10
or r11d, r14d
shl r13d, 8
ror edx, 8
pslldq xmm12, 4
sub r9, 1
or r11d, r13d
xor edx, 8
pxor xmm11, xmm12
shr r9, 3
mov eax, r11d
mov dword [rsp + 4], edx
movd xmm3, dword [rsp + 4]
ror eax, 8
xor eax, 8
mov dword [rsp + 0xc], r11d
movd xmm15, dword [rsp + 0xc]
mov dword [rsp + 8], eax
movd xmm2, dword [rsp + 8]
punpckldq xmm15, xmm2
mov dword [rsp + 8], ebp
movd xmm0, dword [rsp + 8]
punpckldq xmm0, xmm3
movdqa xmm3, xmm10
punpcklqdq xmm0, xmm15
pslldq xmm3, 4
movdqa xmm15, xmm12
pshufd xmm4, xmm0, 0xff
pslldq xmm15, 4
pxor xmm4, xmm15
pxor xmm11, xmm4
movdqa xmm15, xmm3
pxor xmm11, xmm9
pshufd xmm12, xmm11, 0x55
pshufd xmm2, xmm11, 0xff
movd eax, xmm2
shr eax, 0x18
movd ebp, xmm12
movd ebx, xmm12
movd r8d, xmm12
movzx r11d, bl
shr ebp, 0x18
movzx r12d, byte [rdi + r11]
movd edx, xmm2
shr r8d, 0x10
movzx r15d, byte [rdi + rbp]
movzx r10d, r8b
movzx esi, bh
movzx ebp, byte [rdi + rax]
movzx ebx, dl
movzx r14d, byte [rdi + r10]
movzx r13d, byte [rdi + rsi]
movzx esi, dh
shl r15d, 0x18
movzx r11d, byte [rdi + rbx]
shl ebp, 0x18
pslldq xmm15, 4
shl r14d, 0x10
or r15d, r12d
movd r12d, xmm2
shl r13d, 8
shr r12d, 0x10
or ebp, r11d
or r15d, r14d
movzx r8d, r12b
movzx r10d, byte [rdi + r8]
movzx edi, byte [rdi + rsi]
or r15d, r13d
lea r12, [0x00799880]
mov r14d, r15d
shl r10d, 0x10
or ebp, r10d
shl edi, 8
ror r14d, 8
or edi, ebp
mov dword [rsp + 4], r14d
mov r13d, edi
mov dword [rsp + 0xc], edi
ror r13d, 8
mov dword [rsp + 8], r13d
movd xmm0, dword [rsp + 0xc]
movd xmm1, dword [rsp + 8]
movd xmm4, dword [rsp + 4]
mov dword [rsp + 8], r15d
punpckldq xmm0, xmm1
movd xmm12, dword [rsp + 8]
mov r15, qword [rsp + 0x188]
mov qword [rsp + 0x48], r9
shl r9, 7
punpckldq xmm12, xmm4
movdqa xmm4, xmmword [rcx + 0x40]
mov qword [rsp + 0x18], r15
lea rdx, [r15 + r9 + 0x80]
movdqa xmm2, xmm12
movdqa xmm12, xmm15
pxor xmm15, xmm3
movdqa xmm3, xmmword [rcx + 0x70]
punpcklqdq xmm2, xmm0
pslldq xmm12, 4
movdqa xmm0, xmmword [rcx + 0x60]
mov qword [rsp + 0x40], rdx
pshufd xmm1, xmm2, 0xaa
movdqa xmm2, xmmword [rcx + 0x90]
pxor xmm12, xmm1
movaps xmmword [rsp + 0x60], xmm2
pxor xmm12, xmm15
movdqa xmm2, xmmword [rcx + 0xb0]
movdqa xmm15, xmmword [rcx + 0x80]
movaps xmmword [rsp + 0x70], xmm15
movdqa xmm1, xmmword [rcx + 0x50]
pxor xmm12, xmm10
movdqa xmm15, xmmword [rcx + 0xa0]
movaps xmmword [rsp + 0x80], xmm2
mov rcx, qword [rsp + 0x188]
mov qword [rsp + 0x20], rcx
movaps xmmword [rsp + 0x50], xmm15
nop dword [rax]
movd r14d, xmm4
pshufd xmm15, xmm4, 0x55
pshufd xmm2, xmm4, 0xaa
movd dword [rsp + 0x14], xmm0
pshufd xmm4, xmm4, 0xff
movd edi, xmm2
movd esi, xmm15
movzx ebx, r14b
movd edx, xmm4
mov ecx, dword [r12 + rbx*4]
mov ebx, esi
movd ebp, xmm3
mov r15d, edx
pshufd xmm2, xmm1, 0xaa
pshufd xmm4, xmm0, 0x55
movzx ebx, bh
shr r15d, 0x18
movd r11d, xmm2
pshufd xmm2, xmm3, 0x55
movd dword [rsp + 4], xmm4
xor ecx, dword [r12 + r15*4 + 0xc00]
mov r15d, edi
movd r13d, xmm1
xor ecx, dword [r12 + rbx*4 + 0x400]
shr r15d, 0x10
pshufd xmm15, xmm1, 0x55
movd dword [rsp + 0x28], xmm2
pshufd xmm1, xmm1, 0xff
movzx ebx, r15b
movd dword [rsp + 0x10], xmm15
movd eax, xmm1
pshufd xmm15, xmm0, 0xaa
pshufd xmm0, xmm0, 0xff
movd r10d, xmm15
pshufd xmm1, xmm3, 0xaa
mov r15d, dword [r12 + rbx*4 + 0x800]
mov ebx, r14d
movd r8d, xmm0
pshufd xmm3, xmm3, 0xff
xor r15d, ecx
shr ebx, 0x18
movzx ecx, sil
mov dword [rsp + 0xc], r15d
mov r15d, edx
mov ecx, dword [r12 + rcx*4]
shr r15d, 0x10
xor ecx, dword [r12 + rbx*4 + 0xc00]
mov ebx, edi
movzx ebx, bh
movd xmm0, dword [rsp + 0xc]
movd dword [rsp + 8], xmm3
movd r9d, xmm1
xor ecx, dword [r12 + rbx*4 + 0x400]
movzx ebx, r15b
mov r15d, dword [r12 + rbx*4 + 0x800]
mov ebx, esi
shr ebx, 0x18
shr esi, 0x10
xor r15d, ecx
movzx ecx, dil
mov dword [rsp + 0x2c], r15d
mov r15d, r14d
mov ecx, dword [r12 + rcx*4]
shr edi, 0x18
xor ecx, dword [r12 + rbx*4 + 0xc00]
shr r15d, 0x10
movzx ebx, dh
movzx edx, dl
xor ecx, dword [r12 + rbx*4 + 0x400]
movzx ebx, r15b
movd xmm2, dword [rsp + 0x2c]
punpckldq xmm0, xmm2
mov r15d, dword [r12 + rbx*4 + 0x800]
movzx ebx, r13b
xor r15d, ecx
mov ecx, r14d
mov dword [rsp + 0x30], r15d
movzx r14d, sil
mov r15d, dword [r12 + rdx*4]
xor r15d, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, eax
mov edx, dword [r12 + rbx*4]
xor r15d, dword [r12 + rdi*4 + 0x400]
xor r15d, dword [r12 + r14*4 + 0x800]
shr ecx, 0x18
mov r14d, r11d
mov dword [rsp + 0x34], r15d
movd xmm15, dword [rsp + 0x30]
shr r14d, 0x10
movd xmm4, dword [rsp + 0x34]
xor edx, dword [r12 + rcx*4 + 0xc00]
punpckldq xmm15, xmm4
punpcklqdq xmm0, xmm15
pxor xmm0, xmm14
pshufd xmm1, xmm0, 0x55
movd edi, xmm0
pshufd xmm15, xmm0, 0xff
movd r15d, xmm1
pshufd xmm3, xmm0, 0xaa
movd dword [rsp + 0xc], xmm15
mov ecx, dword [rsp + 0x10]
movd esi, xmm3
movzx ebx, ch
xor edx, dword [r12 + rbx*4 + 0x400]
movzx ebx, r14b
mov r14d, r13d
xor edx, dword [r12 + rbx*4 + 0x800]
shr r14d, 0x18
mov dword [rsp + 0x10], edx
movzx edx, cl
mov ebx, r11d
movd xmm0, dword [rsp + 0x10]
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + r14*4 + 0xc00]
mov r14d, eax
movzx ebx, bh
shr r14d, 0x10
xor edx, dword [r12 + rbx*4 + 0x400]
movzx ebx, r14b
mov r14d, ecx
xor edx, dword [r12 + rbx*4 + 0x800]
shr r14d, 0x18
movzx ebx, ah
movzx eax, al
mov dword [rsp + 0x2c], edx
movzx edx, r11b
movd xmm1, dword [rsp + 0x2c]
punpckldq xmm0, xmm1
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + r14*4 + 0xc00]
mov r14d, r13d
xor edx, dword [r12 + rbx*4 + 0x400]
shr r14d, 0x10
movzx ebx, r14b
mov r14d, dword [r12 + rax*4]
shr r11d, 0x18
xor edx, dword [r12 + rbx*4 + 0x800]
shr ecx, 0x10
mov dword [rsp + 0x30], edx
mov edx, r13d
movzx r13d, cl
mov ecx, dword [rsp + 4]
xor r14d, dword [r12 + r11*4 + 0xc00]
movzx ebx, dh
mov edx, r8d
movd xmm2, dword [rsp + 0x30]
shr edx, 0x18
xor r14d, dword [r12 + rbx*4 + 0x400]
mov ebx, dword [rsp + 0x14]
movzx eax, bl
xor r14d, dword [r12 + r13*4 + 0x800]
mov eax, dword [r12 + rax*4]
mov dword [rsp + 0x34], r14d
xor eax, dword [r12 + rdx*4 + 0xc00]
movd xmm4, dword [rsp + 0x34]
movzx edx, ch
mov ecx, r10d
shr ecx, 0x10
xor eax, dword [r12 + rdx*4 + 0x400]
punpckldq xmm2, xmm4
movzx edx, cl
xor eax, dword [r12 + rdx*4 + 0x800]
punpcklqdq xmm0, xmm2
mov ecx, ebx
mov edx, r10d
pxor xmm0, xmm14
mov dword [rsp + 0x10], eax
movzx eax, byte [rsp + 4]
shr ebx, 0x18
pshufd xmm3, xmm0, 0x55
movd r14d, xmm0
pshufd xmm15, xmm0, 0xaa
movd dword [rsp + 0x2c], xmm3
mov eax, dword [r12 + rax*4]
pshufd xmm2, xmm0, 0xff
movd xmm0, dword [rsp + 0x10]
movd r13d, xmm15
xor eax, dword [r12 + rbx*4 + 0xc00]
movzx ebx, dh
mov edx, r8d
shr edx, 0x10
xor eax, dword [r12 + rbx*4 + 0x400]
movzx edx, dl
mov ebx, dword [rsp + 4]
movd r11d, xmm2
xor eax, dword [r12 + rdx*4 + 0x800]
mov edx, r8d
movzx r8d, r8b
mov dword [rsp + 0x14], eax
shr ebx, 0x18
movzx eax, r10b
shr r10d, 0x18
movd xmm3, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
movzx ebx, dh
mov edx, ecx
shr edx, 0x10
xor eax, dword [r12 + rbx*4 + 0x400]
punpckldq xmm0, xmm3
movzx ebx, dl
xor eax, dword [r12 + rbx*4 + 0x800]
movzx edx, ch
mov ecx, dword [rsp + 8]
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + r8*4]
xor eax, dword [r12 + r10*4 + 0xc00]
shr ecx, 0x18
mov r10d, dword [rsp + 4]
xor eax, dword [r12 + rdx*4 + 0x400]
shr r10d, 0x10
movzx ebx, r10b
xor eax, dword [r12 + rbx*4 + 0x800]
movd xmm1, dword [rsp + 0x30]
mov r10d, r9d
mov dword [rsp + 4], eax
movzx eax, bpl
movd xmm4, dword [rsp + 4]
shr r10d, 0x10
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x28]
punpckldq xmm1, xmm4
movzx ebx, ch
xor eax, dword [r12 + rbx*4 + 0x400]
punpcklqdq xmm0, xmm1
movzx ebx, r10b
mov r10d, ebp
xor eax, dword [r12 + rbx*4 + 0x800]
pxor xmm0, xmm14
mov ebx, r9d
shr r10d, 0x18
pshufd xmm15, xmm0, 0x55
mov dword [rsp + 0x10], eax
movzx ebx, bh
movzx eax, cl
movd dword [rsp + 0x14], xmm0
mov eax, dword [r12 + rax*4]
pshufd xmm2, xmm0, 0xaa
xor eax, dword [r12 + r10*4 + 0xc00]
movd dword [rsp + 4], xmm15
pshufd xmm1, xmm0, 0xff
movd r8d, xmm2
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, dword [rsp + 8]
movd xmm0, dword [rsp + 0x10]
movd edx, xmm1
mov r10d, ebx
shr r10d, 0x10
movzx r10d, r10b
movzx ebx, bh
xor eax, dword [r12 + r10*4 + 0x800]
mov r10d, ecx
mov dword [rsp + 0x28], eax
movzx eax, r9b
shr ecx, 0x10
shr r10d, 0x18
mov eax, dword [r12 + rax*4]
shr r9d, 0x18
movd xmm3, dword [rsp + 0x28]
xor eax, dword [r12 + r10*4 + 0xc00]
mov r10d, ebp
xor eax, dword [r12 + rbx*4 + 0x400]
shr r10d, 0x10
movzx ebx, r10b
punpckldq xmm0, xmm3
xor eax, dword [r12 + rbx*4 + 0x800]
mov ebx, ebp
mov dword [rsp + 0x30], eax
movzx eax, byte [rsp + 8]
movzx ebp, bh
movd xmm15, dword [rsp + 0x30]
mov r10d, dword [r12 + rax*4]
movzx eax, dil
xor r10d, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
mov eax, dword [r12 + rax*4]
mov ecx, r15d
xor r10d, dword [r12 + rbp*4 + 0x400]
xor r10d, dword [r12 + r9*4 + 0x800]
movzx ecx, ch
mov dword [rsp + 8], r10d
mov r10d, dword [rsp + 0xc]
movd xmm4, dword [rsp + 8]
shr r10d, 0x18
punpckldq xmm15, xmm4
xor eax, dword [r12 + r10*4 + 0xc00]
mov r10d, esi
xor eax, dword [r12 + rcx*4 + 0x400]
shr r10d, 0x10
movzx ecx, r10b
mov r10d, edi
punpcklqdq xmm0, xmm15
shr r10d, 0x18
xor eax, dword [r12 + rcx*4 + 0x800]
mov ecx, esi
pxor xmm0, xmm14
mov dword [rsp + 8], eax
movzx ecx, ch
pshufd xmm2, xmm0, 0x55
movd ebp, xmm0
movzx eax, r15b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + r10*4 + 0xc00]
movd dword [rsp + 0x10], xmm2
pshufd xmm1, xmm0, 0xaa
xor eax, dword [r12 + rcx*4 + 0x400]
mov ecx, dword [rsp + 0xc]
pshufd xmm15, xmm0, 0xff
movd r9d, xmm1
movd ebx, xmm15
mov r10d, ecx
shr r10d, 0x10
movzx ecx, ch
movzx r10d, r10b
xor eax, dword [r12 + r10*4 + 0x800]
mov r10d, r15d
shr r10d, 0x18
mov dword [rsp + 0x28], eax
movzx eax, sil
shr esi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + r10*4 + 0xc00]
mov r10d, edi
xor eax, dword [r12 + rcx*4 + 0x400]
shr r10d, 0x10
movzx ecx, r10b
movd xmm3, dword [rsp + 0x28]
movd xmm0, dword [rsp + 8]
punpckldq xmm0, xmm3
xor eax, dword [r12 + rcx*4 + 0x800]
mov ecx, edi
mov dword [rsp + 0x30], eax
movzx edi, ch
movzx eax, byte [rsp + 0xc]
mov ecx, dword [rsp + 0x2c]
movd xmm2, dword [rsp + 0x30]
mov r10d, dword [r12 + rax*4]
movzx eax, r14b
xor r10d, dword [r12 + rsi*4 + 0xc00]
mov esi, r11d
shr r15d, 0x10
xor r10d, dword [r12 + rdi*4 + 0x400]
shr esi, 0x18
mov edi, dword [r12 + rax*4]
movzx eax, ch
movzx r15d, r15b
xor edi, dword [r12 + rsi*4 + 0xc00]
mov esi, r13d
xor edi, dword [r12 + rax*4 + 0x400]
shr esi, 0x10
movzx eax, sil
xor r10d, dword [r12 + r15*4 + 0x800]
mov esi, r14d
xor edi, dword [r12 + rax*4 + 0x800]
mov dword [rsp + 0xc], r10d
movd xmm4, dword [rsp + 0xc]
shr esi, 0x18
punpckldq xmm2, xmm4
mov dword [rsp + 0xc], edi
mov edi, ecx
movzx ecx, cl
punpcklqdq xmm0, xmm2
mov eax, dword [r12 + rcx*4]
mov ecx, r13d
pxor xmm0, xmm13
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
mov ecx, r11d
pshufd xmm1, xmm0, 0x55
shr ecx, 0x10
pshufd xmm2, xmm0, 0xff
movd dword [rsp + 8], xmm1
movd r15d, xmm0
xor eax, dword [r12 + rsi*4 + 0x400]
movzx esi, cl
mov ecx, edi
shr edi, 0x10
movd dword [rsp + 0x28], xmm2
xor eax, dword [r12 + rsi*4 + 0x800]
shr ecx, 0x18
pshufd xmm15, xmm0, 0xaa
mov dword [rsp + 0x2c], eax
movzx eax, r13b
shr r13d, 0x18
movd r10d, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx esi, ch
mov ecx, r14d
xor eax, dword [r12 + rsi*4 + 0x400]
shr ecx, 0x10
movzx esi, cl
mov ecx, r14d
xor eax, dword [r12 + rsi*4 + 0x800]
movzx r14d, dil
movzx esi, ch
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + r11*4]
mov ecx, edx
shr ecx, 0x18
xor eax, dword [r12 + r13*4 + 0xc00]
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r14*4 + 0x800]
movd xmm0, dword [rsp + 0xc]
mov dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0x14]
movd xmm3, dword [rsp + 0x2c]
punpckldq xmm0, xmm3
movd xmm4, dword [rsp + 0x34]
movd xmm1, dword [rsp + 0x30]
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
pxor xmm0, xmm13
movd r13d, xmm0
mov ecx, dword [rsp + 4]
pshufd xmm15, xmm0, 0x55
pshufd xmm2, xmm0, 0xaa
pshufd xmm1, xmm0, 0xff
movd r14d, xmm15
movd esi, xmm2
movd r11d, xmm1
movzx edi, ch
mov ecx, r8d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, dword [rsp + 0x14]
mov dword [rsp + 0xc], eax
shr ecx, 0x18
movzx eax, byte [rsp + 4]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movzx edi, ch
mov ecx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
shr ecx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, ch
mov ecx, ebx
shr ecx, 0x18
mov dword [rsp + 0x14], eax
mov eax, dword [r12 + rdx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
xor eax, dword [r12 + rdi*4 + 0x400]
mov r8d, dword [rsp + 4]
movd xmm0, dword [rsp + 0xc]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdx*4 + 0x800]
movd xmm3, dword [rsp + 0x2c]
mov dword [rsp + 4], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
punpckldq xmm0, xmm3
mov ecx, dword [rsp + 0x10]
movd xmm4, dword [rsp + 4]
movzx edi, ch
mov ecx, r9d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm15, dword [rsp + 0x14]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, ebp
punpckldq xmm15, xmm4
mov dword [rsp + 0xc], eax
movzx eax, byte [rsp + 0x10]
shr ecx, 0x18
punpcklqdq xmm0, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
pxor xmm0, xmm13
movzx edi, ch
mov ecx, ebx
pshufd xmm2, xmm0, 0x55
pshufd xmm1, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movd dword [rsp + 0x14], xmm0
movd r8d, xmm1
pshufd xmm15, xmm0, 0xff
movzx edi, cl
mov ecx, dword [rsp + 0x10]
movd dword [rsp + 4], xmm2
movd edx, xmm15
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ecx
mov dword [rsp + 0x2c], eax
movzx eax, r9b
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr r9d, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
xor eax, dword [r12 + rbp*4 + 0x400]
xor eax, dword [r12 + r9*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, r15b
mov edi, dword [rsp + 0x28]
mov ecx, dword [rsp + 8]
shr edi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r10d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm2, dword [rsp + 0x10]
movzx edi, cl
mov ecx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm3, dword [rsp + 0x2c]
mov dword [rsp + 0x10], eax
movzx eax, byte [rsp + 8]
shr ecx, 0x18
movd xmm0, dword [rsp + 0xc]
punpckldq xmm0, xmm3
movd xmm4, dword [rsp + 0x30]
mov eax, dword [r12 + rax*4]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
pxor xmm0, xmm13
movzx edi, ch
mov ecx, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
pshufd xmm1, xmm0, 0x55
movd ebp, xmm0
movd dword [rsp + 0xc], xmm1
pshufd xmm15, xmm0, 0xaa
pshufd xmm2, xmm0, 0xff
mov edi, ecx
shr edi, 0x10
movd r9d, xmm15
movd ebx, xmm2
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x28], eax
shr edi, 0x18
movzx eax, r10b
shr r10d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
movd xmm1, dword [rsp + 0x2c]
movzx edi, ch
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r10*4 + 0xc00]
shr ecx, 0x10
movzx r10d, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
mov ecx, r14d
xor eax, dword [r12 + r10*4 + 0x800]
shr edi, 0x18
mov dword [rsp + 8], eax
movzx eax, r13b
movd xmm4, dword [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
shr ecx, 0x10
movd xmm0, dword [rsp + 0x10]
movd xmm3, dword [rsp + 0x28]
punpckldq xmm1, xmm4
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
shr ecx, 0x18
movzx eax, r14b
punpckldq xmm0, xmm3
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
punpcklqdq xmm0, xmm1
movzx edi, ch
mov ecx, r11d
pxor xmm0, xmm6
shr ecx, 0x10
pshufd xmm15, xmm0, 0x55
pshufd xmm1, xmm0, 0xff
movd r15d, xmm0
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r14d
pshufd xmm2, xmm0, 0xaa
movd dword [rsp + 8], xmm15
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
movd r10d, xmm2
movd dword [rsp + 0x28], xmm1
mov dword [rsp + 0x2c], eax
movzx eax, sil
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx edi, ch
mov ecx, r13d
movd xmm0, dword [rsp + 0x10]
punpckldq xmm0, xmm3
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, r13d
shr esi, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
shr r14d, 0x10
mov edi, edx
mov dword [rsp + 0x30], eax
movzx r13d, r14b
mov eax, dword [r12 + r11*4]
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
movd xmm15, dword [rsp + 0x30]
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0x14]
movd xmm4, dword [rsp + 0x34]
punpckldq xmm15, xmm4
punpcklqdq xmm0, xmm15
pxor xmm0, xmm6
pshufd xmm2, xmm0, 0x55
movd r13d, xmm0
mov eax, dword [r12 + rax*4]
movd r14d, xmm2
xor eax, dword [r12 + rdi*4 + 0xc00]
mov ecx, dword [rsp + 4]
pshufd xmm1, xmm0, 0xaa
pshufd xmm15, xmm0, 0xff
movd esi, xmm1
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd r11d, xmm15
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, dword [rsp + 0x14]
mov dword [rsp + 0x10], eax
shr ecx, 0x18
movzx eax, byte [rsp + 4]
movd xmm0, dword [rsp + 0x10]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movzx edi, ch
mov ecx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
movd xmm3, dword [rsp + 0x2c]
shr ecx, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
punpckldq xmm0, xmm3
mov ecx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x14], eax
movzx edi, ch
mov eax, dword [r12 + rdx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov ecx, ebx
shr ecx, 0x18
mov r8d, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x400]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdx*4 + 0x800]
movd xmm2, dword [rsp + 0x14]
mov dword [rsp + 4], eax
movzx eax, bpl
movd xmm4, dword [rsp + 4]
mov eax, dword [r12 + rax*4]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
pxor xmm0, xmm6
xor eax, dword [r12 + rcx*4 + 0xc00]
pshufd xmm1, xmm0, 0x55
movd dword [rsp + 0x10], xmm0
movd dword [rsp + 4], xmm1
mov ecx, dword [rsp + 0xc]
pshufd xmm15, xmm0, 0xaa
pshufd xmm2, xmm0, 0xff
movd r8d, xmm15
movd edx, xmm2
movzx edi, ch
mov ecx, r9d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, ebp
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x14], eax
movzx eax, byte [rsp + 0xc]
movd xmm0, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
movzx edi, ch
mov ecx, ebx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ecx
mov dword [rsp + 0x2c], eax
shr edi, 0x18
movzx eax, r9b
shr r9d, 0x18
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr ecx, 0x10
punpckldq xmm0, xmm3
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 0x28]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
movd xmm1, dword [rsp + 0xc]
shr edi, 0x18
xor eax, dword [r12 + rbp*4 + 0x400]
xor eax, dword [r12 + r9*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, r15b
movd xmm4, dword [rsp + 0x30]
mov ecx, dword [rsp + 8]
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
pxor xmm0, xmm6
pshufd xmm15, xmm0, 0x55
movzx edi, ch
mov ecx, r10d
movd ebp, xmm0
movd dword [rsp + 0xc], xmm15
shr ecx, 0x10
pshufd xmm2, xmm0, 0xaa
pshufd xmm1, xmm0, 0xff
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
movd r9d, xmm2
movd ebx, xmm1
mov ecx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x14], eax
movzx eax, byte [rsp + 8]
movd xmm0, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
movzx edi, ch
mov ecx, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x28], eax
shr edi, 0x18
movzx eax, r10b
shr r10d, 0x18
movd xmm3, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
punpckldq xmm0, xmm3
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, ch
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
shr ecx, 0x10
movzx r10d, cl
shr edi, 0x18
mov ecx, r14d
movd xmm15, dword [rsp + 0x2c]
xor eax, dword [r12 + r10*4 + 0x800]
mov dword [rsp + 8], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
shr ecx, 0x10
movd xmm4, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r13d
punpckldq xmm15, xmm4
shr ecx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r14b
punpcklqdq xmm0, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
pxor xmm0, xmm7
movzx edi, ch
mov ecx, r11d
pshufd xmm2, xmm0, 0x55
pshufd xmm15, xmm0, 0xff
shr ecx, 0x10
movd dword [rsp + 8], xmm2
movd r15d, xmm0
pshufd xmm1, xmm0, 0xaa
movd r10d, xmm1
movd dword [rsp + 0x14], xmm15
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r14d
shr ecx, 0x18
shr r14d, 0x10
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm0, dword [rsp + 0x28]
mov dword [rsp + 0x2c], eax
movzx eax, sil
shr esi, 0x18
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx edi, ch
mov ecx, r13d
punpckldq xmm0, xmm3
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r13d
movzx r13d, r14b
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, edx
mov dword [rsp + 0x30], eax
shr edi, 0x18
mov eax, dword [r12 + r11*4]
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 4]
movzx eax, byte [rsp + 0x10]
movd xmm4, dword [rsp + 0x34]
movd xmm2, dword [rsp + 0x30]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
pxor xmm0, xmm7
movzx edi, cl
mov ecx, dword [rsp + 0x10]
movd r13d, xmm0
pshufd xmm1, xmm0, 0x55
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
pshufd xmm15, xmm0, 0xaa
pshufd xmm2, xmm0, 0xff
shr ecx, 0x18
movd r14d, xmm1
movd esi, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movd r11d, xmm2
movzx edi, ch
mov ecx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
shr ecx, 0x18
movd xmm0, dword [rsp + 0x28]
movd xmm3, dword [rsp + 0x2c]
punpckldq xmm0, xmm3
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, ch
mov ecx, ebx
shr ecx, 0x18
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0xc]
movd xmm4, dword [rsp + 4]
movzx edi, ch
mov ecx, r9d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm1, dword [rsp + 0x10]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, ebp
punpckldq xmm1, xmm4
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ecx, 0x18
punpcklqdq xmm0, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
pxor xmm0, xmm7
movzx edi, ch
mov ecx, ebx
pshufd xmm2, xmm0, 0xaa
pshufd xmm1, xmm0, 0xff
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
pshufd xmm15, xmm0, 0x55
movd dword [rsp + 0x10], xmm0
movd r8d, xmm2
movzx edi, cl
mov ecx, dword [rsp + 0xc]
movd dword [rsp + 4], xmm15
movd edx, xmm1
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ecx
mov dword [rsp + 0x2c], eax
movzx eax, r9b
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr r9d, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
shr ecx, 0x10
movd xmm0, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
movd xmm3, dword [rsp + 0x2c]
shr edi, 0x10
movzx edi, dil
punpckldq xmm0, xmm3
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 0x14]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
xor eax, dword [r12 + rbp*4 + 0x400]
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r9*4 + 0x800]
shr edi, 0x18
mov dword [rsp + 0x30], eax
movzx eax, r15b
movd xmm15, dword [rsp + 0xc]
movd xmm4, dword [rsp + 0x30]
punpckldq xmm15, xmm4
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r10d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm0, xmm15
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r15d
pxor xmm0, xmm7
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 8]
shr ecx, 0x18
pshufd xmm2, xmm0, 0x55
movd ebp, xmm0
movd dword [rsp + 0xc], xmm2
pshufd xmm1, xmm0, 0xaa
pshufd xmm15, xmm0, 0xff
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
movd r9d, xmm1
movzx edi, ch
mov ecx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
movd ebx, xmm15
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x14], eax
movzx eax, r10b
shr r10d, 0x18
mov eax, dword [r12 + rax*4]
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm0, dword [rsp + 0x28]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, ch
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
shr ecx, 0x10
movzx r10d, cl
shr edi, 0x18
mov ecx, r14d
movd xmm2, dword [rsp + 0x2c]
xor eax, dword [r12 + r10*4 + 0x800]
movd xmm3, dword [rsp + 0x14]
mov dword [rsp + 8], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm4, dword [rsp + 8]
punpckldq xmm0, xmm3
movzx edi, cl
mov ecx, r13d
shr ecx, 0x18
punpckldq xmm2, xmm4
xor eax, dword [r12 + rdi*4 + 0x800]
punpcklqdq xmm0, xmm2
mov dword [rsp + 0x28], eax
movzx eax, r14b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
pxor xmm0, xmm5
movzx edi, ch
mov ecx, r11d
pshufd xmm1, xmm0, 0x55
shr ecx, 0x10
pshufd xmm2, xmm0, 0xff
movd dword [rsp + 8], xmm1
movd r15d, xmm0
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r14d
movd dword [rsp + 0x14], xmm2
pshufd xmm15, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
movd r10d, xmm15
mov dword [rsp + 0x2c], eax
movzx eax, sil
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx edi, ch
mov ecx, r13d
movzx r11d, r11b
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
shr esi, 0x18
movzx edi, cl
mov ecx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
shr r14d, 0x10
mov edi, edx
movzx r13d, r14b
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + r11*4]
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov ecx, dword [rsp + 4]
mov dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0x10]
movd xmm0, dword [rsp + 0x28]
movd xmm3, dword [rsp + 0x2c]
movd xmm4, dword [rsp + 0x34]
punpckldq xmm0, xmm3
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm1, dword [rsp + 0x30]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, dword [rsp + 0x10]
punpckldq xmm1, xmm4
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
shr ecx, 0x18
punpcklqdq xmm0, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
pxor xmm0, xmm5
movzx edi, ch
mov ecx, edx
movd r13d, xmm0
pshufd xmm2, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
pshufd xmm15, xmm0, 0x55
pshufd xmm1, xmm0, 0xff
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
movd r14d, xmm15
shr ecx, 0x18
mov eax, dword [r12 + rax*4]
movd esi, xmm2
movd r11d, xmm1
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, ch
mov ecx, ebx
shr ecx, 0x18
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0xc]
movd xmm0, dword [rsp + 0x28]
movzx edi, ch
mov ecx, r9d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm3, dword [rsp + 0x2c]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, ebp
punpckldq xmm0, xmm3
movd xmm4, dword [rsp + 4]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ecx, 0x18
movd xmm15, dword [rsp + 0x10]
mov eax, dword [r12 + rax*4]
punpckldq xmm15, xmm4
punpcklqdq xmm0, xmm15
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
pxor xmm0, xmm5
movzx edi, ch
mov ecx, ebx
pshufd xmm2, xmm0, 0x55
pshufd xmm1, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
pshufd xmm15, xmm0, 0xff
movd r8d, xmm1
movd dword [rsp + 0x10], xmm0
movzx edi, cl
mov ecx, dword [rsp + 0xc]
movd dword [rsp + 4], xmm2
movd xmm0, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x800]
movd edx, xmm15
mov edi, ecx
mov dword [rsp + 0x2c], eax
shr edi, 0x18
movzx eax, r9b
shr ecx, 0x10
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
shr r9d, 0x18
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movd xmm2, dword [rsp + 0xc]
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
xor eax, dword [r12 + rbp*4 + 0x400]
xor eax, dword [r12 + r9*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, r15b
movd xmm4, dword [rsp + 0x30]
movd xmm3, dword [rsp + 0x2c]
punpckldq xmm2, xmm4
punpckldq xmm0, xmm3
mov edi, dword [rsp + 0x14]
mov ecx, dword [rsp + 8]
punpcklqdq xmm0, xmm2
shr edi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
pxor xmm0, xmm5
pshufd xmm1, xmm0, 0x55
movzx edi, ch
mov ecx, r10d
movd ebp, xmm0
movd dword [rsp + 0xc], xmm1
shr ecx, 0x10
pshufd xmm15, xmm0, 0xaa
pshufd xmm2, xmm0, 0xff
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
movd r9d, xmm15
movd ebx, xmm2
mov ecx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 8]
movd xmm0, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
movzx edi, ch
mov ecx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x14], eax
shr edi, 0x18
movzx eax, r10b
shr r10d, 0x18
movd xmm3, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
punpckldq xmm0, xmm3
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
movd xmm1, dword [rsp + 0x2c]
movzx edi, ch
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r10*4 + 0xc00]
shr ecx, 0x10
movzx r10d, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
mov ecx, r14d
xor eax, dword [r12 + r10*4 + 0x800]
mov dword [rsp + 8], eax
movd xmm4, dword [rsp + 8]
shr edi, 0x18
movzx eax, r13b
punpckldq xmm1, xmm4
punpcklqdq xmm0, xmm1
pxor xmm0, xmm8
pshufd xmm15, xmm0, 0x55
pshufd xmm1, xmm0, 0xff
movd r15d, xmm0
movd dword [rsp + 8], xmm15
mov eax, dword [r12 + rax*4]
pshufd xmm2, xmm0, 0xaa
movd dword [rsp + 0x14], xmm1
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
movd r10d, xmm2
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
shr ecx, 0x18
movzx eax, r14b
movd xmm0, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
movzx edi, ch
mov ecx, r11d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r14d
shr r14d, 0x10
mov dword [rsp + 0x2c], eax
shr ecx, 0x18
movzx eax, sil
shr esi, 0x18
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx edi, ch
mov ecx, r13d
punpckldq xmm0, xmm3
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r13d
movzx r13d, r14b
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, edx
mov dword [rsp + 0x30], eax
shr edi, 0x18
mov eax, dword [r12 + r11*4]
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 4]
movzx eax, byte [rsp + 0x10]
movd xmm4, dword [rsp + 0x34]
movd xmm15, dword [rsp + 0x30]
punpckldq xmm15, xmm4
punpcklqdq xmm0, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
pxor xmm0, xmm8
movzx edi, cl
pshufd xmm2, xmm0, 0x55
movd r13d, xmm0
pshufd xmm1, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
movd r14d, xmm2
movd esi, xmm1
mov ecx, dword [rsp + 0x10]
pshufd xmm15, xmm0, 0xff
movd xmm0, dword [rsp + 0x28]
shr ecx, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movd r11d, xmm15
movzx edi, ch
mov ecx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r8b
movzx edi, dh
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
movzx edx, dl
mov ecx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
movd xmm3, dword [rsp + 0x2c]
punpckldq xmm0, xmm3
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
movzx edi, ch
mov ecx, ebx
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr ecx, 0x18
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm2, dword [rsp + 0x10]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, bpl
movd xmm4, dword [rsp + 4]
mov eax, dword [r12 + rax*4]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0xc]
pxor xmm0, xmm8
pshufd xmm1, xmm0, 0x55
movd dword [rsp + 0x10], xmm0
pshufd xmm15, xmm0, 0xaa
pshufd xmm2, xmm0, 0xff
movzx edi, ch
mov ecx, r9d
movd dword [rsp + 4], xmm1
movd r8d, xmm15
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movd edx, xmm2
movzx edi, cl
mov ecx, ebp
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
movd xmm0, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
movzx edi, ch
mov ecx, ebx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ecx
mov dword [rsp + 0x2c], eax
shr edi, 0x18
movzx eax, r9b
shr r9d, 0x18
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr ecx, 0x10
punpckldq xmm0, xmm3
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 0x14]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
movzx r9d, cl
xor eax, dword [r12 + rbp*4 + 0x400]
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r9*4 + 0x800]
shr edi, 0x18
mov dword [rsp + 0x30], eax
movzx eax, r15b
movd xmm1, dword [rsp + 0xc]
movd xmm4, dword [rsp + 0x30]
punpckldq xmm1, xmm4
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r10d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm0, xmm1
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r15d
pxor xmm0, xmm8
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 8]
shr ecx, 0x18
movd ebp, xmm0
pshufd xmm2, xmm0, 0xaa
pshufd xmm15, xmm0, 0x55
pshufd xmm1, xmm0, 0xff
movd r9d, xmm2
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
movd dword [rsp + 0xc], xmm15
movd ebx, xmm1
movzx edi, ch
xor eax, dword [r12 + rdi*4 + 0x400]
mov ecx, dword [rsp + 0x14]
mov edi, ecx
shr edi, 0x10
movd xmm0, dword [rsp + 0x28]
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x14], eax
movzx eax, r10b
shr r10d, 0x18
mov eax, dword [r12 + rax*4]
movd xmm3, dword [rsp + 0x14]
shr edi, 0x18
punpckldq xmm0, xmm3
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
movzx edi, ch
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r10*4 + 0xc00]
shr ecx, 0x10
movzx r10d, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
xor eax, dword [r12 + r10*4 + 0x800]
mov ecx, r14d
mov dword [rsp + 8], eax
shr edi, 0x18
movzx eax, r13b
movd xmm4, dword [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm15, dword [rsp + 0x2c]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r13d
punpckldq xmm15, xmm4
shr ecx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r14b
punpcklqdq xmm0, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
pxor xmm0, xmm9
movzx edi, ch
mov ecx, r11d
pshufd xmm2, xmm0, 0x55
movd r15d, xmm0
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
pshufd xmm15, xmm0, 0xff
movd dword [rsp + 8], xmm2
pshufd xmm1, xmm0, 0xaa
movzx edi, cl
mov ecx, r14d
movd dword [rsp + 0x14], xmm15
movd r10d, xmm1
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, sil
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx edi, ch
mov ecx, r13d
movd xmm0, dword [rsp + 0x28]
movd xmm3, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
shr esi, 0x18
mov edi, edx
punpckldq xmm0, xmm3
shr r14d, 0x10
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + r11*4]
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx r13d, r14b
movzx esi, ch
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0x10]
movd xmm4, dword [rsp + 0x34]
movd xmm2, dword [rsp + 0x30]
mov eax, dword [r12 + rax*4]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, dword [rsp + 0x10]
pxor xmm0, xmm9
movd r13d, xmm0
pshufd xmm1, xmm0, 0x55
pshufd xmm2, xmm0, 0xff
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
shr ecx, 0x18
pshufd xmm15, xmm0, 0xaa
movd r14d, xmm1
movd esi, xmm15
movd r11d, xmm2
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movzx edi, ch
mov ecx, edx
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
shr ecx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
xor eax, dword [r12 + rdi*4 + 0x400]
mov ecx, dword [rsp + 0x10]
movd xmm0, dword [rsp + 0x28]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
movd xmm3, dword [rsp + 0x2c]
punpckldq xmm0, xmm3
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
movzx edi, ch
mov ecx, ebx
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr ecx, 0x18
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm1, dword [rsp + 0x10]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0xc]
movd xmm4, dword [rsp + 4]
movzx edi, ch
mov ecx, r9d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm1, xmm4
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, ebp
punpcklqdq xmm0, xmm1
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ecx, 0x18
pxor xmm0, xmm9
pshufd xmm15, xmm0, 0x55
movd dword [rsp + 0x10], xmm0
pshufd xmm2, xmm0, 0xaa
pshufd xmm1, xmm0, 0xff
mov eax, dword [r12 + rax*4]
movd dword [rsp + 4], xmm15
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
movd r8d, xmm2
movzx edi, ch
mov ecx, ebx
movd edx, xmm1
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ecx
mov dword [rsp + 0x2c], eax
movzx eax, r9b
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr r9d, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r9*4 + 0xc00]
mov edi, dword [rsp + 0x14]
movzx r9d, cl
shr edi, 0x18
xor eax, dword [r12 + rbp*4 + 0x400]
mov ecx, dword [rsp + 8]
xor eax, dword [r12 + r9*4 + 0x800]
movd xmm0, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
movzx eax, r15b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r10d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm3, dword [rsp + 0x2c]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r15d
movd xmm4, dword [rsp + 0x30]
punpckldq xmm0, xmm3
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 8]
shr ecx, 0x18
movd xmm15, dword [rsp + 0xc]
mov eax, dword [r12 + rax*4]
punpckldq xmm15, xmm4
punpcklqdq xmm0, xmm15
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r10d
pxor xmm0, xmm9
movzx edi, ch
mov ecx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
pshufd xmm2, xmm0, 0x55
movd ebp, xmm0
movd dword [rsp + 0xc], xmm2
pshufd xmm1, xmm0, 0xaa
pshufd xmm15, xmm0, 0xff
mov edi, ecx
shr edi, 0x10
movd r9d, xmm1
movd ebx, xmm15
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 8]
mov dword [rsp + 0x14], eax
shr edi, 0x18
movzx eax, r10b
shr r10d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
movzx ecx, cl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r15d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rcx*4]
mov ecx, r15d
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, ch
xor eax, dword [r12 + rdi*4 + 0x400]
mov ecx, dword [rsp + 8]
mov edi, r11d
shr ecx, 0x10
movzx r10d, cl
shr edi, 0x18
mov ecx, r14d
movd xmm0, dword [rsp + 0x28]
xor eax, dword [r12 + r10*4 + 0x800]
movd xmm2, dword [rsp + 0x2c]
mov dword [rsp + 8], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, esi
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm4, dword [rsp + 8]
movzx edi, cl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ecx, r13d
movd xmm3, dword [rsp + 0x14]
punpckldq xmm2, xmm4
shr ecx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r14b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, esi
punpckldq xmm0, xmm3
movzx edi, ch
mov ecx, r11d
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm0, xmm2
shr ecx, 0x10
movzx edi, cl
mov ecx, r14d
shr r14d, 0x10
pxor xmm0, xmm10
xor eax, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
pshufd xmm1, xmm0, 0x55
pshufd xmm2, xmm0, 0xff
mov dword [rsp + 0x2c], eax
movzx eax, sil
shr esi, 0x18
movd r15d, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r11d
movzx r11d, r11b
movzx edi, ch
mov ecx, r13d
pshufd xmm15, xmm0, 0xaa
movd dword [rsp + 8], xmm1
shr ecx, 0x10
movd dword [rsp + 0x14], xmm2
movd r10d, xmm15
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, r13d
movzx r13d, r14b
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + r11*4]
mov edi, edx
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, ch
movd xmm1, dword [rsp + 0x30]
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x34], eax
movd xmm4, dword [rsp + 0x34]
movd xmm0, dword [rsp + 0x28]
punpckldq xmm1, xmm4
mov ecx, dword [rsp + 4]
movzx eax, byte [rsp + 0x10]
movd xmm3, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm1
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, ch
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, dword [rsp + 0x10]
pxor xmm0, xmm10
pshufd xmm15, xmm0, 0x55
movd r13d, xmm0
pshufd xmm2, xmm0, 0xaa
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
shr ecx, 0x18
movd esi, xmm2
movd r14d, xmm15
pshufd xmm1, xmm0, 0xff
movd xmm0, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, r8d
movd r11d, xmm1
movzx edi, ch
mov ecx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ecx, 0x10
movzx edi, cl
mov ecx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, dh
movzx edx, dl
mov dword [rsp + 0x2c], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
shr ecx, 0x18
xor eax, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, ch
mov ecx, ebx
shr ecx, 0x18
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr r8d, 0x10
movzx edx, r8b
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, bpl
movd xmm4, dword [rsp + 4]
movd xmm15, dword [rsp + 0x10]
punpckldq xmm15, xmm4
movd xmm3, dword [rsp + 0x2c]
mov edx, dword [r12 + rax*4]
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm15
mov eax, dword [rsp + 0xc]
xor edx, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
pxor xmm0, xmm10
shr ecx, 0x10
pshufd xmm2, xmm0, 0x55
pshufd xmm1, xmm0, 0xaa
movd dword [rsp + 0x10], xmm0
movzx edi, ah
pshufd xmm15, xmm0, 0xff
movd dword [rsp + 0x28], xmm2
movd r8d, xmm1
xor edx, dword [r12 + rdi*4 + 0x400]
movzx edi, cl
mov ecx, ebp
movd dword [rsp + 4], xmm15
xor edx, dword [r12 + rdi*4 + 0x800]
shr ecx, 0x18
mov dword [rsp + 0xc], edx
movzx edx, al
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + rcx*4 + 0xc00]
mov ecx, r9d
movzx edi, ch
mov ecx, ebx
xor edx, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0xc]
shr ecx, 0x10
movzx edi, cl
mov ecx, eax
shr eax, 0x10
xor edx, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], edx
shr ecx, 0x18
movzx edx, r9b
movzx edi, bh
mov edx, dword [r12 + rdx*4]
shr r9d, 0x18
movzx ebx, bl
xor edx, dword [r12 + rcx*4 + 0xc00]
mov ecx, ebp
xor edx, dword [r12 + rdi*4 + 0x400]
movd xmm3, dword [rsp + 0x2c]
shr ecx, 0x10
movzx edi, cl
mov ecx, ebp
punpckldq xmm0, xmm3
movzx ebp, ch
xor edx, dword [r12 + rdi*4 + 0x800]
movzx edi, r15b
mov dword [rsp + 0x30], edx
mov edx, dword [r12 + rbx*4]
xor edx, dword [r12 + r9*4 + 0xc00]
movzx r9d, al
xor edx, dword [r12 + rbp*4 + 0x400]
xor edx, dword [r12 + r9*4 + 0x800]
mov r9d, r10d
mov dword [rsp + 0x34], edx
movd xmm2, dword [rsp + 0x30]
movd xmm4, dword [rsp + 0x34]
punpckldq xmm2, xmm4
punpcklqdq xmm0, xmm2
pxor xmm0, xmm10
pshufd xmm1, xmm0, 0x55
pshufd xmm15, xmm0, 0xaa
movd dword [rsp + 0xc], xmm0
pshufd xmm2, xmm0, 0xff
movd dword [rsp + 0x2c], xmm1
movd dword [rsp + 0x30], xmm15
movd dword [rsp + 0x34], xmm2
mov eax, dword [rsp + 0x14]
mov ecx, dword [rsp + 8]
mov ebx, eax
shr ebx, 0x18
shr r9d, 0x10
mov edx, dword [r12 + rdi*4]
movzx ebp, ch
movzx edi, r9b
xor edx, dword [r12 + rbx*4 + 0xc00]
mov r9d, eax
xor edx, dword [r12 + rbp*4 + 0x400]
mov ebx, dword [r12 + rdi*4 + 0x800]
mov ebp, r15d
shr r9d, 0x10
xor ebx, edx
shr ebp, 0x18
movzx edx, cl
mov dword [rsp + 8], ebx
mov ebx, r10d
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + rbp*4 + 0xc00]
movzx ebp, r9b
movzx edi, bh
mov ebx, dword [r12 + rbp*4 + 0x800]
mov r9d, r15d
xor edx, dword [r12 + rdi*4 + 0x400]
mov edi, ecx
shr r9d, 0x10
shr ecx, 0x18
movd xmm0, dword [rsp + 8]
xor ebx, edx
movzx edx, r10b
mov dword [rsp + 0x14], ebx
shr edi, 0x10
movzx ebx, ah
mov ebp, dword [r12 + rdx*4]
movzx edx, r9b
shr r10d, 0x18
movzx eax, al
xor ebp, dword [r12 + rcx*4 + 0xc00]
mov ecx, dword [r12 + rdx*4 + 0x800]
xor ebp, dword [r12 + rbx*4 + 0x400]
mov ebx, r15d
movzx r15d, dil
movd xmm3, dword [rsp + 0x14]
xor ecx, ebp
movzx edx, bh
mov ebp, dword [r12 + rax*4]
movzx eax, r13b
xor ebp, dword [r12 + r10*4 + 0xc00]
mov dword [rsp + 0x38], ecx
punpckldq xmm0, xmm3
mov r10d, dword [r12 + r15*4 + 0x800]
mov r15d, esi
xor ebp, dword [r12 + rdx*4 + 0x400]
xor r10d, ebp
mov ebp, r11d
shr r15d, 0x10
mov edx, dword [r12 + rax*4]
mov eax, r14d
shr ebp, 0x18
movzx edi, ah
mov dword [rsp + 0x3c], r10d
movd xmm1, dword [rsp + 0x38]
xor edx, dword [r12 + rbp*4 + 0xc00]
movzx ebp, r15b
xor edx, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
mov eax, dword [r12 + rbp*4 + 0x800]
shr edi, 0x18
movd xmm4, dword [rsp + 0x3c]
xor eax, edx
movzx edx, r14b
mov dword [rsp + 8], eax
mov eax, esi
punpckldq xmm1, xmm4
mov r15d, dword [r12 + rdx*4]
mov edx, r11d
movzx ebp, ah
punpcklqdq xmm0, xmm1
shr edx, 0x10
xor r15d, dword [r12 + rdi*4 + 0xc00]
pxor xmm0, xmm11
xor r15d, dword [r12 + rbp*4 + 0x400]
movzx edi, dl
movd r10d, xmm0
pshufd xmm2, xmm0, 0xaa
mov ebp, r14d
mov eax, dword [r12 + rdi*4 + 0x800]
shr ebp, 0x18
pshufd xmm15, xmm0, 0x55
pshufd xmm1, xmm0, 0xff
movd ebx, xmm15
movd xmm0, dword [rsp + 8]
movd ecx, xmm1
movd r9d, xmm2
xor eax, r15d
movzx r15d, sil
mov dword [rsp + 0x14], eax
mov eax, r11d
mov edx, dword [r12 + r15*4]
movzx edi, ah
mov r15d, r13d
movzx r11d, r11b
xor edx, dword [r12 + rbp*4 + 0xc00]
xor edx, dword [r12 + rdi*4 + 0x400]
shr r15d, 0x10
movzx ebp, r15b
mov eax, dword [r12 + rbp*4 + 0x800]
shr r14d, 0x10
shr esi, 0x18
movd xmm3, dword [rsp + 0x14]
xor eax, edx
mov edx, dword [r12 + r11*4]
xor edx, dword [r12 + rsi*4 + 0xc00]
punpckldq xmm0, xmm3
mov dword [rsp + 0x38], eax
mov eax, r13d
movzx r13d, r14b
movd xmm15, dword [rsp + 0x38]
movzx esi, ah
mov r14d, dword [r12 + r13*4 + 0x800]
mov r13d, r8d
xor edx, dword [r12 + rsi*4 + 0x400]
shr r13d, 0x10
xor r14d, edx
mov edx, dword [rsp + 4]
mov dword [rsp + 0x3c], r14d
mov r14d, dword [rsp + 0x10]
shr edx, 0x18
movd xmm4, dword [rsp + 0x3c]
movzx r15d, r14b
mov ebp, dword [r12 + r15*4]
xor ebp, dword [r12 + rdx*4 + 0xc00]
movzx r15d, r13b
punpckldq xmm15, xmm4
mov edx, dword [rsp + 0x28]
punpcklqdq xmm0, xmm15
movzx eax, dh
pxor xmm0, xmm11
pshufd xmm15, xmm0, 0xff
movd edi, xmm0
pshufd xmm2, xmm0, 0x55
xor ebp, dword [r12 + rax*4 + 0x400]
xor ebp, dword [r12 + r15*4 + 0x800]
mov r15d, edx
pshufd xmm1, xmm0, 0xaa
mov eax, r8d
mov dword [rsp + 0x10], ebp
movzx ebp, dl
mov edx, r14d
movd r11d, xmm2
shr edx, 0x18
mov ebp, dword [r12 + rbp*4]
movd dword [rsp + 8], xmm15
movd esi, xmm1
xor ebp, dword [r12 + rdx*4 + 0xc00]
movzx edx, ah
xor ebp, dword [r12 + rdx*4 + 0x400]
mov edx, dword [rsp + 4]
mov eax, edx
shr eax, 0x10
movzx r13d, al
xor ebp, dword [r12 + r13*4 + 0x800]
mov eax, r15d
mov r13d, r14d
shr r15d, 0x10
mov dword [rsp + 4], ebp
shr eax, 0x18
movzx ebp, r8b
shr r13d, 0x10
mov ebp, dword [r12 + rbp*4]
shr r8d, 0x18
xor ebp, dword [r12 + rax*4 + 0xc00]
movzx eax, dh
movzx edx, dl
xor ebp, dword [r12 + rax*4 + 0x400]
movzx eax, r13b
movd xmm0, dword [rsp + 0x10]
xor ebp, dword [r12 + rax*4 + 0x800]
mov eax, r14d
mov r13d, dword [r12 + rdx*4]
movzx edx, r10b
mov dword [rsp + 0x14], ebp
movzx ebp, ah
mov eax, ecx
xor r13d, dword [r12 + r8*4 + 0xc00]
shr eax, 0x18
movzx r8d, r15b
mov r15d, r10d
xor r13d, dword [r12 + rbp*4 + 0x400]
mov r14d, dword [r12 + r8*4 + 0x800]
mov r8d, dword [r12 + rdx*4]
movzx edx, bh
xor r14d, r13d
xor r8d, dword [r12 + rax*4 + 0xc00]
mov eax, r9d
mov dword [rsp + 0x28], r14d
shr eax, 0x10
xor r8d, dword [r12 + rdx*4 + 0x400]
movzx edx, al
mov eax, r9d
movd xmm2, dword [rsp + 0x14]
xor r8d, dword [r12 + rdx*4 + 0x800]
movzx edx, ah
mov eax, ecx
shr r15d, 0x18
shr eax, 0x10
mov dword [rsp + 0x10], r8d
movzx r8d, bl
movd xmm4, dword [rsp + 0x28]
mov r8d, dword [r12 + r8*4]
xor r8d, dword [r12 + r15*4 + 0xc00]
mov r15d, ebx
shr ebx, 0x10
xor r8d, dword [r12 + rdx*4 + 0x400]
movzx edx, al
movd xmm3, dword [rsp + 4]
movzx eax, ch
xor r8d, dword [r12 + rdx*4 + 0x800]
shr r15d, 0x18
punpckldq xmm2, xmm4
movzx ecx, cl
mov dword [rsp + 0x14], r8d
movzx r8d, r9b
punpckldq xmm0, xmm3
shr r9d, 0x18
mov edx, dword [r12 + r8*4]
mov r8d, r10d
xor edx, dword [r12 + r15*4 + 0xc00]
punpcklqdq xmm0, xmm2
shr r8d, 0x10
xor edx, dword [r12 + rax*4 + 0x400]
pxor xmm0, xmm11
movzx r15d, r8b
pshufd xmm2, xmm0, 0xff
mov r8d, dword [r12 + rcx*4]
movd r14d, xmm0
xor edx, dword [r12 + r15*4 + 0x800]
mov dword [rsp + 0x28], edx
mov edx, r10d
movzx r10d, bl
xor r8d, dword [r12 + r9*4 + 0xc00]
movzx eax, dh
movd dword [rsp + 4], xmm2
pshufd xmm1, xmm0, 0x55
pshufd xmm15, xmm0, 0xaa
xor r8d, dword [r12 + rax*4 + 0x400]
mov eax, dword [rsp + 0xc]
movd ebp, xmm1
movd r13d, xmm15
xor r8d, dword [r12 + r10*4 + 0x800]
mov r10d, dword [rsp + 0x34]
movzx ebx, al
mov dword [rsp + 0x38], r8d
mov r15d, dword [r12 + rbx*4]
mov ebx, dword [rsp + 0x30]
mov r9d, r10d
mov r8d, ebx
mov ecx, dword [rsp + 0x2c]
shr r9d, 0x18
shr r8d, 0x10
movd xmm0, dword [rsp + 0x28]
xor r15d, dword [r12 + r9*4 + 0xc00]
movzx r9d, r8b
mov r8d, r10d
movd xmm4, dword [rsp + 0x38]
movzx edx, ch
shr r8d, 0x10
movd xmm3, dword [rsp + 0x14]
xor r15d, dword [r12 + rdx*4 + 0x400]
mov edx, eax
xor r15d, dword [r12 + r9*4 + 0x800]
punpckldq xmm0, xmm4
movd xmm4, dword [rsp + 0x10]
shr edx, 0x18
mov dword [rsp + 0xc], r15d
mov r15d, ecx
movzx ecx, cl
mov r9d, dword [r12 + rcx*4]
mov ecx, ebx
movzx ebx, bh
punpckldq xmm4, xmm3
xor r9d, dword [r12 + rdx*4 + 0xc00]
movzx edx, r8b
mov r8d, eax
xor r9d, dword [r12 + rbx*4 + 0x400]
mov ebx, r15d
xor r9d, dword [r12 + rdx*4 + 0x800]
shr r8d, 0x10
mov edx, r10d
shr ebx, 0x18
mov dword [rsp + 0x10], r9d
mov r9d, ecx
movzx ecx, cl
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r12 + rbx*4 + 0xc00]
movzx ebx, dh
movzx edx, r8b
xor ecx, dword [r12 + rbx*4 + 0x400]
shr r9d, 0x18
movzx ebx, ah
xor ecx, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 0x14], ecx
mov r9d, r9d
movzx ecx, r10b
punpcklqdq xmm4, xmm0
mov r8d, dword [r12 + rcx*4]
movd xmm1, dword [rsp + 0x14]
pxor xmm4, xmm12
xor r8d, dword [r12 + r9*4 + 0xc00]
shr r15d, 0x10
movzx edx, r15b
mov r10d, r8d
xor r10d, dword [r12 + rbx*4 + 0x400]
mov r15d, esi
movzx r8d, dil
xor r10d, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 0x28], r10d
movd xmm15, dword [rsp + 0x28]
mov edx, r11d
shr r15d, 0x10
mov eax, dword [rsp + 8]
mov r8d, dword [r12 + r8*4]
shr eax, 0x18
punpckldq xmm1, xmm15
xor r8d, dword [r12 + rax*4 + 0xc00]
movzx eax, dh
movzx edx, r15b
movd xmm2, dword [rsp + 0xc]
xor r8d, dword [r12 + rax*4 + 0x400]
mov eax, edi
xor r8d, dword [r12 + rdx*4 + 0x800]
mov edx, esi
mov dword [rsp + 0xc], r8d
shr eax, 0x18
movzx r8d, r11b
movd xmm0, dword [rsp + 0x10]
mov r8d, dword [r12 + r8*4]
xor r8d, dword [r12 + rax*4 + 0xc00]
movzx eax, dh
punpckldq xmm2, xmm0
mov edx, dword [rsp + 8]
xor r8d, dword [r12 + rax*4 + 0x400]
punpcklqdq xmm2, xmm1
mov r15d, edx
shr r15d, 0x10
pxor xmm2, xmm11
pshufd xmm3, xmm2, 0x55
movzx eax, r15b
xor r8d, dword [r12 + rax*4 + 0x800]
mov r15d, r11d
movzx eax, dh
shr r11d, 0x10
mov dword [rsp + 8], r8d
shr r15d, 0x18
movzx r8d, sil
movzx edx, dl
mov r8d, dword [r12 + r8*4]
shr esi, 0x18
movzx r11d, r11b
pshufd xmm1, xmm2, 0xaa
movd r10d, xmm2
movd ebx, xmm3
movd r9d, xmm1
xor r8d, dword [r12 + r15*4 + 0xc00]
mov r15d, edi
xor r8d, dword [r12 + rax*4 + 0x400]
pshufd xmm15, xmm2, 0xff
movd xmm3, dword [rsp + 8]
shr r15d, 0x10
movd xmm1, dword [rsp + 0xc]
movd ecx, xmm15
movzx eax, r15b
xor r8d, dword [r12 + rax*4 + 0x800]
mov eax, edi
mov r15d, dword [rsp + 4]
punpckldq xmm1, xmm3
movzx edi, ah
mov dword [rsp + 0x10], r8d
mov r8d, dword [r12 + rdx*4]
mov eax, ebp
xor r8d, dword [r12 + rsi*4 + 0xc00]
xor r8d, dword [r12 + rdi*4 + 0x400]
movzx esi, r14b
movzx edi, ah
xor r8d, dword [r12 + r11*4 + 0x800]
mov r11d, r13d
mov edx, dword [r12 + rsi*4]
mov eax, r13d
mov dword [rsp + 0x14], r8d
shr r11d, 0x10
mov r8d, r15d
movd xmm0, dword [rsp + 0x14]
shr r8d, 0x18
movzx esi, r11b
movd xmm2, dword [rsp + 0x10]
mov r11d, r15d
xor edx, dword [r12 + r8*4 + 0xc00]
mov r8d, r14d
xor edx, dword [r12 + rdi*4 + 0x400]
shr r8d, 0x18
xor edx, dword [r12 + rsi*4 + 0x800]
movzx esi, ah
mov eax, r15d
mov r15d, r14d
mov dword [rsp + 4], edx
movzx edx, bpl
punpckldq xmm2, xmm0
movd xmm0, dword [rsp + 4]
mov edi, dword [r12 + rdx*4]
xor edi, dword [r12 + r8*4 + 0xc00]
mov r8d, ebp
punpcklqdq xmm1, xmm2
xor edi, dword [r12 + rsi*4 + 0x400]
shr r11d, 0x10
movzx esi, ah
pxor xmm1, xmm12
shr r15d, 0x10
movzx edx, r11b
shr r8d, 0x18
xor edi, dword [r12 + rdx*4 + 0x800]
mov dword [rsp + 8], edi
movzx edi, r13b
movzx edx, r15b
shr r13d, 0x18
mov r11d, dword [r12 + rdi*4]
movzx edi, al
mov eax, r14d
shr ebp, 0x10
xor r11d, dword [r12 + r8*4 + 0xc00]
movzx r8d, r10b
movzx ebp, bpl
xor r11d, dword [r12 + rsi*4 + 0x400]
xor r11d, dword [r12 + rdx*4 + 0x800]
mov edx, dword [r12 + rdi*4]
movzx esi, ah
movzx edi, bh
xor edx, dword [r12 + r13*4 + 0xc00]
mov r15d, dword [r12 + r8*4]
mov dword [rsp + 0xc], r11d
mov r8d, ecx
mov r13d, edx
mov edx, r9d
mov r11d, ecx
shr r8d, 0x10
shr edx, 0x10
shr r11d, 0x18
movzx eax, bl
movd xmm3, dword [rsp + 8]
xor r13d, dword [r12 + rsi*4 + 0x400]
mov esi, r10d
xor r15d, dword [r12 + r11*4 + 0xc00]
movzx r11d, r8b
mov r14d, r13d
movzx r13d, dl
mov edx, r9d
shr esi, 0x18
xor r14d, dword [r12 + rbp*4 + 0x800]
xor r15d, dword [r12 + rdi*4 + 0x400]
movzx ebp, dh
mov edi, ebx
mov dword [rsp + 0x10], r14d
shr edi, 0x18
mov r14d, dword [r12 + rax*4]
movzx eax, ch
movd xmm2, dword [rsp + 0xc]
movzx ecx, cl
shr ebx, 0x10
punpckldq xmm0, xmm3
xor r15d, dword [r12 + r13*4 + 0x800]
xor r14d, dword [r12 + rsi*4 + 0xc00]
mov esi, r10d
movzx ebx, bl
xor r14d, dword [r12 + rbp*4 + 0x400]
mov dword [rsp + 4], r15d
movzx r15d, r9b
shr r9d, 0x18
xor r14d, dword [r12 + r11*4 + 0x800]
movd xmm15, dword [rsp + 0x10]
shr esi, 0x10
mov dword [rsp + 8], r14d
mov r13d, dword [r12 + r15*4]
xor r13d, dword [r12 + rdi*4 + 0xc00]
movzx r14d, sil
punpckldq xmm2, xmm15
xor r13d, dword [r12 + rax*4 + 0x400]
mov eax, r10d
mov edx, dword [r12 + rcx*4]
punpcklqdq xmm0, xmm2
xor edx, dword [r12 + r9*4 + 0xc00]
movzx ebp, ah
mov r8, qword [rsp + 0x18]
pxor xmm0, xmm12
mov r9d, edx
xor r9d, dword [r12 + rbp*4 + 0x400]
xor r13d, dword [r12 + r14*4 + 0x800]
mov r10d, r9d
xor r10d, dword [r12 + rbx*4 + 0x800]
mov dword [rsp + 0xc], r13d
sub r8, 0xffffffffffffff80
mov dword [rsp + 0x10], r10d
movd xmm15, dword [rsp + 0xc]
movd xmm2, dword [rsp + 0x10]
movd xmm3, dword [rsp + 4]
movaps xmmword [r8 - 0x80], xmm4
punpckldq xmm15, xmm2
movd xmm2, dword [rsp + 8]
movaps xmmword [r8 - 0x70], xmm1
punpckldq xmm3, xmm2
punpcklqdq xmm3, xmm15
pxor xmm3, xmm12
movaps xmmword [r8 - 0x60], xmm0
movaps xmmword [r8 - 0x50], xmm3
mov qword [rsp + 0x18], r8
cmp r8, qword [rsp + 0x40]
jne 0x692030
mov rdi, qword [rsp + 0x48]
movdqa xmm1, xmmword [rsp + 0x50]
mov r11, qword [rsp + 0x188]
mov r15, qword [rsp + 0x188]
add r11, 0x40
lea r13, [r15 + rdi*8 + 8]
mov qword [rsp + 0x18], r11
movdqa xmm3, xmmword [rsp + 0x60]
mov qword [rsp + 0x48], r13
movdqa xmm0, xmmword [rsp + 0x70]
movdqa xmm2, xmmword [rsp + 0x80]
nop word [rax + rax]
movd r14d, xmm0
pshufd xmm4, xmm0, 0x55
pshufd xmm15, xmm0, 0xaa
movd dword [rsp + 0x2c], xmm2
pshufd xmm0, xmm0, 0xff
movd esi, xmm4
movd edi, xmm15
movzx ecx, r14b
movd edx, xmm0
mov ecx, dword [r12 + rcx*4]
mov r15d, edi
movd r13d, xmm3
mov eax, edx
shr r15d, 0x10
pshufd xmm4, xmm3, 0x55
movd ebp, xmm1
shr eax, 0x18
pshufd xmm15, xmm3, 0xaa
pshufd xmm3, xmm3, 0xff
xor ecx, dword [r12 + rax*4 + 0xc00]
mov eax, esi
movd dword [rsp + 4], xmm3
movd r10d, xmm4
movd r11d, xmm15
movzx eax, ah
pshufd xmm0, xmm1, 0x55
pshufd xmm4, xmm1, 0xaa
xor ecx, dword [r12 + rax*4 + 0x400]
movzx eax, r15b
mov r15d, r14d
pshufd xmm15, xmm2, 0x55
xor ecx, dword [r12 + rax*4 + 0x800]
mov dword [rsp + 0x10], ecx
shr r15d, 0x18
movzx ecx, sil
mov eax, edi
mov ecx, dword [r12 + rcx*4]
xor ecx, dword [r12 + r15*4 + 0xc00]
mov r15d, edx
movzx eax, ah
shr r15d, 0x10
pshufd xmm3, xmm2, 0xaa
pshufd xmm1, xmm1, 0xff
xor ecx, dword [r12 + rax*4 + 0x400]
movzx eax, r15b
mov r15d, esi
shr esi, 0x10
pshufd xmm2, xmm2, 0xff
xor ecx, dword [r12 + rax*4 + 0x800]
shr r15d, 0x18
movzx eax, dh
movzx edx, dl
mov dword [rsp + 0x28], ecx
movzx ecx, dil
shr edi, 0x18
movd r8d, xmm0
mov ecx, dword [r12 + rcx*4]
movd r9d, xmm4
xor ecx, dword [r12 + r15*4 + 0xc00]
mov r15d, r14d
shr r15d, 0x10
xor ecx, dword [r12 + rax*4 + 0x400]
movd ebx, xmm1
movd dword [rsp + 8], xmm15
movzx eax, r15b
mov r15d, dword [r12 + rdx*4]
movzx edx, r13b
xor r15d, dword [r12 + rdi*4 + 0xc00]
mov edx, dword [r12 + rdx*4]
xor ecx, dword [r12 + rax*4 + 0x800]
movd dword [rsp + 0xc], xmm3
mov eax, dword [rsp + 4]
movd xmm1, dword [rsp + 0x28]
mov dword [rsp + 0x30], ecx
mov ecx, r14d
movzx edi, ch
movzx r14d, sil
movd dword [rsp + 0x14], xmm2
movd xmm4, dword [rsp + 0x30]
shr eax, 0x18
xor r15d, dword [r12 + rdi*4 + 0x400]
xor r15d, dword [r12 + r14*4 + 0x800]
mov edi, eax
mov eax, r10d
xor edx, dword [r12 + rdi*4 + 0xc00]
mov dword [rsp + 0x34], r15d
movzx edi, ah
movd xmm0, dword [rsp + 0x34]
movd xmm15, dword [rsp + 0x10]
mov eax, r13d
shr eax, 0x18
xor edx, dword [r12 + rdi*4 + 0x400]
mov edi, r11d
punpckldq xmm4, xmm0
shr edi, 0x10
movzx edi, dil
punpckldq xmm15, xmm1
punpcklqdq xmm15, xmm4
xor edx, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], edx
mov edi, eax
movzx edx, r10b
mov eax, r11d
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + rdi*4 + 0xc00]
movzx edi, ah
mov eax, r10d
xor edx, dword [r12 + rdi*4 + 0x400]
mov edi, dword [rsp + 4]
shr eax, 0x18
pxor xmm15, xmm14
pshufd xmm3, xmm15, 0x55
movd r14d, xmm15
pshufd xmm2, xmm15, 0xaa
shr edi, 0x10
movzx edi, dil
movd r15d, xmm3
pshufd xmm4, xmm15, 0xff
movd xmm3, dword [rsp + 0x10]
xor edx, dword [r12 + rdi*4 + 0x800]
mov edi, eax
mov eax, dword [rsp + 4]
movd esi, xmm2
mov dword [rsp + 0x28], edx
movzx edx, r11b
movd xmm1, dword [rsp + 0x28]
movd ecx, xmm4
mov edx, dword [r12 + rdx*4]
xor edx, dword [r12 + rdi*4 + 0xc00]
movzx edi, ah
punpckldq xmm3, xmm1
xor edx, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
shr r10d, 0x10
shr edi, 0x10
shr r11d, 0x18
movzx edi, dil
xor edx, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], edx
movzx edx, byte [rsp + 4]
movd xmm15, dword [rsp + 0x30]
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, r10b
movzx edi, dh
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, ebx
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
shr r11d, 0x18
mov dword [rsp + 4], eax
movzx eax, bpl
mov edi, dword [r12 + rax*4]
mov eax, r8d
movd xmm0, dword [rsp + 4]
punpckldq xmm15, xmm0
xor edi, dword [r12 + r11*4 + 0xc00]
punpcklqdq xmm3, xmm15
mov r11d, edi
movzx edi, ah
mov eax, dword [r12 + rdi*4 + 0x400]
pxor xmm3, xmm14
pshufd xmm2, xmm3, 0x55
pshufd xmm4, xmm3, 0xaa
movd dword [rsp + 0x10], xmm2
movd r13d, xmm3
movd r10d, xmm4
pshufd xmm15, xmm3, 0xff
xor eax, r11d
mov r11d, r9d
movd edx, xmm15
shr r11d, 0x10
movzx edi, r11b
mov r11d, ebp
xor eax, dword [r12 + rdi*4 + 0x800]
shr r11d, 0x18
mov dword [rsp + 4], eax
movzx eax, r8b
mov edi, dword [r12 + rax*4]
mov eax, r9d
xor edi, dword [r12 + r11*4 + 0xc00]
movd xmm4, dword [rsp + 4]
mov r11d, edi
movzx edi, ah
mov eax, dword [r12 + rdi*4 + 0x400]
xor eax, r11d
mov r11d, ebx
shr r11d, 0x10
movzx edi, r11b
mov r11d, r8d
shr r8d, 0x10
movzx r8d, r8b
xor eax, dword [r12 + rdi*4 + 0x800]
shr r11d, 0x18
movzx edi, bh
movzx ebx, bl
mov dword [rsp + 0x28], eax
movzx eax, r9b
shr r9d, 0x18
movd xmm1, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, ebp
shr r11d, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, r11b
punpckldq xmm4, xmm1
mov r11d, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx edi, r11b
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movd xmm3, dword [rsp + 0x30]
movzx ebp, bh
mov ebx, dword [rsp + 8]
xor eax, dword [r12 + r9*4 + 0xc00]
mov r9d, dword [rsp + 0x14]
xor eax, dword [r12 + rbp*4 + 0x400]
shr r9d, 0x18
xor eax, dword [r12 + r8*4 + 0x800]
mov dword [rsp + 0x34], eax
mov eax, dword [r12 + rdi*4]
movzx edi, bh
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + r9*4 + 0xc00]
movd xmm0, dword [rsp + 0x34]
mov r9d, ebx
punpckldq xmm3, xmm0
shr r9d, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm4, xmm3
movzx ebx, bh
movzx edi, r9b
pxor xmm4, xmm14
mov r9d, r11d
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
movzx eax, byte [rsp + 8]
shr r9d, 0x18
movd ebp, xmm4
pshufd xmm2, xmm4, 0x55
pshufd xmm3, xmm4, 0xff
pshufd xmm15, xmm4, 0xaa
movd dword [rsp + 4], xmm2
movd dword [rsp + 0x28], xmm3
mov eax, dword [r12 + rax*4]
movd r8d, xmm15
xor eax, dword [r12 + r9*4 + 0xc00]
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, dword [rsp + 0x14]
mov edi, ebx
shr edi, 0x10
movzx r9d, dil
mov edi, dword [rsp + 8]
movd xmm15, dword [rsp + 0x2c]
shr edi, 0x18
xor eax, dword [r12 + r9*4 + 0x800]
mov r9d, r11d
mov dword [rsp + 0x14], eax
shr r9d, 0x10
movzx eax, byte [rsp + 0xc]
movd xmm1, dword [rsp + 0x14]
punpckldq xmm15, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, r9b
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, bl
mov ebx, dword [rsp + 0xc]
movd xmm4, dword [rsp + 0x30]
shr ebx, 0x18
mov r9d, ebx
mov ebx, r11d
mov r11d, dword [rsp + 8]
mov eax, dword [r12 + rax*4]
movzx edi, bh
xor eax, dword [r12 + r9*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x18
shr r11d, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx r9d, r11b
xor eax, dword [r12 + r9*4 + 0x800]
mov dword [rsp + 8], eax
movzx eax, r14b
movd xmm0, dword [rsp + 8]
punpckldq xmm4, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
punpcklqdq xmm15, xmm4
movzx edi, bh
mov ebx, esi
pxor xmm15, xmm14
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
movd dword [rsp + 0x14], xmm15
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
pshufd xmm2, xmm15, 0x55
mov dword [rsp + 0xc], eax
movzx eax, r15b
movd dword [rsp + 8], xmm2
pshufd xmm3, xmm15, 0xaa
pshufd xmm4, xmm15, 0xff
mov eax, dword [r12 + rax*4]
movd r11d, xmm3
movd r9d, xmm4
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movzx edi, bh
mov ebx, ecx
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
shr ebx, 0x18
movzx eax, sil
movzx edi, ch
mov eax, dword [r12 + rax*4]
movzx ecx, cl
shr esi, 0x18
movd xmm3, dword [rsp + 0xc]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
mov ebx, r14d
movd xmm1, dword [rsp + 0x2c]
punpckldq xmm3, xmm1
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, edx
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
xor eax, dword [r12 + rsi*4 + 0xc00]
shr r15d, 0x10
movzx esi, bh
movzx r14d, r15b
xor eax, dword [r12 + rsi*4 + 0x400]
mov ebx, dword [rsp + 0x10]
shr edi, 0x18
xor eax, dword [r12 + r14*4 + 0x800]
movd xmm15, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0x34]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r13d
punpckldq xmm15, xmm0
mov dword [rsp + 0xc], eax
movzx eax, byte [rsp + 0x10]
shr ebx, 0x18
punpcklqdq xmm3, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
pxor xmm3, xmm13
movzx edi, bh
mov ebx, edx
movd r14d, xmm3
pshufd xmm2, xmm3, 0x55
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
pshufd xmm4, xmm3, 0xaa
pshufd xmm15, xmm3, 0xff
movzx edi, bl
mov ebx, dword [rsp + 0x10]
movd esi, xmm4
movd r15d, xmm2
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
movzx eax, r10b
shr r10d, 0x18
movd ecx, xmm15
mov edi, ebx
mov eax, dword [r12 + rax*4]
shr ebx, 0x10
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, dh
mov ebx, dword [rsp + 4]
movd xmm3, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, dword [rsp + 0x28]
shr edi, 0x18
xor eax, dword [r12 + r13*4 + 0x800]
movd xmm4, dword [rsp + 0xc]
mov dword [rsp + 0x30], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0x30]
punpckldq xmm4, xmm1
movzx edi, bl
mov ebx, ebp
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x10], eax
movzx eax, byte [rsp + 4]
punpckldq xmm3, xmm0
punpcklqdq xmm4, xmm3
pxor xmm4, xmm13
pshufd xmm2, xmm4, 0x55
pshufd xmm15, xmm4, 0xaa
mov eax, dword [r12 + rax*4]
movd dword [rsp + 0xc], xmm2
movd r10d, xmm15
movd r13d, xmm4
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
pshufd xmm3, xmm4, 0xff
movd edx, xmm3
movzx edi, bh
mov ebx, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x28], eax
shr edi, 0x18
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
mov ebx, r9d
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr r8d, 0x10
movzx edi, r8b
shr ebx, 0x18
xor eax, dword [r12 + rbp*4 + 0x400]
movd xmm15, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm4, dword [rsp + 0x2c]
mov dword [rsp + 4], eax
movzx eax, byte [rsp + 0x14]
movd xmm0, dword [rsp + 4]
punpckldq xmm4, xmm0
movd xmm1, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
punpckldq xmm15, xmm1
punpcklqdq xmm15, xmm4
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
pxor xmm15, xmm13
pshufd xmm2, xmm15, 0x55
pshufd xmm4, xmm15, 0xff
movd dword [rsp + 4], xmm2
movd ebp, xmm15
pshufd xmm3, xmm15, 0xaa
movzx edi, bh
mov ebx, r11d
movd dword [rsp + 0x28], xmm4
movd r8d, xmm3
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
shr ebx, 0x18
movzx eax, byte [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r11b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
shr r11d, 0x18
movzx edi, bh
mov ebx, dword [rsp + 0x14]
movzx r9d, r9b
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
movzx ebx, bh
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x14], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, dword [rsp + 8]
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, ecx
shr r11d, 0x10
movzx edi, r11b
movd xmm15, dword [rsp + 0x14]
movd xmm1, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
movd xmm3, dword [rsp + 0x10]
mov dword [rsp + 8], eax
movzx eax, r14b
movd xmm0, dword [rsp + 8]
punpckldq xmm3, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
punpckldq xmm15, xmm0
movzx edi, bh
mov ebx, esi
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm3, xmm15
shr ebx, 0x10
movzx edi, bl
mov ebx, r14d
pxor xmm3, xmm13
shr ebx, 0x18
pshufd xmm2, xmm3, 0x55
xor eax, dword [r12 + rdi*4 + 0x800]
pshufd xmm4, xmm3, 0xaa
movd dword [rsp + 0x10], xmm3
mov dword [rsp + 0x14], eax
movzx eax, r15b
pshufd xmm15, xmm3, 0xff
movd r11d, xmm4
mov eax, dword [r12 + rax*4]
movd dword [rsp + 8], xmm2
movd r9d, xmm15
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movzx edi, bh
mov ebx, ecx
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r15d
shr r15d, 0x10
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
movzx edi, ch
movzx ecx, cl
mov dword [rsp + 0x2c], eax
movzx eax, sil
shr esi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
mov ebx, r14d
movzx r14d, r15b
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
mov edi, edx
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, bh
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r14*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, r13b
movd xmm3, dword [rsp + 0x30]
mov ebx, dword [rsp + 0xc]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm4, dword [rsp + 0x14]
movzx edi, bl
mov ebx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x14], eax
movzx eax, byte [rsp + 0xc]
shr ebx, 0x18
movd xmm0, dword [rsp + 0x34]
punpckldq xmm4, xmm1
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
punpckldq xmm3, xmm0
movzx edi, bh
mov ebx, edx
punpcklqdq xmm4, xmm3
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0xc]
pxor xmm4, xmm6
pshufd xmm15, xmm4, 0xaa
movd r14d, xmm4
pshufd xmm2, xmm4, 0x55
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ebx
mov dword [rsp + 0x2c], eax
movzx eax, r10b
movd esi, xmm15
shr edi, 0x18
mov eax, dword [r12 + rax*4]
pshufd xmm3, xmm4, 0xff
movd xmm1, dword [rsp + 0x2c]
movd xmm15, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
shr ebx, 0x10
movd r15d, xmm2
shr edi, 0x10
shr r10d, 0x18
punpckldq xmm15, xmm1
movd ecx, xmm3
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, dh
movd xmm4, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, bpl
movd xmm0, dword [rsp + 0x30]
punpckldq xmm4, xmm0
punpcklqdq xmm15, xmm4
pxor xmm15, xmm6
pshufd xmm2, xmm15, 0x55
pshufd xmm3, xmm15, 0xaa
movd r13d, xmm15
movd dword [rsp + 0xc], xmm2
mov edi, dword [rsp + 0x28]
mov ebx, dword [rsp + 4]
movd r10d, xmm3
pshufd xmm4, xmm15, 0xff
mov eax, dword [r12 + rax*4]
movd edx, xmm4
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, ebp
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x14], eax
movzx eax, byte [rsp + 4]
movd xmm3, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
movzx edi, bh
mov ebx, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x28], eax
shr edi, 0x18
movzx eax, r8b
shr r8d, 0x18
movd xmm1, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
punpckldq xmm3, xmm1
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov ebx, ebp
movzx ebp, bh
mov r8d, dword [rsp + 4]
xor eax, dword [r12 + rbp*4 + 0x400]
mov ebx, r9d
shr r8d, 0x10
movzx edi, r8b
movd xmm15, dword [rsp + 0x2c]
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 4], eax
movd xmm0, dword [rsp + 4]
punpckldq xmm15, xmm0
punpcklqdq xmm3, xmm15
pxor xmm3, xmm6
pshufd xmm2, xmm3, 0x55
pshufd xmm4, xmm3, 0xaa
movd dword [rsp + 4], xmm2
pshufd xmm15, xmm3, 0xff
movd ebp, xmm3
movd r8d, xmm4
movd dword [rsp + 0x14], xmm15
movzx eax, byte [rsp + 0x10]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
movzx edi, bh
mov ebx, r11d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
shr ebx, 0x18
movzx eax, byte [rsp + 8]
movd xmm4, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
mov ebx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
shr ebx, 0x18
movzx eax, r11b
shr r11d, 0x18
movd xmm1, dword [rsp + 0x2c]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
movzx r9d, r9b
movzx edi, bh
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm4, xmm1
mov edi, ebx
shr edi, 0x10
movzx edi, dil
movzx ebx, bh
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, dword [rsp + 8]
shr r11d, 0x10
movzx edi, r11b
xor eax, dword [r12 + rbx*4 + 0x400]
movd xmm3, dword [rsp + 0x10]
mov ebx, ecx
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 8], eax
movzx eax, r14b
movd xmm0, dword [rsp + 8]
punpckldq xmm3, xmm0
punpcklqdq xmm4, xmm3
pxor xmm4, xmm6
pshufd xmm2, xmm4, 0x55
movd dword [rsp + 0x10], xmm4
pshufd xmm15, xmm4, 0xaa
pshufd xmm3, xmm4, 0xff
movd dword [rsp + 8], xmm2
mov eax, dword [r12 + rax*4]
movd r11d, xmm15
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
movd r9d, xmm3
movzx edi, bh
mov ebx, esi
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r15b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movzx edi, bh
mov ebx, ecx
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm15, dword [rsp + 0x28]
shr ebx, 0x10
movzx edi, bl
mov ebx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, sil
movzx edi, ch
shr esi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
movzx ecx, cl
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm1, dword [rsp + 0x2c]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r14d
mov edi, edx
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
movd xmm4, dword [rsp + 0x30]
punpckldq xmm15, xmm1
xor eax, dword [r12 + rsi*4 + 0xc00]
shr r15d, 0x10
movzx esi, bh
mov ebx, dword [rsp + 0xc]
movzx r14d, r15b
xor eax, dword [r12 + rsi*4 + 0x400]
shr edi, 0x18
xor eax, dword [r12 + r14*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, r13b
movd xmm0, dword [rsp + 0x34]
punpckldq xmm4, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm15, xmm4
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r13d
pxor xmm15, xmm7
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ebx, 0x18
movd r14d, xmm15
pshufd xmm3, xmm15, 0xaa
movd esi, xmm3
pshufd xmm2, xmm15, 0x55
pshufd xmm4, xmm15, 0xff
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
movd r15d, xmm2
movd ecx, xmm4
mov ebx, r10d
movzx edi, bh
mov ebx, edx
movd xmm3, dword [rsp + 0x28]
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ebx
mov dword [rsp + 0x2c], eax
movzx eax, r10b
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr ebx, 0x10
movd xmm1, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
shr r10d, 0x18
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
punpckldq xmm3, xmm1
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, dh
mov ebx, dword [rsp + 4]
movd xmm15, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, dword [rsp + 0x14]
shr edi, 0x18
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x30], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0x30]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, ebp
punpckldq xmm15, xmm0
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
shr ebx, 0x18
punpcklqdq xmm3, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
pxor xmm3, xmm7
movzx edi, bh
mov ebx, dword [rsp + 0x14]
pshufd xmm2, xmm3, 0x55
pshufd xmm4, xmm3, 0xaa
xor eax, dword [r12 + rdi*4 + 0x400]
movd dword [rsp + 0xc], xmm2
movd r13d, xmm3
movd r10d, xmm4
pshufd xmm15, xmm3, 0xff
mov edi, ebx
movd edx, xmm15
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x14], eax
shr edi, 0x18
movzx eax, r8b
shr r8d, 0x18
movd xmm1, dword [rsp + 0x14]
movd xmm4, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
punpckldq xmm4, xmm1
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov ebx, ebp
movzx ebp, bh
mov r8d, dword [rsp + 4]
mov ebx, r9d
xor eax, dword [r12 + rbp*4 + 0x400]
shr r8d, 0x10
movzx edi, r8b
shr ebx, 0x18
movd xmm3, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, byte [rsp + 0x10]
movd xmm0, dword [rsp + 4]
mov eax, dword [r12 + rax*4]
punpckldq xmm3, xmm0
punpcklqdq xmm4, xmm3
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
pxor xmm4, xmm7
pshufd xmm2, xmm4, 0x55
pshufd xmm3, xmm4, 0xff
movd dword [rsp + 4], xmm2
pshufd xmm15, xmm4, 0xaa
movd ebp, xmm4
movzx edi, bh
mov ebx, r11d
movd dword [rsp + 0x14], xmm3
movd r8d, xmm15
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
shr ebx, 0x18
movzx eax, byte [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, dword [rsp + 8]
movd xmm15, dword [rsp + 0x28]
mov dword [rsp + 0x2c], eax
movzx eax, r11b
mov eax, dword [r12 + rax*4]
shr r11d, 0x18
movd xmm1, dword [rsp + 0x2c]
shr ebx, 0x18
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
movzx r9d, r9b
movzx edi, bh
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm15, xmm1
mov edi, ebx
shr edi, 0x10
movzx edi, dil
movzx ebx, bh
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, dword [rsp + 8]
shr r11d, 0x10
movzx edi, r11b
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, ecx
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 8], eax
shr ebx, 0x18
movzx eax, r14b
movd xmm0, dword [rsp + 8]
movd xmm4, dword [rsp + 0x10]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
movzx edi, bh
mov ebx, esi
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm4, xmm0
shr ebx, 0x10
movzx edi, bl
mov ebx, r14d
punpcklqdq xmm15, xmm4
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
pxor xmm15, xmm7
pshufd xmm2, xmm15, 0x55
movd dword [rsp + 0x10], xmm15
mov dword [rsp + 0x28], eax
movzx eax, r15b
pshufd xmm3, xmm15, 0xaa
pshufd xmm4, xmm15, 0xff
mov eax, dword [r12 + rax*4]
movd dword [rsp + 8], xmm2
movd r11d, xmm3
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movd r9d, xmm4
movzx edi, bh
mov ebx, ecx
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r15d
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
movzx edi, ch
shr r15d, 0x10
mov dword [rsp + 0x2c], eax
movzx eax, sil
movzx ecx, cl
shr esi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
movzx r14d, r15b
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, edx
movd xmm3, dword [rsp + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, bh
xor eax, dword [r12 + rsi*4 + 0x400]
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + r14*4 + 0x800]
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x34], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm3, xmm1
movd xmm0, dword [rsp + 0x34]
movzx edi, bl
mov ebx, r13d
movd xmm15, dword [rsp + 0x30]
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
punpckldq xmm15, xmm0
mov dword [rsp + 0x28], eax
punpcklqdq xmm3, xmm15
movzx eax, byte [rsp + 0xc]
pxor xmm3, xmm5
pshufd xmm2, xmm3, 0x55
movd r14d, xmm3
movd r15d, xmm2
pshufd xmm4, xmm3, 0xaa
pshufd xmm15, xmm3, 0xff
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
movd esi, xmm4
movzx edi, bh
mov ebx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
movd ecx, xmm15
shr ebx, 0x10
movzx edi, bl
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ebx
shr edi, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r10b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
xor eax, dword [r12 + rdi*4 + 0x400]
shr r10d, 0x18
mov edi, r13d
shr ebx, 0x10
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
xor eax, dword [r12 + r10*4 + 0xc00]
movzx r13d, bl
movzx edi, dh
mov ebx, dword [rsp + 4]
movd xmm2, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, dword [rsp + 0x14]
shr edi, 0x18
xor eax, dword [r12 + r13*4 + 0x800]
movd xmm1, dword [rsp + 0x2c]
mov dword [rsp + 0x30], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
movd xmm3, dword [rsp + 0xc]
movd xmm0, dword [rsp + 0x30]
punpckldq xmm2, xmm1
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, ebp
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
punpckldq xmm3, xmm0
mov dword [rsp + 0x28], eax
punpcklqdq xmm2, xmm3
movzx eax, byte [rsp + 4]
pxor xmm2, xmm5
pshufd xmm4, xmm2, 0x55
movd r13d, xmm2
movd dword [rsp + 0xc], xmm4
pshufd xmm15, xmm2, 0xaa
pshufd xmm3, xmm2, 0xff
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
movd r10d, xmm15
movd edx, xmm3
mov ebx, r8d
movzx edi, bh
mov ebx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x14], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
xor eax, dword [r12 + r8*4 + 0xc00]
movzx ebp, bh
xor eax, dword [r12 + rbp*4 + 0x400]
mov r8d, dword [rsp + 4]
mov ebx, r9d
shr r8d, 0x10
movzx edi, r8b
shr ebx, 0x18
movd xmm2, dword [rsp + 0x28]
movd xmm1, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm4, dword [rsp + 0x14]
mov dword [rsp + 4], eax
punpckldq xmm2, xmm4
movzx eax, byte [rsp + 0x10]
movd xmm0, dword [rsp + 4]
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm1
pxor xmm2, xmm5
pshufd xmm15, xmm2, 0x55
movd ebp, xmm2
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
pshufd xmm1, xmm2, 0xff
movd dword [rsp + 4], xmm15
movd dword [rsp + 0x14], xmm1
pshufd xmm3, xmm2, 0xaa
movzx edi, bh
mov ebx, r11d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd r8d, xmm3
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, dword [rsp + 0x10]
mov dword [rsp + 0x28], eax
shr ebx, 0x18
movzx eax, byte [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x2c], eax
movzx eax, r11b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
shr r11d, 0x18
movzx edi, bh
mov ebx, dword [rsp + 0x10]
movzx r9d, r9b
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
movzx ebx, bh
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
xor eax, dword [r12 + rbx*4 + 0x400]
mov r11d, dword [rsp + 8]
mov ebx, ecx
shr r11d, 0x10
movzx edi, r11b
shr ebx, 0x18
movd xmm2, dword [rsp + 0x28]
movd xmm4, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
movd xmm15, dword [rsp + 0x10]
mov dword [rsp + 8], eax
movzx eax, r14b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
punpckldq xmm2, xmm4
movzx edi, bh
mov ebx, esi
movd xmm0, dword [rsp + 8]
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r15b
punpckldq xmm15, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
punpcklqdq xmm2, xmm15
movzx edi, bh
mov ebx, ecx
pxor xmm2, xmm5
shr ebx, 0x10
pshufd xmm3, xmm2, 0x55
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
movzx edi, ch
movzx ecx, cl
mov dword [rsp + 0x2c], eax
movzx eax, sil
shr esi, 0x18
pshufd xmm1, xmm2, 0xaa
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
pshufd xmm15, xmm2, 0xff
shr ebx, 0x10
movd r11d, xmm1
movd r9d, xmm15
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
movd dword [rsp + 8], xmm3
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
mov edi, edx
xor eax, dword [r12 + rsi*4 + 0xc00]
shr r15d, 0x10
movzx esi, bh
movd xmm3, dword [rsp + 0x30]
movzx r14d, r15b
xor eax, dword [r12 + rsi*4 + 0x400]
movd dword [rsp + 0x10], xmm2
shr edi, 0x18
xor eax, dword [r12 + r14*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, r13b
movd xmm0, dword [rsp + 0x34]
movd xmm2, dword [rsp + 0x28]
punpckldq xmm3, xmm0
mov ebx, dword [rsp + 0xc]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movd xmm4, dword [rsp + 0x2c]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm2, xmm4
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r13d
punpcklqdq xmm2, xmm3
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ebx, 0x18
pxor xmm2, xmm8
pshufd xmm1, xmm2, 0x55
movd r14d, xmm2
movd r15d, xmm1
pshufd xmm15, xmm2, 0xaa
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
pshufd xmm3, xmm2, 0xff
movd xmm2, dword [rsp + 0x28]
movzx edi, bh
movd esi, xmm15
movd ecx, xmm3
mov ebx, edx
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, ebx
mov dword [rsp + 0x2c], eax
movzx eax, r10b
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr ebx, 0x10
movd xmm4, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
shr r10d, 0x18
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
punpckldq xmm2, xmm4
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, dh
movd xmm1, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov edi, dword [rsp + 0x14]
mov dword [rsp + 0x30], eax
shr edi, 0x18
movd xmm0, dword [rsp + 0x30]
movzx eax, bpl
punpckldq xmm1, xmm0
mov eax, dword [r12 + rax*4]
punpcklqdq xmm2, xmm1
pxor xmm2, xmm8
pshufd xmm15, xmm2, 0x55
movd dword [rsp + 0xc], xmm15
movd r13d, xmm2
pshufd xmm3, xmm2, 0xaa
pshufd xmm1, xmm2, 0xff
xor eax, dword [r12 + rdi*4 + 0xc00]
mov ebx, dword [rsp + 4]
movd r10d, xmm3
movd edx, xmm1
movzx edi, bh
mov ebx, r8d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, ebp
mov dword [rsp + 0x28], eax
shr ebx, 0x18
movzx eax, byte [rsp + 4]
movd xmm2, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
movzx edi, bh
mov ebx, dword [rsp + 0x14]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x14], eax
shr edi, 0x18
movzx eax, r8b
shr r8d, 0x18
movd xmm4, dword [rsp + 0x14]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
punpckldq xmm2, xmm4
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov ebx, ebp
movzx ebp, bh
mov r8d, dword [rsp + 4]
xor eax, dword [r12 + rbp*4 + 0x400]
mov ebx, r9d
shr r8d, 0x10
movzx edi, r8b
movd xmm15, dword [rsp + 0x2c]
shr ebx, 0x18
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 4], eax
movd xmm0, dword [rsp + 4]
punpckldq xmm15, xmm0
punpcklqdq xmm2, xmm15
pxor xmm2, xmm8
movzx eax, byte [rsp + 0x10]
pshufd xmm3, xmm2, 0x55
movd ebp, xmm2
pshufd xmm15, xmm2, 0xff
movd dword [rsp + 4], xmm3
pshufd xmm1, xmm2, 0xaa
mov eax, dword [r12 + rax*4]
movd dword [rsp + 0x14], xmm15
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
movd r8d, xmm1
movzx edi, bh
mov ebx, r11d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 8]
movd xmm2, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 8]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
shr ebx, 0x18
movzx eax, r11b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
shr r11d, 0x18
movzx edi, bh
mov ebx, dword [rsp + 0x10]
movzx r9d, r9b
movd xmm3, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebx
punpckldq xmm2, xmm3
shr edi, 0x10
movzx edi, dil
movzx ebx, bh
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, dword [rsp + 8]
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, ecx
shr r11d, 0x10
movzx edi, r11b
movd xmm4, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 8], eax
movd xmm0, dword [rsp + 8]
movzx eax, r14b
punpckldq xmm4, xmm0
punpcklqdq xmm2, xmm4
mov eax, dword [r12 + rax*4]
pxor xmm2, xmm8
pshufd xmm1, xmm2, 0x55
movd dword [rsp + 0x10], xmm2
pshufd xmm15, xmm2, 0xaa
pshufd xmm4, xmm2, 0xff
movd r11d, xmm15
movd dword [rsp + 8], xmm1
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
movd r9d, xmm4
movzx edi, bh
mov ebx, esi
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, r15b
movd xmm15, dword [rsp + 0x28]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movzx edi, bh
mov ebx, ecx
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r15d
movzx edi, ch
shr r15d, 0x10
mov dword [rsp + 0x2c], eax
shr ebx, 0x18
movzx eax, sil
movzx ecx, cl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
shr esi, 0x18
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm2, dword [rsp + 0x2c]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r14d
mov edi, edx
movzx r14d, r15b
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
shr edi, 0x18
punpckldq xmm15, xmm2
xor eax, dword [r12 + rsi*4 + 0xc00]
movzx esi, bh
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + r14*4 + 0x800]
mov dword [rsp + 0x34], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0x34]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, r13d
movd xmm3, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
shr ebx, 0x18
punpckldq xmm3, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
punpcklqdq xmm15, xmm3
movzx edi, bh
mov ebx, edx
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm2, dword [rsp + 0x28]
pxor xmm15, xmm9
shr ebx, 0x10
pshufd xmm1, xmm15, 0x55
movd r14d, xmm15
movzx edi, bl
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
movd r15d, xmm1
pshufd xmm4, xmm15, 0xaa
mov dword [rsp + 0x2c], eax
movzx eax, r10b
pshufd xmm3, xmm15, 0xff
movd esi, xmm4
mov edi, ebx
mov eax, dword [r12 + rax*4]
movd xmm1, dword [rsp + 0x2c]
movd ecx, xmm3
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
shr r10d, 0x18
punpckldq xmm2, xmm1
shr edi, 0x10
shr ebx, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
movzx edi, dh
xor eax, dword [r12 + r10*4 + 0xc00]
mov ebx, dword [rsp + 4]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, dword [rsp + 0x14]
shr edi, 0x18
xor eax, dword [r12 + r13*4 + 0x800]
movd xmm15, dword [rsp + 0xc]
mov dword [rsp + 0x30], eax
movzx eax, bpl
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 0x30]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, ebp
punpckldq xmm15, xmm0
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
shr ebx, 0x18
punpcklqdq xmm2, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
pxor xmm2, xmm9
movzx edi, bh
mov ebx, dword [rsp + 0x14]
pshufd xmm4, xmm2, 0x55
movd r13d, xmm2
xor eax, dword [r12 + rdi*4 + 0x400]
movd dword [rsp + 0xc], xmm4
pshufd xmm3, xmm2, 0xaa
pshufd xmm15, xmm2, 0xff
mov edi, ebx
shr edi, 0x10
movd r10d, xmm3
movd edx, xmm15
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x14], eax
movzx eax, r8b
shr r8d, 0x18
mov edi, dword [rsp + 4]
mov eax, dword [r12 + rax*4]
shr edi, 0x18
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
movd xmm2, dword [rsp + 0x28]
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
movd xmm4, dword [rsp + 0x14]
shr edi, 0x10
movzx edi, dil
punpckldq xmm2, xmm4
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
xor eax, dword [r12 + r8*4 + 0xc00]
mov ebx, ebp
movzx ebp, bh
mov r8d, dword [rsp + 4]
mov ebx, r9d
xor eax, dword [r12 + rbp*4 + 0x400]
shr r8d, 0x10
movzx edi, r8b
shr ebx, 0x18
movd xmm1, dword [rsp + 0x2c]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 4], eax
movzx eax, byte [rsp + 0x10]
movd xmm0, dword [rsp + 4]
mov eax, dword [r12 + rax*4]
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm1
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, dword [rsp + 8]
pxor xmm2, xmm9
pshufd xmm3, xmm2, 0x55
pshufd xmm1, xmm2, 0xff
movd dword [rsp + 4], xmm3
movd ebp, xmm2
pshufd xmm15, xmm2, 0xaa
movzx edi, bh
mov ebx, r11d
movd dword [rsp + 0x14], xmm1
movd r8d, xmm15
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x28], eax
shr ebx, 0x18
movzx eax, byte [rsp + 8]
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r11d
movzx edi, bh
mov ebx, r9d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov ebx, dword [rsp + 8]
movzx eax, r11b
shr r11d, 0x18
mov eax, dword [r12 + rax*4]
movd xmm4, dword [rsp + 0x28]
shr ebx, 0x18
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r9d
movzx r9d, r9b
movd xmm2, dword [rsp + 0x2c]
movzx edi, bh
mov ebx, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x400]
punpckldq xmm4, xmm2
mov edi, ebx
movzx ebx, bh
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x10], eax
mov eax, dword [r12 + r9*4]
xor eax, dword [r12 + r11*4 + 0xc00]
mov r11d, dword [rsp + 8]
xor eax, dword [r12 + rbx*4 + 0x400]
mov ebx, ecx
shr r11d, 0x10
movzx edi, r11b
shr ebx, 0x18
movd xmm3, dword [rsp + 0x10]
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 8], eax
movzx eax, r14b
movd xmm0, dword [rsp + 8]
punpckldq xmm3, xmm0
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r15d
punpcklqdq xmm4, xmm3
movzx edi, bh
mov ebx, esi
pxor xmm4, xmm9
shr ebx, 0x10
pshufd xmm15, xmm4, 0x55
movd dword [rsp + 0x10], xmm4
pshufd xmm1, xmm4, 0xaa
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r14d
pshufd xmm3, xmm4, 0xff
movd dword [rsp + 8], xmm15
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
movd r11d, xmm1
movd r9d, xmm3
mov dword [rsp + 0x28], eax
movzx eax, r15b
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, esi
movzx edi, bh
mov ebx, ecx
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r15d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
movzx edi, ch
movzx ecx, cl
mov dword [rsp + 0x2c], eax
movzx eax, sil
shr esi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
movzx edi, bl
mov ebx, r14d
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, edx
mov dword [rsp + 0x30], eax
mov eax, dword [r12 + rcx*4]
xor eax, dword [r12 + rsi*4 + 0xc00]
shr r15d, 0x10
movzx esi, bh
mov ebx, dword [rsp + 0xc]
movzx r14d, r15b
shr edi, 0x18
xor eax, dword [r12 + rsi*4 + 0x400]
movd xmm15, dword [rsp + 0x28]
xor eax, dword [r12 + r14*4 + 0x800]
movd xmm4, dword [rsp + 0x2c]
mov dword [rsp + 0x34], eax
movzx eax, r13b
mov eax, dword [r12 + rax*4]
movd xmm0, dword [rsp + 0x34]
punpckldq xmm15, xmm4
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r10d
movd xmm2, dword [rsp + 0x30]
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movzx edi, bl
mov ebx, r13d
xor eax, dword [r12 + rdi*4 + 0x800]
shr ebx, 0x18
punpckldq xmm2, xmm0
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0xc]
punpcklqdq xmm15, xmm2
mov eax, dword [r12 + rax*4]
pxor xmm15, xmm10
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r10d
pshufd xmm1, xmm15, 0x55
movzx edi, bh
mov ebx, edx
movd r15d, xmm1
movd r14d, xmm15
xor eax, dword [r12 + rdi*4 + 0x400]
shr ebx, 0x10
pshufd xmm3, xmm15, 0xaa
pshufd xmm2, xmm15, 0xff
movzx edi, bl
mov ebx, dword [rsp + 0xc]
xor eax, dword [r12 + rdi*4 + 0x800]
movd esi, xmm3
movd ecx, xmm2
mov dword [rsp + 0x2c], eax
movzx eax, r10b
shr r10d, 0x18
mov edi, ebx
shr edi, 0x18
mov eax, dword [r12 + rax*4]
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, dh
movzx edx, dl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, r13d
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0xc], eax
mov eax, dword [r12 + rdx*4]
mov edx, r13d
movzx r13d, bl
xor eax, dword [r12 + r10*4 + 0xc00]
movzx edi, dh
xor eax, dword [r12 + rdi*4 + 0x400]
xor eax, dword [r12 + r13*4 + 0x800]
mov dword [rsp + 0x30], eax
mov edi, dword [rsp + 0x14]
mov ebx, dword [rsp + 4]
movzx eax, bpl
shr edi, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
mov ebx, r8d
shr ebx, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
movd xmm4, dword [rsp + 0x28]
movzx edi, bl
xor eax, dword [r12 + rdi*4 + 0x800]
mov ebx, ebp
movd xmm1, dword [rsp + 0x2c]
shr ebx, 0x18
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 4]
punpckldq xmm4, xmm1
movd xmm15, dword [rsp + 0xc]
movd xmm0, dword [rsp + 0x30]
punpckldq xmm15, xmm0
punpcklqdq xmm4, xmm15
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rbx*4 + 0xc00]
mov ebx, r8d
pxor xmm4, xmm10
movzx edi, bh
mov ebx, dword [rsp + 0x14]
pshufd xmm3, xmm4, 0x55
movd r13d, xmm4
xor eax, dword [r12 + rdi*4 + 0x400]
movd dword [rsp + 0xc], xmm3
pshufd xmm2, xmm4, 0xaa
pshufd xmm15, xmm4, 0xff
mov edi, ebx
movd r10d, xmm2
movd edx, xmm15
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov edi, dword [rsp + 4]
mov dword [rsp + 0x14], eax
shr edi, 0x18
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [r12 + rax*4]
xor eax, dword [r12 + rdi*4 + 0xc00]
movzx edi, bh
movzx ebx, bl
xor eax, dword [r12 + rdi*4 + 0x400]
mov edi, ebp
shr edi, 0x10
movzx edi, dil
xor eax, dword [r12 + rdi*4 + 0x800]
mov dword [rsp + 0x2c], eax
mov eax, dword [r12 + rbx*4]
mov ebx, ebp
movzx ebp, bh
xor eax, dword [r12 + r8*4 + 0xc00]
mov r8d, dword [rsp + 4]
shr r8d, 0x10
movzx edi, r8b
mov ebx, dword [r12 + rdi*4 + 0x800]
xor eax, dword [r12 + rbp*4 + 0x400]
mov edi, r9d
xor ebx, eax
mov dword [rsp + 4], ebx
mov ebx, dword [rsp + 0x10]
shr edi, 0x18
movzx eax, bl
mov r8d, dword [r12 + rax*4]
mov eax, dword [rsp + 8]
xor r8d, dword [r12 + rdi*4 + 0xc00]
movd xmm1, dword [rsp + 0x2c]
movzx edi, ah
mov eax, r11d
shr eax, 0x10
xor r8d, dword [r12 + rdi*4 + 0x400]
movd xmm0, dword [rsp + 4]
movzx edi, al
xor r8d, dword [r12 + rdi*4 + 0x800]
mov eax, ebx
movd xmm3, dword [rsp + 0x14]
punpckldq xmm1, xmm0
mov dword [rsp + 0x10], r8d
movzx r8d, byte [rsp + 8]
shr eax, 0x18
movd xmm4, dword [rsp + 0x28]
mov r8d, dword [r12 + r8*4]
punpckldq xmm4, xmm3
punpcklqdq xmm4, xmm1
xor r8d, dword [r12 + rax*4 + 0xc00]
mov eax, r11d
pxor xmm4, xmm10
movzx edi, ah
mov eax, r9d
pshufd xmm2, xmm4, 0x55
pshufd xmm1, xmm4, 0xff
xor r8d, dword [r12 + rdi*4 + 0x400]
shr eax, 0x10
pshufd xmm15, xmm4, 0xaa
movd dword [rsp + 4], xmm1
movd ebp, xmm4
movzx edi, al
mov eax, dword [rsp + 8]
movd dword [rsp + 0x28], xmm15
shr eax, 0x18
xor r8d, dword [r12 + rdi*4 + 0x800]
movd dword [rsp + 0x14], xmm2
mov dword [rsp + 0x2c], r8d
movzx r8d, r11b
shr r11d, 0x18
mov r8d, dword [r12 + r8*4]
xor r8d, dword [r12 + rax*4 + 0xc00]
mov eax, r9d
movzx r9d, r9b
movzx edi, ah
mov eax, ebx
xor r8d, dword [r12 + rdi*4 + 0x400]
shr eax, 0x10
movzx edi, al
xor r8d, dword [r12 + rdi*4 + 0x800]
movzx eax, bh
mov dword [rsp + 0x30], r8d
mov r8d, dword [r12 + r9*4]
xor r8d, dword [r12 + r11*4 + 0xc00]
mov r9d, ecx
mov r11d, dword [rsp + 8]
xor r8d, dword [r12 + rax*4 + 0x400]
mov eax, r15d
shr r11d, 0x10
movzx edi, r11b
mov r11d, esi
xor r8d, dword [r12 + rdi*4 + 0x800]
shr r9d, 0x18
mov dword [rsp + 8], r8d
shr r11d, 0x10
movzx r8d, r14b
movzx edi, ah
movd xmm2, dword [rsp + 0x30]
mov ebx, dword [r12 + r8*4]
movzx r8d, r11b
mov eax, esi
xor ebx, dword [r12 + r9*4 + 0xc00]
mov r9d, r14d
xor ebx, dword [r12 + rdi*4 + 0x400]
movzx edi, ah
shr r9d, 0x18
xor ebx, dword [r12 + r8*4 + 0x800]
mov r8d, ecx
movd xmm0, dword [rsp + 8]
mov dword [rsp + 0x34], ebx
shr r8d, 0x10
movzx ebx, r15b
movd xmm4, dword [rsp + 0x2c]
mov r11d, dword [r12 + rbx*4]
movzx ebx, r8b
mov r8d, r14d
punpckldq xmm2, xmm0
xor r11d, dword [r12 + r9*4 + 0xc00]
movd xmm3, dword [rsp + 0x10]
shr r8d, 0x10
mov r9d, r15d
shr r9d, 0x18
xor r11d, dword [r12 + rdi*4 + 0x400]
movzx edi, ch
xor r11d, dword [r12 + rbx*4 + 0x800]
mov dword [rsp + 0x38], r11d
movzx ebx, r8b
movzx r11d, sil
movzx ecx, cl
mov eax, dword [r12 + r11*4]
punpckldq xmm3, xmm4
shr esi, 0x18
mov r11d, dword [r12 + rcx*4]
xor eax, dword [r12 + r9*4 + 0xc00]
shr r15d, 0x10
xor eax, dword [r12 + rdi*4 + 0x400]
punpcklqdq xmm3, xmm2
xor eax, dword [r12 + rbx*4 + 0x800]
pxor xmm3, xmm10
xor r11d, dword [r12 + rsi*4 + 0xc00]
mov edi, edx
mov dword [rsp + 0x3c], eax
mov eax, r14d
movzx r14d, r15b
movzx r15d, r13b
movzx esi, ah
pshufd xmm1, xmm3, 0xaa
pshufd xmm2, xmm3, 0xff
shr edi, 0x18
pshufd xmm15, xmm3, 0x55
movd dword [rsp + 8], xmm3
mov eax, r13d
xor r11d, dword [r12 + rsi*4 + 0x400]
movd xmm3, dword [rsp + 0x38]
movd dword [rsp + 0x10], xmm15
shr eax, 0x18
xor r11d, dword [r12 + r14*4 + 0x800]
mov dword [rsp + 0x40], r11d
movd xmm4, dword [rsp + 0x3c]
mov r14d, r10d
shr r14d, 0x10
movd xmm0, dword [rsp + 0x40]
movd dword [rsp + 0x2c], xmm1
movd xmm15, dword [rsp + 0x34]
punpckldq xmm4, xmm0
movd dword [rsp + 0x30], xmm2
mov esi, dword [r12 + r15*4]
mov ebx, dword [rsp + 0xc]
movzx r15d, r14b
xor esi, dword [r12 + rdi*4 + 0xc00]
punpckldq xmm15, xmm3
movzx edi, bh
xor esi, dword [r12 + rdi*4 + 0x400]
xor esi, dword [r12 + r15*4 + 0x800]
mov r15d, edx
punpcklqdq xmm15, xmm4
mov dword [rsp + 0xc], esi
movzx esi, bl
shr r15d, 0x10
pxor xmm15, xmm11
movd xmm3, dword [rsp + 0xc]
mov r14d, dword [r12 + rsi*4]
movzx esi, r15b
movd r11d, xmm15
xor r14d, dword [r12 + rax*4 + 0xc00]
mov eax, r10d
pshufd xmm1, xmm15, 0x55
pshufd xmm2, xmm15, 0xaa
movzx edi, ah
xor r14d, dword [r12 + rdi*4 + 0x400]
mov eax, ebx
movd r8d, xmm1
movzx edi, dh
xor r14d, dword [r12 + rsi*4 + 0x800]
shr eax, 0x18
mov esi, r13d
movzx edx, dl
mov dword [rsp + 0x34], r14d
movzx r14d, r10b
pshufd xmm4, xmm15, 0xff
movd xmm1, dword [rsp + 0x34]
mov r15d, dword [r12 + r14*4]
xor r15d, dword [r12 + rax*4 + 0xc00]
mov eax, r13d
movd r9d, xmm2
xor r15d, dword [r12 + rdi*4 + 0x400]
shr esi, 0x10
movzx edi, ah
mov eax, dword [rsp + 0x28]
movzx r14d, sil
shr ebx, 0x10
punpckldq xmm3, xmm1
movd ecx, xmm4
xor r15d, dword [r12 + r14*4 + 0x800]
shr r10d, 0x18
movzx r13d, bl
mov dword [rsp + 0x38], r15d
mov r15d, dword [r12 + rdx*4]
xor r15d, dword [r12 + r10*4 + 0xc00]
movzx edx, bpl
mov r10d, dword [r12 + r13*4 + 0x800]
xor r15d, dword [r12 + rdi*4 + 0x400]
xor r10d, r15d
mov dword [rsp + 0x3c], r10d
mov r15d, dword [rsp + 4]
movd xmm0, dword [rsp + 0x3c]
mov r14d, r15d
shr r14d, 0x18
movd xmm15, dword [rsp + 0x38]
mov r10d, dword [r12 + rdx*4]
shr r15d, 0x10
punpckldq xmm15, xmm0
mov edx, dword [rsp + 0x14]
xor r10d, dword [r12 + r14*4 + 0xc00]
punpcklqdq xmm3, xmm15
mov r14d, eax
pxor xmm3, xmm11
shr r14d, 0x10
pshufd xmm2, xmm3, 0x55
movd r13d, xmm3
movzx ebx, dh
pshufd xmm15, xmm3, 0xff
movd esi, xmm2
xor r10d, dword [r12 + rbx*4 + 0x400]
movzx ebx, r14b
movd dword [rsp + 0xc], xmm15
pshufd xmm4, xmm3, 0xaa
mov r14d, dword [r12 + rbx*4 + 0x800]
mov ebx, ebp
movd edi, xmm4
xor r14d, r10d
shr ebx, 0x18
movzx r10d, dl
mov dword [rsp + 0x14], r14d
movzx r14d, r15b
mov r15d, eax
mov r10d, dword [r12 + r10*4]
xor r10d, dword [r12 + rbx*4 + 0xc00]
movzx ebx, ah
movzx eax, al
xor r10d, dword [r12 + rbx*4 + 0x400]
shr r15d, 0x18
mov ebx, dword [r12 + r14*4 + 0x800]
mov r14d, edx
shr r14d, 0x18
shr edx, 0x10
movd xmm3, dword [rsp + 0x14]
xor ebx, r10d
mov r10d, dword [r12 + rax*4]
mov eax, dword [rsp + 4]
mov dword [rsp + 0x28], ebx
movzx ebx, ah
xor r10d, dword [r12 + r14*4 + 0xc00]
mov r14d, ebp
xor r10d, dword [r12 + rbx*4 + 0x400]
shr r14d, 0x10
movzx ebx, r14b
movd xmm2, dword [rsp + 0x28]
punpckldq xmm3, xmm2
mov r14d, dword [r12 + rbx*4 + 0x800]
mov ebx, ebp
xor r14d, r10d
movzx r10d, al
movzx ebp, bh
mov dword [rsp + 4], r14d
movzx r14d, dl
mov eax, dword [r12 + r10*4]
mov r10d, dword [r12 + r14*4 + 0x800]
xor eax, dword [r12 + r15*4 + 0xc00]
mov r15d, ecx
shr r15d, 0x18
xor eax, dword [r12 + rbp*4 + 0x400]
movd xmm1, dword [rsp + 4]
xor r10d, eax
movzx eax, r11b
mov dword [rsp + 0x34], r10d
mov r10d, r9d
mov edx, dword [r12 + rax*4]
mov eax, r8d
shr r10d, 0x10
xor edx, dword [r12 + r15*4 + 0xc00]
movd xmm0, dword [rsp + 0x34]
movzx eax, ah
movzx r15d, r10b
xor edx, dword [r12 + rax*4 + 0x400]
mov eax, r11d
xor edx, dword [r12 + r15*4 + 0x800]
punpckldq xmm1, xmm0
mov dword [rsp + 0x14], edx
mov r15d, ecx
movzx edx, r8b
shr eax, 0x18
mov r10d, dword [r12 + rdx*4]
shr r15d, 0x10
mov edx, r9d
punpcklqdq xmm3, xmm1
xor r10d, dword [r12 + rax*4 + 0xc00]
movzx eax, dh
movzx edx, r15b
pxor xmm3, xmm11
xor r10d, dword [r12 + rax*4 + 0x400]
mov r15d, r11d
xor r10d, dword [r12 + rdx*4 + 0x800]
pshufd xmm1, xmm3, 0xff
mov eax, r8d
shr r15d, 0x10
pshufd xmm4, xmm3, 0x55
shr eax, 0x18
shr r8d, 0x10
movd ebx, xmm4
movd r14d, xmm3
movd dword [rsp + 4], xmm1
movzx r8d, r8b
pshufd xmm15, xmm3, 0xaa
movd ebp, xmm15
mov dword [rsp + 0x28], r10d
movzx r10d, r9b
shr r9d, 0x18
movd xmm3, dword [rsp + 0x28]
mov edx, dword [r12 + r10*4]
movzx r10d, r15b
xor edx, dword [r12 + rax*4 + 0xc00]
movzx eax, ch
xor edx, dword [r12 + rax*4 + 0x400]
mov eax, r11d
mov r11d, dword [rsp + 8]
movzx ecx, cl
xor edx, dword [r12 + r10*4 + 0x800]
mov r10d, dword [rsp + 0x30]
mov r15d, r10d
mov dword [rsp + 0x34], edx
shr r15d, 0x18
mov edx, dword [r12 + rcx*4]
movzx ecx, ah
xor edx, dword [r12 + r9*4 + 0xc00]
movzx r9d, r11b
xor edx, dword [r12 + rcx*4 + 0x400]
xor edx, dword [r12 + r8*4 + 0x800]
mov dword [rsp + 0x38], edx
mov ecx, dword [r12 + r9*4]
xor ecx, dword [r12 + r15*4 + 0xc00]
mov r15d, dword [rsp + 0x10]
movd xmm0, dword [rsp + 0x38]
mov edx, r15d
movzx eax, dh
xor ecx, dword [r12 + rax*4 + 0x400]
mov eax, dword [rsp + 0x2c]
mov edx, r11d
mov r8d, eax
shr r8d, 0x10
shr edx, 0x18
movd xmm4, dword [rsp + 0x34]
movzx r9d, r8b
xor ecx, dword [r12 + r9*4 + 0x800]
mov r8d, r15d
punpckldq xmm4, xmm0
movd xmm0, dword [rsp + 0x14]
mov dword [rsp + 8], ecx
movzx ecx, r15b
shr r8d, 0x18
mov r9d, dword [r12 + rcx*4]
xor r9d, dword [r12 + rdx*4 + 0xc00]
mov edx, r10d
movzx ecx, ah
shr edx, 0x10
xor r9d, dword [r12 + rcx*4 + 0x400]
movzx ecx, dl
punpckldq xmm0, xmm3
xor r9d, dword [r12 + rcx*4 + 0x800]
mov dword [rsp + 0x10], r9d
mov r9d, eax
movzx eax, al
punpcklqdq xmm0, xmm4
mov ecx, dword [r12 + rax*4]
mov eax, r10d
mov r10d, r11d
shr r9d, 0x18
shr r10d, 0x10
movzx edx, ah
pxor xmm0, xmm12
mov r9d, r9d
xor ecx, dword [r12 + r8*4 + 0xc00]
movzx r8d, r10b
xor ecx, dword [r12 + rdx*4 + 0x400]
xor ecx, dword [r12 + r8*4 + 0x800]
movzx r8d, r13b
mov dword [rsp + 0x14], ecx
movzx ecx, al
mov eax, r11d
mov r10d, dword [r12 + rcx*4]
mov r8d, dword [r12 + r8*4]
movzx edx, ah
xor r10d, dword [r12 + r9*4 + 0xc00]
shr r15d, 0x10
xor r10d, dword [r12 + rdx*4 + 0x400]
movzx r11d, r15b
mov edx, dword [rsp + 0xc]
mov r15d, edi
movd xmm1, dword [rsp + 8]
mov eax, edx
shr eax, 0x18
shr r15d, 0x10
xor r10d, dword [r12 + r11*4 + 0x800]
movd xmm4, dword [rsp + 0x10]
xor r8d, dword [r12 + rax*4 + 0xc00]
mov eax, esi
mov dword [rsp + 0x28], r10d
movzx eax, ah
xor r8d, dword [r12 + rax*4 + 0x400]
movzx eax, r15b
punpckldq xmm1, xmm4
mov r15d, r13d
xor r8d, dword [r12 + rax*4 + 0x800]
shr r15d, 0x18
mov eax, edi
movd xmm2, dword [rsp + 0x14]
mov dword [rsp + 8], r8d
movzx r8d, sil
movzx eax, ah
movd xmm15, dword [rsp + 0x28]
mov r8d, dword [r12 + r8*4]
xor r8d, dword [r12 + r15*4 + 0xc00]
mov r15d, edx
shr r15d, 0x10
xor r8d, dword [r12 + rax*4 + 0x400]
movzx eax, r15b
mov r15d, esi
shr esi, 0x10
xor r8d, dword [r12 + rax*4 + 0x800]
shr r15d, 0x18
movzx eax, dh
punpckldq xmm2, xmm15
mov dword [rsp + 0xc], r8d
movzx r8d, dil
punpcklqdq xmm1, xmm2
shr edi, 0x18
mov r8d, dword [r12 + r8*4]
xor r8d, dword [r12 + r15*4 + 0xc00]
mov r15d, r13d
movzx edx, dl
shr r15d, 0x10
xor r8d, dword [r12 + rax*4 + 0x400]
pxor xmm1, xmm11
movzx eax, r15b
pshufd xmm3, xmm1, 0x55
movd r11d, xmm1
pshufd xmm2, xmm1, 0xaa
xor r8d, dword [r12 + rax*4 + 0x800]
mov eax, r13d
mov dword [rsp + 0x10], r8d
movzx r13d, sil
mov r8d, dword [r12 + rdx*4]
movd r9d, xmm3
xor r8d, dword [r12 + rdi*4 + 0xc00]
movzx edi, ah
movzx esi, r14b
xor r8d, dword [r12 + rdi*4 + 0x400]
pshufd xmm15, xmm1, 0xff
mov edi, ebp
movzx eax, bh
xor r8d, dword [r12 + r13*4 + 0x800]
movd xmm1, dword [rsp + 0x10]
shr edi, 0x10
movd r10d, xmm2
mov dword [rsp + 0x14], r8d
movd xmm4, dword [rsp + 0x14]
movzx r13d, dil
movd ecx, xmm15
movd xmm3, dword [rsp + 8]
mov r15d, dword [rsp + 4]
mov r8d, r15d
punpckldq xmm1, xmm4
shr r8d, 0x18
mov edx, dword [r12 + rsi*4]
movzx esi, bl
movd xmm2, dword [rsp + 0xc]
xor edx, dword [r12 + r8*4 + 0xc00]
mov r8d, r14d
xor edx, dword [r12 + rax*4 + 0x400]
mov eax, ebp
xor edx, dword [r12 + r13*4 + 0x800]
shr r8d, 0x18
movzx edi, ah
mov r13d, r15d
mov dword [rsp + 4], edx
mov edx, dword [r12 + rsi*4]
mov eax, r15d
mov r15d, r14d
xor edx, dword [r12 + r8*4 + 0xc00]
mov r8d, ebx
punpckldq xmm3, xmm2
xor edx, dword [r12 + rdi*4 + 0x400]
shr r13d, 0x10
shr r15d, 0x10
punpcklqdq xmm3, xmm1
movzx esi, r13b
shr r8d, 0x18
movzx r13d, r15b
shr ebx, 0x10
pxor xmm3, xmm12
xor edx, dword [r12 + rsi*4 + 0x800]
movzx esi, ah
movzx ebx, bl
mov dword [rsp + 8], edx
movzx edx, bpl
shr ebp, 0x18
movd xmm4, dword [rsp + 8]
mov edi, dword [r12 + rdx*4]
movzx edx, al
xor edi, dword [r12 + r8*4 + 0xc00]
mov eax, r14d
xor edi, dword [r12 + rsi*4 + 0x400]
xor edi, dword [r12 + r13*4 + 0x800]
mov edx, dword [r12 + rdx*4]
mov r13d, r10d
mov esi, ecx
mov dword [rsp + 0xc], edi
movzx edi, ah
shr r13d, 0x10
movzx r8d, r11b
xor edx, dword [r12 + rbp*4 + 0xc00]
shr esi, 0x18
movzx eax, r13b
movd xmm15, dword [rsp + 0xc]
mov ebp, edx
xor ebp, dword [r12 + rdi*4 + 0x400]
mov edx, r9d
mov r13d, r9d
mov r14d, ebp
movzx ebp, dh
mov r15d, dword [r12 + r8*4]
movzx edi, r9b
shr r9d, 0x10
xor r14d, dword [r12 + rbx*4 + 0x800]
mov ebx, r10d
shr r13d, 0x18
mov dword [rsp + 0x10], r14d
movd xmm1, dword [rsp + 0x10]
mov r14d, r11d
movzx r9d, r9b
xor r15d, dword [r12 + rsi*4 + 0xc00]
shr r14d, 0x18
movzx esi, bh
xor r15d, dword [r12 + rbp*4 + 0x400]
xor r15d, dword [r12 + rax*4 + 0x800]
punpckldq xmm15, xmm1
movzx ebp, r10b
mov ebx, r11d
movd xmm1, dword [rsp + 4]
mov dword [rsp + 4], r15d
mov r15d, ecx
shr r10d, 0x18
shr r15d, 0x10
mov r8d, dword [r12 + rdi*4]
movzx edi, ch
movzx ecx, cl
xor r8d, dword [r12 + r14*4 + 0xc00]
movzx edx, r15b
mov r14d, r11d
mov eax, dword [r12 + rbp*4]
xor r8d, dword [r12 + rsi*4 + 0x400]
shr r14d, 0x10
movzx esi, bh
punpckldq xmm1, xmm4
punpcklqdq xmm1, xmm15
mov r15, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
pxor xmm1, xmm12
xor r8d, dword [r12 + rdx*4 + 0x800]
mov edx, dword [r12 + rcx*4]
prefetcht2 byte [rbp]
prefetcht2 byte [rbp + 4]
xor edx, dword [r12 + r10*4 + 0xc00]
xor eax, dword [r12 + r13*4 + 0xc00]
mov dword [rsp + 8], r8d
movzx r8d, r14b
mov r10d, edx
xor r10d, dword [r12 + rsi*4 + 0x400]
xor eax, dword [r12 + rdi*4 + 0x400]
movaps xmmword [r15], xmm0
xor eax, dword [r12 + r8*4 + 0x800]
mov r11d, r10d
movaps xmmword [r15 + 0x10], xmm3
xor r11d, dword [r12 + r9*4 + 0x800]
mov dword [rsp + 0xc], eax
movd xmm4, dword [rsp + 0xc]
sub r15, 0xffffffffffffff80
mov dword [rsp + 0x10], r11d
movd xmm2, dword [rsp + 0x10]
punpckldq xmm4, xmm2
movd xmm15, dword [rsp + 8]
movd xmm2, dword [rsp + 4]
movaps xmmword [r15 - 0x60], xmm1
punpckldq xmm2, xmm15
punpcklqdq xmm2, xmm4
pxor xmm2, xmm12
movaps xmmword [r15 - 0x50], xmm2
add rbp, 8
mov qword [rsp + 0x18], r15
mov qword [rsp + 0x20], rbp
cmp qword [rsp + 0x48], rbp
jne 0x6950c0
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret