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