Function at 0x436fe0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
movaps xmmword [rsp + 0x2b0], xmm6
movaps xmmword [rsp + 0x2c0], xmm7
movaps xmmword [rsp + 0x2d0], xmm8
movaps xmmword [rsp + 0x2e0], xmm9
movaps xmmword [rsp + 0x2f0], xmm10
movaps xmmword [rsp + 0x300], xmm11
movaps xmmword [rsp + 0x310], xmm12
movaps xmmword [rsp + 0x320], xmm13
movaps xmmword [rsp + 0x330], xmm14
movaps xmmword [rsp + 0x340], xmm15
lea r8, [rsp + 0x270]
lea r9, [rsp + 0x260]
lea rsi, [rsp + 0x2a0]
mov qword [rsp + 0x3a8], rdx
mov rax, qword [rsp + 0x3a8]
lea rdi, [rsp + 0x290]
lea r10, [rsp + 0x250]
lea r11, [rsp + 0x240]
lea rbp, [rsp + 0x280]
mov rbx, rcx
lea rdx, [rsp + 0x210]
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
lea rcx, [rax + 0x20]
lea r9, [rsp + 0x230]
lea r8, [rsp + 0x220]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x28], r10
lea r13, [rsp + 0x1f0]
mov qword [rsp + 0x20], r11
lea r12, [rsp + 0x200]
lea rdi, [0x004aeb00]
call fcn.0042c780
mov rdx, qword [rsp + 0x3a8]
mov qword [rsp + 0xb8], rbx
add rbx, 0x100000
movdqa xmm5, xmmword [rsp + 0x270]
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x1e8], rbx
movdqa xmm6, xmmword [rdx + 0x40]
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0x1b0], r12
movdqa xmm15, xmmword [rdx + 0x50]
movdqa xmm4, xmmword [rdx + 0x60]
movdqa xmm7, xmmword [rdx + 0xa0]
movdqa xmm11, xmmword [rsp + 0x240]
movdqa xmm9, xmmword [rsp + 0x260]
movdqa xmm8, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0x1c0], xmm5
movaps xmmword [rsp + 0x1d0], xmm8
movdqa xmm5, xmmword [rsp + 0x290]
movdqa xmm2, xmmword [rdx + 0x80]
movdqa xmm8, xmmword [rsp + 0x2a0]
movaps xmmword [rsp + 0xa0], xmm5
movdqa xmm5, xmm6
movdqa xmm6, xmm15
movdqa xmm15, xmm11
movdqa xmm11, xmm9
movdqa xmm9, xmm4
movdqa xmm4, xmm7
movdqa xmm3, xmmword [rdx + 0x70]
movdqa xmm7, xmm8
movdqa xmm8, xmm2
movdqa xmm1, xmmword [rdx + 0x90]
movdqa xmm2, xmm4
movdqa xmm0, xmmword [rdx + 0xb0]
movdqa xmm14, xmmword [rsp + 0x210]
movdqa xmm13, xmmword [rsp + 0x220]
movdqa xmm12, xmmword [rsp + 0x230]
movdqa xmm10, xmmword [rsp + 0x250]
pxor xmm1, xmmword [rsi + 0x50]
mov rdx, r13
mov rcx, r12
pxor xmm3, xmmword [rsi + 0x30]
pxor xmm2, xmmword [rsi + 0x60]
movaps xmmword [rsp + 0x110], xmm1
pxor xmm5, xmmword [rsi]
movaps xmmword [rsp + 0x60], xmm3
movaps xmmword [rsp + 0x100], xmm2
movdqa xmm1, xmmword [rsi + 0x70]
pxor xmm9, xmmword [rsi + 0x20]
pxor xmm1, xmm0
pxor xmm8, xmmword [rsi + 0x40]
movaps xmmword [rsp + 0x200], xmm5
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x1f0], xmm14
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x170], xmm0
pxor xmm6, xmmword [rsi + 0x10]
movaps xmmword [rsp + 0x1f0], xmm14
mov qword [rsp + 0xb8], rsi
movaps xmmword [rsp + 0x200], xmm6
call fcn.0042c540
pshufd xmm3, xmm9, 0x55
movd dword [rsp + 0x190], xmm9
pshufd xmm2, xmm9, 0xaa
movd dword [rsp + 0xf0], xmm8
pshufd xmm9, xmm9, 0xff
mov rdx, r13
movd dword [rsp + 0x160], xmm3
pshufd xmm3, xmm8, 0x55
movdqa xmm5, xmmword [rsp + 0x60]
mov rcx, r12
movdqa xmm6, xmm0
pshufd xmm4, xmm5, 0x55
movd dword [rsp + 0x90], xmm9
pshufd xmm1, xmm5, 0xaa
movdqa xmm9, xmmword [rsp + 0x110]
pshufd xmm0, xmm5, 0xff
movd dword [rsp + 0x150], xmm2
pshufd xmm2, xmm8, 0xaa
movd dword [rsp + 0xd0], xmm5
pshufd xmm5, xmm9, 0x55
movd dword [rsp + 0x60], xmm4
pshufd xmm4, xmm9, 0xaa
movd dword [rsp + 0x70], xmm1
pshufd xmm1, xmm9, 0xff
movd dword [rsp + 0x80], xmm3
pshufd xmm8, xmm8, 0xff
movd dword [rsp + 0x194], xmm9
movd r14d, xmm5
movd r15d, xmm4
movd ebp, xmm1
movd dword [rsp + 0xe0], xmm0
movd dword [rsp + 0x198], xmm2
movd dword [rsp + 0x144], xmm8
movaps xmmword [rsp + 0x1f0], xmm13
movdqa xmm3, xmmword [rsp + 0x100]
movdqa xmm9, xmmword [rsp + 0x130]
pshufd xmm2, xmm3, 0xaa
pshufd xmm4, xmm9, 0xaa
movd dword [rsp + 0x100], xmm3
pshufd xmm1, xmm9, 0xff
movd dword [rsp + 0x130], xmm9
pshufd xmm5, xmm9, 0x55
movd dword [rsp + 0x120], xmm2
pshufd xmm0, xmm3, 0x55
movd dword [rsp + 0x14c], xmm4
pshufd xmm8, xmm3, 0xff
movd ebx, xmm1
movd dword [rsp + 0x148], xmm5
movdqa xmm3, xmmword [rsp + 0x170]
movd esi, xmm8
movaps xmmword [rsp + 0x200], xmm3
movd dword [rsp + 0x110], xmm0
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x200], xmm6
movaps xmmword [rsp + 0x180], xmm0
movaps xmmword [rsp + 0x1f0], xmm13
call fcn.0042c540
movaps xmmword [rsp + 0x1f0], xmm13
movaps xmmword [rsp + 0x170], xmm0
mov r11d, dword [rsp + 0x190]
mov r10d, dword [rsp + 0x90]
movzx r8d, r11b
mov r9d, r10d
shr r9d, 0x18
mov edx, dword [rdi + r8*4]
mov r8d, dword [rsp + 0x160]
xor edx, dword [rdi + r9*4 + 0xc00]
mov r9d, dword [rsp + 0x150]
mov ecx, r8d
movzx eax, ch
mov ecx, r9d
shr ecx, 0x10
xor edx, dword [rdi + rax*4 + 0x400]
movzx eax, cl
mov ecx, r11d
xor edx, dword [rdi + rax*4 + 0x800]
shr ecx, 0x18
mov eax, r9d
mov dword [rsp + 0x90], edx
movzx edx, r8b
mov edx, dword [rdi + rdx*4]
xor edx, dword [rdi + rcx*4 + 0xc00]
movzx ecx, ah
mov eax, r10d
xor edx, dword [rdi + rcx*4 + 0x400]
movd xmm9, dword [rsp + 0x90]
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr r8d, 0x10
xor edx, dword [rdi + rcx*4 + 0x800]
shr eax, 0x18
mov dword [rsp + 0x150], edx
movzx edx, r9b
shr r9d, 0x18
mov edx, dword [rdi + rdx*4]
xor edx, dword [rdi + rax*4 + 0xc00]
mov eax, r10d
movzx ecx, ah
movd xmm5, dword [rsp + 0x150]
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, r11d
shr ecx, 0x10
punpckldq xmm9, xmm5
movzx ecx, cl
xor edx, dword [rdi + rcx*4 + 0x800]
mov dword [rsp + 0x160], edx
movzx edx, al
mov eax, r11d
movzx ecx, ah
mov r10d, dword [rdi + rdx*4]
xor r10d, dword [rdi + r9*4 + 0xc00]
xor r10d, dword [rdi + rcx*4 + 0x400]
movzx r11d, r8b
movd xmm2, dword [rsp + 0x160]
xor r10d, dword [rdi + r11*4 + 0x800]
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x190], r10d
movd xmm8, dword [rsp + 0x190]
punpckldq xmm2, xmm8
punpcklqdq xmm9, xmm2
pxor xmm9, xmm14
movaps xmmword [rsp + 0x200], xmm9
call fcn.0042c540
movaps xmmword [rsp + 0x150], xmm0
mov eax, dword [rsp + 0x60]
mov r11d, dword [rsp + 0xe0]
mov r8d, dword [rsp + 0xd0]
movzx ecx, ah
mov eax, dword [rsp + 0x70]
mov edx, r11d
shr edx, 0x18
movzx r9d, r8b
mov r10d, edx
mov r9d, dword [rdi + r9*4]
mov edx, eax
xor r9d, dword [rdi + r10*4 + 0xc00]
shr edx, 0x10
xor r9d, dword [rdi + rcx*4 + 0x400]
movzx r10d, dl
movzx edx, byte [rsp + 0x60]
xor r9d, dword [rdi + r10*4 + 0x800]
mov r10d, dword [rsp + 0x60]
mov edx, dword [rdi + rdx*4]
mov dword [rsp + 0x90], r9d
mov r9d, r8d
shr r9d, 0x18
movd xmm0, dword [rsp + 0x90]
mov ecx, r9d
xor edx, dword [rdi + rcx*4 + 0xc00]
movzx ecx, ah
mov eax, r10d
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, r11d
shr eax, 0x18
shr ecx, 0x10
shr r10d, 0x10
movzx r9d, cl
mov ecx, eax
mov eax, r11d
xor edx, dword [rdi + r9*4 + 0x800]
movzx r11d, r11b
mov dword [rsp + 0xd0], edx
movzx edx, byte [rsp + 0x70]
mov edx, dword [rdi + rdx*4]
xor edx, dword [rdi + rcx*4 + 0xc00]
movzx ecx, ah
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, r8d
shr ecx, 0x10
movzx eax, cl
mov ecx, dword [rdi + r11*4]
xor edx, dword [rdi + rax*4 + 0x800]
mov eax, r8d
movzx r8d, r10b
mov r9d, dword [rdi + r8*4 + 0x800]
mov dword [rsp + 0x60], edx
mov edx, dword [rsp + 0x70]
movd xmm1, dword [rsp + 0x60]
shr edx, 0x18
xor ecx, dword [rdi + rdx*4 + 0xc00]
movzx edx, ah
xor ecx, dword [rdi + rdx*4 + 0x400]
mov rdx, r13
xor r9d, ecx
mov rcx, r12
mov dword [rsp + 0x70], r9d
movd xmm3, dword [rsp + 0x70]
movd xmm6, dword [rsp + 0xd0]
punpckldq xmm1, xmm3
punpckldq xmm0, xmm6
movaps xmmword [rsp + 0x1f0], xmm13
punpcklqdq xmm0, xmm1
pxor xmm0, xmm14
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
movaps xmmword [rsp + 0xe0], xmm0
mov r9d, dword [rsp + 0xf0]
mov r11d, dword [rsp + 0x144]
movzx eax, r9b
mov ecx, r11d
mov edx, dword [rdi + rax*4]
mov eax, dword [rsp + 0x80]
shr ecx, 0x18
mov r10d, ecx
xor edx, dword [rdi + r10*4 + 0xc00]
movzx ecx, ah
mov eax, dword [rsp + 0x198]
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, eax
shr ecx, 0x10
movzx r10d, cl
mov ecx, r9d
xor edx, dword [rdi + r10*4 + 0x800]
shr ecx, 0x18
mov r10d, dword [rsp + 0x80]
mov r8d, ecx
movzx ecx, ah
mov dword [rsp + 0x60], edx
movzx edx, byte [rsp + 0x80]
movd xmm5, dword [rsp + 0x60]
mov edx, dword [rdi + rdx*4]
xor edx, dword [rdi + r8*4 + 0xc00]
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, r11d
shr ecx, 0x10
movzx r8d, cl
mov ecx, r10d
xor edx, dword [rdi + r8*4 + 0x800]
shr ecx, 0x18
mov r8d, ecx
mov ecx, r11d
movzx r11d, r11b
movzx ecx, ch
mov dword [rsp + 0x70], edx
movzx edx, al
shr eax, 0x18
mov edx, dword [rdi + rdx*4]
xor edx, dword [rdi + r8*4 + 0xc00]
xor edx, dword [rdi + rcx*4 + 0x400]
mov ecx, r9d
movd xmm4, dword [rsp + 0x70]
shr ecx, 0x10
movzx ecx, cl
punpckldq xmm5, xmm4
xor edx, dword [rdi + rcx*4 + 0x800]
mov dword [rsp + 0x80], edx
mov edx, dword [rdi + r11*4]
xor edx, dword [rdi + rax*4 + 0xc00]
mov eax, r9d
movd xmm8, dword [rsp + 0x80]
movzx ecx, ah
xor edx, dword [rdi + rcx*4 + 0x400]
shr r10d, 0x10
mov rcx, r12
movzx r9d, r10b
xor edx, dword [rdi + r9*4 + 0x800]
mov dword [rsp + 0x90], edx
mov rdx, r13
movd xmm9, dword [rsp + 0x90]
punpckldq xmm8, xmm9
punpcklqdq xmm5, xmm8
pxor xmm5, xmm14
movaps xmmword [rsp + 0x200], xmm5
movaps xmmword [rsp + 0x1f0], xmm13
call fcn.0042c540
mov edx, ebp
mov ecx, r14d
mov r10d, r15d
shr edx, 0x18
shr r10d, 0x10
mov r8d, dword [rsp + 0x194]
movzx r9d, r10b
mov r10d, ebp
shr r10d, 0x10
movaps xmmword [rsp + 0xd0], xmm0
movzx r11d, r8b
movaps xmmword [rsp + 0x1f0], xmm13
mov eax, dword [rdi + r11*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
xor eax, dword [rdi + rdx*4 + 0x400]
mov ecx, r8d
movzx r11d, r14b
xor eax, dword [rdi + r9*4 + 0x800]
shr ecx, 0x18
mov edx, r15d
movzx r9d, r10b
mov r10d, r8d
shr r10d, 0x10
mov dword [rsp + 0x60], eax
mov eax, dword [rdi + r11*4]
movzx r11d, r15b
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, dh
mov edx, r14d
xor eax, dword [rdi + rcx*4 + 0x400]
shr edx, 0x18
mov ecx, ebp
xor eax, dword [rdi + r9*4 + 0x800]
movzx r9d, r10b
shr r15d, 0x18
movzx ebp, bpl
shr r14d, 0x10
movd xmm0, dword [rsp + 0x60]
movzx r14d, r14b
mov dword [rsp + 0x70], eax
mov eax, dword [rdi + r11*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
mov r11d, dword [rdi + rbp*4]
xor eax, dword [rdi + rdx*4 + 0x400]
xor r11d, dword [rdi + r15*4 + 0xc00]
mov rdx, r13
xor eax, dword [rdi + r9*4 + 0x800]
movd xmm2, dword [rsp + 0x70]
punpckldq xmm0, xmm2
mov dword [rsp + 0x80], eax
mov eax, r8d
movzx ecx, ah
movd xmm6, dword [rsp + 0x80]
xor r11d, dword [rdi + rcx*4 + 0x400]
mov rcx, r12
xor r11d, dword [rdi + r14*4 + 0x800]
mov dword [rsp + 0x90], r11d
movd xmm3, dword [rsp + 0x90]
punpckldq xmm6, xmm3
punpcklqdq xmm0, xmm6
pxor xmm0, xmm14
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
mov edx, esi
movdqa xmm9, xmm0
shr edx, 0x18
mov r8d, dword [rsp + 0x100]
mov r9d, dword [rsp + 0x120]
mov eax, dword [rsp + 0x110]
movaps xmmword [rsp + 0x1f0], xmm13
movzx r15d, r8b
mov r11d, r9d
movzx ebp, ah
shr r11d, 0x10
mov r14d, eax
movzx ecx, r11b
mov r11d, esi
mov r10d, dword [rdi + r15*4]
xor r10d, dword [rdi + rdx*4 + 0xc00]
mov edx, r8d
xor r10d, dword [rdi + rbp*4 + 0x400]
movzx r15d, al
shr edx, 0x18
xor r10d, dword [rdi + rcx*4 + 0x800]
mov eax, r9d
movzx ebp, ah
mov eax, esi
movzx esi, sil
mov dword [rsp + 0x60], r10d
mov r10d, dword [rdi + r15*4]
movzx r15d, r9b
xor r10d, dword [rdi + rdx*4 + 0xc00]
mov edx, r14d
movd xmm1, dword [rsp + 0x60]
xor r10d, dword [rdi + rbp*4 + 0x400]
shr r11d, 0x10
shr edx, 0x18
movzx ecx, r11b
shr r9d, 0x18
mov r11d, r8d
xor r10d, dword [rdi + rcx*4 + 0x800]
mov r9d, r9d
shr r11d, 0x10
movzx ebp, ah
shr r14d, 0x10
movzx ecx, r11b
mov dword [rsp + 0x70], r10d
mov r10d, dword [rdi + r15*4]
xor r10d, dword [rdi + rdx*4 + 0xc00]
mov edx, r8d
mov r15d, dword [rdi + rsi*4]
movzx eax, dh
xor r15d, dword [rdi + r9*4 + 0xc00]
xor r10d, dword [rdi + rbp*4 + 0x400]
xor r15d, dword [rdi + rax*4 + 0x400]
movzx r8d, r14b
xor r10d, dword [rdi + rcx*4 + 0x800]
xor r15d, dword [rdi + r8*4 + 0x800]
movd xmm4, dword [rsp + 0x70]
mov rdx, r13
mov rcx, r12
punpckldq xmm1, xmm4
mov dword [rsp + 0x80], r10d
mov dword [rsp + 0x90], r15d
movd xmm8, dword [rsp + 0x80]
movd xmm5, dword [rsp + 0x90]
punpckldq xmm8, xmm5
punpcklqdq xmm1, xmm8
pxor xmm1, xmm14
movaps xmmword [rsp + 0x200], xmm1
call fcn.0042c540
mov r11d, ebx
movdqa xmm8, xmm0
shr r11d, 0x18
mov r10d, dword [rsp + 0x130]
mov r9d, dword [rsp + 0x14c]
mov ecx, dword [rsp + 0x148]
movaps xmmword [rsp + 0x1f0], xmm13
movzx ebp, r10b
mov r15d, r9d
movzx edx, ch
shr r15d, 0x10
mov r14d, ecx
movzx eax, r15b
movzx r8d, cl
mov ecx, r9d
mov esi, dword [rdi + rbp*4]
xor esi, dword [rdi + r11*4 + 0xc00]
mov ebp, r10d
xor esi, dword [rdi + rdx*4 + 0x400]
shr ebp, 0x18
mov edx, ebx
xor esi, dword [rdi + rax*4 + 0x800]
mov r11d, dword [rdi + r8*4]
shr edx, 0x10
xor r11d, dword [rdi + rbp*4 + 0xc00]
movzx r9d, dl
mov r8d, r14d
shr r8d, 0x18
movzx r15d, cl
movzx ebp, bh
mov eax, dword [rdi + r15*4]
xor eax, dword [rdi + r8*4 + 0xc00]
movzx ebx, bl
mov dword [rsp + 0x60], esi
movzx esi, ch
xor eax, dword [rdi + rbp*4 + 0x400]
xor r11d, dword [rdi + rsi*4 + 0x400]
shr ecx, 0x18
mov edx, dword [rdi + rbx*4]
xor r11d, dword [rdi + r9*4 + 0x800]
mov ecx, ecx
movd xmm0, dword [rsp + 0x60]
xor edx, dword [rdi + rcx*4 + 0xc00]
mov rcx, r12
mov dword [rsp + 0x70], r11d
mov r11d, r10d
shr r11d, 0x10
movd xmm2, dword [rsp + 0x70]
movzx esi, r11b
xor eax, dword [rdi + rsi*4 + 0x800]
punpckldq xmm0, xmm2
mov dword [rsp + 0x80], eax
mov eax, r10d
mov r10d, r14d
movzx ebp, ah
shr r10d, 0x10
movd xmm6, dword [rsp + 0x80]
movzx r14d, r10b
xor edx, dword [rdi + rbp*4 + 0x400]
xor edx, dword [rdi + r14*4 + 0x800]
mov dword [rsp + 0x90], edx
mov rdx, r13
movd xmm3, dword [rsp + 0x90]
punpckldq xmm6, xmm3
punpcklqdq xmm0, xmm6
pxor xmm0, xmm14
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm6, xmm0
movdqa xmm5, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0x1f0], xmm12
movaps xmmword [rsp + 0x200], xmm5
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x1f0], xmm12
movdqa xmm4, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x200], xmm4
call fcn.0042c540
movaps xmmword [rsp + 0x70], xmm0
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x1f0], xmm12
movdqa xmm0, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x1f0], xmm12
movdqa xmm5, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x200], xmm5
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0x1f0], xmm12
movdqa xmm4, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x200], xmm4
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x200], xmm9
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x1f0], xmm12
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm9, xmm0
movaps xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x1f0], xmm12
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm8, xmm0
movaps xmmword [rsp + 0x200], xmm6
movaps xmmword [rsp + 0x1f0], xmm12
call fcn.0042c540
movd dword [rsp + 0x110], xmm9
movd dword [rsp + 0x14c], xmm8
movd dword [rsp + 0x170], xmm0
movdqa xmm2, xmmword [rsp + 0x80]
movdqa xmm3, xmmword [rsp + 0x70]
movd r9d, xmm2
pshufd xmm5, xmm2, 0xaa
pshufd xmm6, xmm2, 0x55
movd dword [rsp + 0x70], xmm3
movzx r8d, r9b
pshufd xmm1, xmm2, 0xff
mov eax, dword [rdi + r8*4]
pshufd xmm2, xmm3, 0xaa
movd ecx, xmm5
movdqa xmm5, xmmword [rsp + 0x90]
movd edx, xmm6
pshufd xmm4, xmm3, 0x55
movd r10d, xmm1
pshufd xmm6, xmm3, 0xff
movd r14d, xmm2
pshufd xmm3, xmm5, 0xaa
mov r11d, r10d
movdqa xmm2, xmmword [rsp + 0xe0]
shr r11d, 0x18
pshufd xmm1, xmm5, 0x55
mov r8d, ecx
movd dword [rsp + 0x80], xmm4
pshufd xmm4, xmm5, 0xff
movd dword [rsp + 0x1bc], xmm6
pshufd xmm6, xmm2, 0x55
movd r13d, xmm3
movd r15d, xmm2
xor eax, dword [rdi + r11*4 + 0xc00]
movd esi, xmm4
shr r8d, 0x10
movd dword [rsp + 0x90], xmm5
movdqa xmm3, xmmword [rsp + 0x60]
movd ebp, xmm6
pshufd xmm5, xmm2, 0xaa
mov dword [rsp + 0x60], edx
pshufd xmm4, xmm3, 0x55
movd dword [rsp + 0xd0], xmm1
pshufd xmm6, xmm3, 0xff
movzx edx, dh
pshufd xmm1, xmm2, 0xff
xor eax, dword [rdi + rdx*4 + 0x400]
pshufd xmm2, xmm3, 0xaa
movzx r11d, r8b
xor eax, dword [rdi + r11*4 + 0x800]
movd r12d, xmm5
movd dword [rsp + 0xe0], xmm3
movd ebx, xmm1
pshufd xmm5, xmm9, 0x55
pshufd xmm1, xmm9, 0xaa
movd dword [rsp + 0xf0], xmm4
pshufd xmm3, xmm8, 0x55
movd dword [rsp + 0x144], xmm2
pshufd xmm4, xmm8, 0xaa
movd dword [rsp + 0x100], xmm6
pshufd xmm2, xmm0, 0x55
movd dword [rsp + 0x120], xmm5
pshufd xmm6, xmm0, 0xaa
movd dword [rsp + 0x130], xmm1
pshufd xmm9, xmm9, 0xff
movd dword [rsp + 0x160], xmm4
pshufd xmm8, xmm8, 0xff
movd dword [rsp + 0x180], xmm2
pshufd xmm0, xmm0, 0xff
movd dword [rsp + 0x150], xmm3
movd dword [rsp + 0x148], xmm9
mov dword [rsp + 0x19c], eax
mov edx, r9d
movd dword [rsp + 0x190], xmm8
shr edx, 0x18
mov r11d, r10d
movd dword [rsp + 0x194], xmm6
shr r11d, 0x10
movd dword [rsp + 0x198], xmm0
mov r8d, dword [rsp + 0x60]
movd xmm9, dword [rsp + 0x19c]
movaps xmmword [rsp + 0x1f0], xmm10
movzx eax, r8b
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r11b
mov r11d, r8d
xor eax, dword [rdi + rdx*4 + 0x800]
shr r11d, 0x18
mov edx, r10d
movzx edx, dh
movzx r10d, r10b
shr r8d, 0x10
mov dword [rsp + 0x60], eax
movzx eax, cl
shr ecx, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + r11*4 + 0xc00]
mov r11d, r9d
shr r11d, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
movd xmm3, dword [rsp + 0x60]
movzx edx, r11b
xor eax, dword [rdi + rdx*4 + 0x800]
punpckldq xmm9, xmm3
mov dword [rsp + 0x1a0], eax
mov eax, dword [rdi + r10*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
mov ecx, r9d
movzx r9d, r8b
movzx edx, ch
movd xmm5, dword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x1b0]
xor eax, dword [rdi + rdx*4 + 0x400]
mov rdx, qword [rsp + 0xc0]
xor eax, dword [rdi + r9*4 + 0x800]
mov dword [rsp + 0x1b8], eax
movd xmm1, dword [rsp + 0x1b8]
punpckldq xmm5, xmm1
punpcklqdq xmm9, xmm5
pxor xmm9, xmm15
movaps xmmword [rsp + 0x200], xmm9
call fcn.0042c540
mov r9d, r14d
movaps xmmword [rsp + 0x1a0], xmm0
mov r8d, dword [rsp + 0x1bc]
mov r10d, dword [rsp + 0x70]
movaps xmmword [rsp + 0x1f0], xmm10
mov ecx, r8d
movzx r11d, r10b
shr ecx, 0x18
mov eax, dword [rdi + r11*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
shr r9d, 0x10
mov ecx, dword [rsp + 0x80]
movzx r11d, r9b
movzx edx, ch
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r10d
xor eax, dword [rdi + r11*4 + 0x800]
shr edx, 0x18
mov r11d, r8d
shr r11d, 0x10
mov dword [rsp + 0x60], eax
movzx eax, cl
mov r9d, dword [rdi + rax*4]
mov eax, r14d
xor r9d, dword [rdi + rdx*4 + 0xc00]
movzx edx, ah
movzx eax, r11b
movd xmm6, dword [rsp + 0x60]
xor r9d, dword [rdi + rdx*4 + 0x400]
mov edx, ecx
shr ecx, 0x10
xor r9d, dword [rdi + rax*4 + 0x800]
shr edx, 0x18
mov eax, r8d
movzx r8d, r8b
mov dword [rsp + 0x70], r9d
movzx r9d, r14b
shr r14d, 0x18
mov r11d, dword [rdi + r9*4]
mov r9d, r10d
xor r11d, dword [rdi + rdx*4 + 0xc00]
shr r9d, 0x10
movzx edx, ah
movd xmm0, dword [rsp + 0x70]
xor r11d, dword [rdi + rdx*4 + 0x400]
movzx eax, r9b
mov edx, r10d
xor r11d, dword [rdi + rax*4 + 0x800]
movzx eax, dh
movzx r10d, cl
punpckldq xmm6, xmm0
mov rdx, qword [rsp + 0xc0]
mov dword [rsp + 0x80], r11d
mov r11d, dword [rdi + r8*4]
xor r11d, dword [rdi + r14*4 + 0xc00]
movd xmm8, dword [rsp + 0x80]
xor r11d, dword [rdi + rax*4 + 0x400]
mov r14, qword [rsp + 0x1b0]
xor r11d, dword [rdi + r10*4 + 0x800]
mov rcx, r14
mov dword [rsp + 0x19c], r11d
movd xmm2, dword [rsp + 0x19c]
punpckldq xmm8, xmm2
punpcklqdq xmm6, xmm8
pxor xmm6, xmm15
movaps xmmword [rsp + 0x200], xmm6
call fcn.0042c540
mov r8d, esi
mov eax, r13d
shr r8d, 0x18
shr eax, 0x10
mov r9d, dword [rsp + 0x90]
movzx r10d, al
movdqa xmm9, xmm0
movaps xmmword [rsp + 0x1f0], xmm10
movzx ecx, r9b
mov r11d, dword [rdi + rcx*4]
mov ecx, dword [rsp + 0xd0]
xor r11d, dword [rdi + r8*4 + 0xc00]
movzx edx, ch
movzx r8d, cl
xor r11d, dword [rdi + rdx*4 + 0x400]
mov edx, r13d
mov eax, dword [rdi + r8*4]
xor r11d, dword [rdi + r10*4 + 0x800]
mov r10d, esi
movzx edx, dh
shr r10d, 0x10
movzx r8d, r10b
mov dword [rsp + 0x60], r11d
mov r11d, r9d
shr r11d, 0x18
movd xmm3, dword [rsp + 0x60]
xor eax, dword [rdi + r11*4 + 0xc00]
mov r11d, ecx
xor eax, dword [rdi + rdx*4 + 0x400]
shr r11d, 0x18
mov edx, esi
xor eax, dword [rdi + r8*4 + 0x800]
mov r8d, r9d
movzx esi, sil
mov dword [rsp + 0x70], eax
movzx eax, r13b
mov r10d, dword [rdi + rax*4]
movzx eax, dh
xor r10d, dword [rdi + r11*4 + 0xc00]
xor r10d, dword [rdi + rax*4 + 0x400]
shr r8d, 0x10
shr r13d, 0x18
movzx r11d, r8b
mov edx, r9d
shr ecx, 0x10
xor r10d, dword [rdi + r11*4 + 0x800]
movzx eax, dh
movzx r9d, cl
movd xmm4, dword [rsp + 0x70]
mov rcx, r14
punpckldq xmm3, xmm4
mov dword [rsp + 0x80], r10d
mov r10d, dword [rdi + rsi*4]
xor r10d, dword [rdi + r13*4 + 0xc00]
movd xmm5, dword [rsp + 0x80]
xor r10d, dword [rdi + rax*4 + 0x400]
mov r13, qword [rsp + 0xc0]
xor r10d, dword [rdi + r9*4 + 0x800]
mov rdx, r13
mov dword [rsp + 0x90], r10d
movd xmm1, dword [rsp + 0x90]
punpckldq xmm5, xmm1
punpcklqdq xmm3, xmm5
pxor xmm3, xmm15
movaps xmmword [rsp + 0x200], xmm3
call fcn.0042c540
mov r8d, ebx
movzx ecx, r15b
mov edx, ebp
shr r8d, 0x18
mov r10d, r12d
movzx esi, dh
mov r11d, dword [rdi + rcx*4]
shr r10d, 0x10
xor r11d, dword [rdi + r8*4 + 0xc00]
xor r11d, dword [rdi + rsi*4 + 0x400]
movzx eax, r10b
mov ecx, r15d
xor r11d, dword [rdi + rax*4 + 0x800]
movzx r9d, bpl
shr ecx, 0x18
mov edx, r12d
mov r8d, dword [rdi + r9*4]
xor r8d, dword [rdi + rcx*4 + 0xc00]
movzx esi, dh
mov r9d, ebp
movzx eax, r12b
xor r8d, dword [rdi + rsi*4 + 0x400]
shr r9d, 0x18
mov ecx, dword [rdi + rax*4]
mov dword [rsp + 0x60], r11d
mov r11d, ebx
xor ecx, dword [rdi + r9*4 + 0xc00]
shr r11d, 0x10
movzx edx, bh
mov eax, r15d
movzx r10d, r11b
xor ecx, dword [rdi + rdx*4 + 0x400]
shr r12d, 0x18
xor r8d, dword [rdi + r10*4 + 0x800]
movzx ebx, bl
shr ebp, 0x10
mov r11d, dword [rdi + rbx*4]
xor r11d, dword [rdi + r12*4 + 0xc00]
mov rdx, r13
movdqa xmm8, xmm0
movd xmm0, dword [rsp + 0x60]
movaps xmmword [rsp + 0x1f0], xmm10
mov dword [rsp + 0x70], r8d
mov r8d, r15d
movzx r15d, bpl
shr r8d, 0x10
mov r12, r14
movzx esi, r8b
xor ecx, dword [rdi + rsi*4 + 0x800]
movd xmm5, dword [rsp + 0x70]
punpckldq xmm0, xmm5
mov dword [rsp + 0x80], ecx
movzx ecx, ah
xor r11d, dword [rdi + rcx*4 + 0x400]
movd xmm2, dword [rsp + 0x80]
mov rcx, r14
xor r11d, dword [rdi + r15*4 + 0x800]
mov dword [rsp + 0x90], r11d
movd xmm6, dword [rsp + 0x90]
punpckldq xmm2, xmm6
punpcklqdq xmm0, xmm2
pxor xmm0, xmm15
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
movaps xmmword [rsp + 0x1f0], xmm10
movdqa xmm6, xmm0
mov r10d, dword [rsp + 0x100]
mov r14d, dword [rsp + 0xe0]
mov ebx, dword [rsp + 0xf0]
mov ecx, dword [rsp + 0x144]
mov r9d, r10d
movzx ebp, r14b
shr r9d, 0x18
mov r8d, dword [rdi + rbp*4]
movzx edx, bh
xor r8d, dword [rdi + r9*4 + 0xc00]
mov esi, ecx
mov ebp, r14d
xor r8d, dword [rdi + rdx*4 + 0x400]
shr esi, 0x10
movzx eax, bl
movzx r11d, sil
shr ebp, 0x18
mov r15d, ebx
xor r8d, dword [rdi + r11*4 + 0x800]
mov r9d, dword [rdi + rax*4]
movzx ebx, ch
xor r9d, dword [rdi + rbp*4 + 0xc00]
mov r11d, r15d
movzx esi, cl
xor r9d, dword [rdi + rbx*4 + 0x400]
shr r11d, 0x18
mov ebx, r10d
mov eax, dword [rdi + rsi*4]
movzx ebp, bh
xor eax, dword [rdi + r11*4 + 0xc00]
mov dword [rsp + 0x60], r8d
mov r8d, r10d
mov r10d, r14d
shr r8d, 0x10
shr r10d, 0x10
xor eax, dword [rdi + rbp*4 + 0x400]
movzx edx, r8b
shr ecx, 0x18
movzx r8d, bl
xor r9d, dword [rdi + rdx*4 + 0x800]
mov esi, ecx
mov edx, dword [rdi + r8*4]
shr r15d, 0x10
xor edx, dword [rdi + rsi*4 + 0xc00]
movd xmm2, dword [rsp + 0x60]
movzx r15d, r15b
mov rcx, r12
mov dword [rsp + 0x70], r9d
movzx r9d, r10b
xor eax, dword [rdi + r9*4 + 0x800]
movd xmm4, dword [rsp + 0x70]
punpckldq xmm2, xmm4
mov dword [rsp + 0x80], eax
mov eax, r14d
movzx ebx, ah
movd xmm1, dword [rsp + 0x80]
xor edx, dword [rdi + rbx*4 + 0x400]
xor edx, dword [rdi + r15*4 + 0x800]
mov dword [rsp + 0x90], edx
mov rdx, r13
movd xmm3, dword [rsp + 0x90]
punpckldq xmm1, xmm3
punpcklqdq xmm2, xmm1
pxor xmm2, xmm15
movaps xmmword [rsp + 0x200], xmm2
call fcn.0042c540
movaps xmmword [rsp + 0x1f0], xmm10
movaps xmmword [rsp + 0xe0], xmm0
mov r10d, dword [rsp + 0x148]
mov ebp, dword [rsp + 0x110]
mov eax, dword [rsp + 0x120]
mov r9d, r10d
movzx r11d, bpl
mov r15d, ebp
shr r9d, 0x18
mov r8d, dword [rdi + r11*4]
movzx ecx, ah
xor r8d, dword [rdi + r9*4 + 0xc00]
movzx ebx, al
shr r15d, 0x18
xor r8d, dword [rdi + rcx*4 + 0x400]
mov ecx, dword [rsp + 0x130]
mov r9d, r10d
mov r14d, eax
mov r11d, dword [rdi + rbx*4]
shr r9d, 0x10
xor r11d, dword [rdi + r15*4 + 0xc00]
mov ebx, r10d
mov r10d, ebp
mov esi, ecx
movzx eax, ch
shr esi, 0x10
xor r11d, dword [rdi + rax*4 + 0x400]
movzx eax, bh
movzx edx, sil
movzx esi, cl
xor r8d, dword [rdi + rdx*4 + 0x800]
mov edx, r14d
mov r15d, dword [rdi + rsi*4]
shr edx, 0x18
xor r15d, dword [rdi + rdx*4 + 0xc00]
mov edx, ebp
xor r15d, dword [rdi + rax*4 + 0x400]
movzx ebp, dh
mov rdx, r13
mov dword [rsp + 0x60], r8d
movzx r8d, r9b
movzx r9d, bl
xor r11d, dword [rdi + r8*4 + 0x800]
shr r10d, 0x10
shr ecx, 0x18
mov r8d, dword [rdi + r9*4]
shr r14d, 0x10
xor r8d, dword [rdi + rcx*4 + 0xc00]
xor r8d, dword [rdi + rbp*4 + 0x400]
movzx esi, r14b
movd xmm3, dword [rsp + 0x60]
xor r8d, dword [rdi + rsi*4 + 0x800]
mov rcx, r12
mov dword [rsp + 0x70], r11d
movzx r11d, r10b
xor r15d, dword [rdi + r11*4 + 0x800]
movd xmm2, dword [rsp + 0x70]
mov dword [rsp + 0x90], r8d
punpckldq xmm3, xmm2
movd xmm1, dword [rsp + 0x90]
mov dword [rsp + 0x80], r15d
movd xmm5, dword [rsp + 0x80]
punpckldq xmm5, xmm1
punpcklqdq xmm3, xmm5
pxor xmm3, xmm15
movaps xmmword [rsp + 0x200], xmm3
call fcn.0042c540
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0x1f0], xmm10
mov r11d, dword [rsp + 0x190]
mov r10d, dword [rsp + 0x14c]
mov ebx, r11d
movzx r15d, r10b
mov edx, r10d
shr ebx, 0x18
mov eax, dword [rdi + r15*4]
shr edx, 0x18
xor eax, dword [rdi + rbx*4 + 0xc00]
mov ebx, dword [rsp + 0x150]
mov r15d, r11d
shr r15d, 0x10
movzx ecx, bh
movzx r14d, bl
mov ebp, ebx
xor eax, dword [rdi + rcx*4 + 0x400]
mov ecx, dword [rsp + 0x160]
movzx ebx, r15b
mov esi, dword [rdi + r14*4]
xor esi, dword [rdi + rdx*4 + 0xc00]
mov r9d, ecx
shr r9d, 0x10
movzx r8d, r9b
movzx r9d, cl
xor eax, dword [rdi + r8*4 + 0x800]
mov r8d, ebp
mov r14d, dword [rdi + r9*4]
shr r8d, 0x18
shr ebp, 0x10
xor r14d, dword [rdi + r8*4 + 0xc00]
movzx ebp, bpl
mov dword [rsp + 0x60], eax
movzx eax, ch
shr ecx, 0x18
xor esi, dword [rdi + rax*4 + 0x400]
mov eax, r11d
mov ecx, ecx
xor esi, dword [rdi + rbx*4 + 0x800]
movzx edx, ah
mov r11d, r10d
movzx r15d, al
mov eax, r10d
xor r14d, dword [rdi + rdx*4 + 0x400]
shr r11d, 0x10
movzx edx, ah
mov ebx, dword [rdi + r15*4]
xor ebx, dword [rdi + rcx*4 + 0xc00]
movd xmm1, dword [rsp + 0x60]
mov rcx, r12
xor ebx, dword [rdi + rdx*4 + 0x400]
mov dword [rsp + 0x70], esi
movzx esi, r11b
xor r14d, dword [rdi + rsi*4 + 0x800]
xor ebx, dword [rdi + rbp*4 + 0x800]
mov rdx, r13
movd xmm3, dword [rsp + 0x70]
punpckldq xmm1, xmm3
mov dword [rsp + 0x80], r14d
mov dword [rsp + 0x90], ebx
movd xmm5, dword [rsp + 0x80]
movd xmm0, dword [rsp + 0x90]
punpckldq xmm5, xmm0
punpcklqdq xmm1, xmm5
pxor xmm1, xmm15
movaps xmmword [rsp + 0x200], xmm1
call fcn.0042c540
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0x1f0], xmm10
mov r9d, dword [rsp + 0x198]
mov r14d, dword [rsp + 0x170]
mov ebx, dword [rsp + 0x180]
mov r11d, r9d
movzx r8d, r14b
mov edx, r14d
shr r11d, 0x18
mov esi, dword [rdi + r8*4]
movzx ecx, bh
xor esi, dword [rdi + r11*4 + 0xc00]
movzx r10d, bl
mov r8d, r9d
xor esi, dword [rdi + rcx*4 + 0x400]
mov ecx, dword [rsp + 0x194]
mov ebp, dword [rdi + r10*4]
mov r10d, ebx
mov r15d, ecx
shr r15d, 0x10
shr edx, 0x18
shr r8d, 0x10
movzx eax, r15b
xor ebp, dword [rdi + rdx*4 + 0xc00]
movzx r11d, r8b
xor esi, dword [rdi + rax*4 + 0x800]
movzx r15d, cl
shr ebx, 0x18
mov eax, dword [rdi + r15*4]
xor eax, dword [rdi + rbx*4 + 0xc00]
mov ebx, r9d
mov r9d, r14d
movzx edx, bh
shr r9d, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
mov rdx, r13
mov dword [rsp + 0x60], esi
movzx esi, ch
shr ecx, 0x18
xor ebp, dword [rdi + rsi*4 + 0x400]
mov ecx, ecx
movzx esi, bl
xor ebp, dword [rdi + r11*4 + 0x800]
mov r8d, dword [rdi + rsi*4]
xor r8d, dword [rdi + rcx*4 + 0xc00]
movd xmm0, dword [rsp + 0x60]
mov rcx, r12
mov dword [rsp + 0x70], ebp
movzx ebp, r9b
xor eax, dword [rdi + rbp*4 + 0x800]
movd xmm1, dword [rsp + 0x70]
punpckldq xmm0, xmm1
mov dword [rsp + 0x80], eax
mov eax, r14d
mov r14d, r10d
movzx ebx, ah
shr r14d, 0x10
movd xmm5, dword [rsp + 0x80]
movzx r11d, r14b
xor r8d, dword [rdi + rbx*4 + 0x400]
xor r8d, dword [rdi + r11*4 + 0x800]
mov dword [rsp + 0x90], r8d
movd xmm4, dword [rsp + 0x90]
punpckldq xmm5, xmm4
punpcklqdq xmm0, xmm5
pxor xmm0, xmm15
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x1f0], xmm11
movdqa xmm2, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x200], xmm2
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x200], xmm9
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x1f0], xmm11
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm9, xmm0
movaps xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x1f0], xmm11
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm8, xmm0
movaps xmmword [rsp + 0x200], xmm6
movaps xmmword [rsp + 0x1f0], xmm11
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movdqa xmm6, xmm0
movdqa xmm4, xmmword [rsp + 0xe0]
movd ebp, xmm6
movaps xmmword [rsp + 0x200], xmm4
movaps xmmword [rsp + 0x1f0], xmm11
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x1f0], xmm11
movdqa xmm1, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x200], xmm1
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x1f0], xmm11
movdqa xmm2, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x200], xmm2
call fcn.0042c540
mov rdx, r13
mov rcx, r12
movaps xmmword [rsp + 0x120], xmm0
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0x1b0], r12
movaps xmmword [rsp + 0x1f0], xmm11
movdqa xmm4, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x200], xmm4
call fcn.0042c540
pshufd xmm4, xmm9, 0x55
movd dword [rsp + 0x194], xmm9
movd dword [rsp + 0x19c], xmm8
movd dword [rsp + 0x150], xmm0
movdqa xmm1, xmmword [rsp + 0x60]
pshufd xmm5, xmm1, 0xff
movd r13d, xmm1
pshufd xmm3, xmm1, 0x55
movd dword [rsp + 0x60], xmm4
pshufd xmm2, xmm1, 0xaa
movzx edx, r13b
movd r14d, xmm5
pshufd xmm1, xmm9, 0xaa
movd r11d, xmm3
pshufd xmm9, xmm9, 0xff
movd esi, xmm2
mov r15d, r14d
mov eax, dword [rdi + rdx*4]
pshufd xmm3, xmm8, 0x55
shr r15d, 0x18
pshufd xmm2, xmm8, 0xaa
xor eax, dword [rdi + r15*4 + 0xc00]
pshufd xmm8, xmm8, 0xff
mov edx, r11d
mov r15d, esi
pshufd xmm5, xmm6, 0x55
shr r15d, 0x10
movzx edx, dh
movd r12d, xmm9
movd ecx, xmm8
movdqa xmm9, xmmword [rsp + 0x80]
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r15b
movd r10d, xmm1
movdqa xmm8, xmmword [rsp + 0xf0]
movd r9d, xmm2
xor eax, dword [rdi + rdx*4 + 0x800]
movd ebx, xmm5
mov r15d, r13d
pshufd xmm4, xmm6, 0xaa
movd dword [rsp + 0x70], xmm3
pshufd xmm1, xmm9, 0x55
movd dword [rsp + 0x80], xmm9
pshufd xmm3, xmm9, 0xaa
movd dword [rsp + 0xf0], xmm8
pshufd xmm2, xmm9, 0xff
movd r8d, xmm4
pshufd xmm5, xmm8, 0x55
movd dword [rsp + 0x90], xmm1
pshufd xmm6, xmm6, 0xff
movd dword [rsp + 0xd0], xmm3
pshufd xmm4, xmm8, 0xaa
movd dword [rsp + 0xe0], xmm2
movd dword [rsp + 0x144], xmm5
mov dword [rsp + 0x180], eax
shr r15d, 0x18
pshufd xmm5, xmm0, 0xaa
movd dword [rsp + 0x1a0], xmm6
movzx eax, r11b
pshufd xmm6, xmm8, 0xff
pshufd xmm8, xmm0, 0x55
mov eax, dword [rdi + rax*4]
movdqa xmm9, xmmword [rsp + 0x120]
mov edx, esi
pshufd xmm0, xmm0, 0xff
xor eax, dword [rdi + r15*4 + 0xc00]
pshufd xmm1, xmm9, 0x55
mov r15d, r14d
pshufd xmm3, xmm9, 0xaa
shr r15d, 0x10
pshufd xmm2, xmm9, 0xff
movzx edx, dh
movd dword [rsp + 0x100], xmm4
movd dword [rsp + 0x110], xmm6
movd dword [rsp + 0x120], xmm9
movd dword [rsp + 0x130], xmm1
movd dword [rsp + 0x148], xmm3
movd dword [rsp + 0x14c], xmm2
movd dword [rsp + 0x160], xmm8
movd dword [rsp + 0x190], xmm5
movd dword [rsp + 0x170], xmm0
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r15b
xor eax, dword [rdi + rdx*4 + 0x800]
mov r15d, r11d
mov edx, r14d
shr r15d, 0x18
movzx edx, dh
movzx r14d, r14b
shr r11d, 0x10
movd xmm9, dword [rsp + 0x180]
movdqa xmm8, xmmword [rsp + 0x1c0]
mov dword [rsp + 0x198], eax
movzx eax, sil
shr esi, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + r15*4 + 0xc00]
mov r15d, r13d
shr r15d, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
movd xmm1, dword [rsp + 0x198]
movzx edx, r15b
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r13d
movzx r13d, r11b
mov r11d, r12d
punpckldq xmm9, xmm1
shr r11d, 0x18
mov dword [rsp + 0x1b8], eax
mov eax, dword [rdi + r14*4]
xor eax, dword [rdi + rsi*4 + 0xc00]
movzx esi, dh
mov edx, dword [rsp + 0x60]
xor eax, dword [rdi + rsi*4 + 0x400]
movd xmm4, dword [rsp + 0x1b8]
xor eax, dword [rdi + r13*4 + 0x800]
movzx esi, dh
mov dword [rsp + 0x1bc], eax
movzx eax, byte [rsp + 0x194]
movd xmm6, dword [rsp + 0x1bc]
punpckldq xmm4, xmm6
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + r11*4 + 0xc00]
mov r11d, r10d
shr r11d, 0x10
xor eax, dword [rdi + rsi*4 + 0x400]
mov esi, dword [rsp + 0x194]
movzx edx, r11b
punpcklqdq xmm9, xmm4
xor eax, dword [rdi + rdx*4 + 0x800]
mov r11d, r12d
mov edx, r10d
shr esi, 0x18
shr r11d, 0x10
pxor xmm9, xmm8
mov dword [rsp + 0x198], eax
movzx eax, byte [rsp + 0x60]
pshufd xmm3, xmm9, 0x55
movd r15d, xmm9
pshufd xmm2, xmm9, 0xaa
pshufd xmm5, xmm9, 0xff
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rsi*4 + 0xc00]
movzx esi, dh
xor eax, dword [rdi + rsi*4 + 0x400]
movzx edx, r11b
movd dword [rsp + 0x180], xmm3
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r12d
movzx r12d, r12b
movd r14d, xmm2
movd r13d, xmm5
mov dword [rsp + 0x1b8], eax
mov esi, dword [rsp + 0x60]
movzx eax, r10b
mov eax, dword [rdi + rax*4]
shr r10d, 0x18
movd xmm6, dword [rsp + 0x198]
movd xmm9, dword [rsp + 0x1b8]
shr esi, 0x18
xor eax, dword [rdi + rsi*4 + 0xc00]
movzx esi, dh
mov edx, dword [rsp + 0x194]
xor eax, dword [rdi + rsi*4 + 0x400]
punpckldq xmm6, xmm9
mov r11d, edx
shr r11d, 0x10
movzx esi, r11b
xor eax, dword [rdi + rsi*4 + 0x800]
movzx esi, dh
mov edx, ecx
mov dword [rsp + 0x194], eax
mov eax, dword [rdi + r12*4]
xor eax, dword [rdi + r10*4 + 0xc00]
mov r10d, dword [rsp + 0x60]
xor eax, dword [rdi + rsi*4 + 0x400]
movd xmm4, dword [rsp + 0x194]
shr r10d, 0x10
shr edx, 0x18
movzx r11d, r10b
mov r10d, r9d
xor eax, dword [rdi + r11*4 + 0x800]
shr r10d, 0x10
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x19c]
movd xmm0, dword [rsp + 0x60]
punpckldq xmm4, xmm0
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x70]
punpcklqdq xmm6, xmm4
movzx esi, dh
movzx edx, r10b
mov r10d, ecx
xor eax, dword [rdi + rsi*4 + 0x400]
mov esi, dword [rsp + 0x19c]
shr r10d, 0x10
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r9d
pxor xmm6, xmm8
shr esi, 0x18
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x70]
movd dword [rsp + 0x194], xmm6
pshufd xmm1, xmm6, 0x55
pshufd xmm3, xmm6, 0xaa
pshufd xmm2, xmm6, 0xff
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rsi*4 + 0xc00]
movzx esi, dh
xor eax, dword [rdi + rsi*4 + 0x400]
movzx edx, r10b
movd dword [rsp + 0x198], xmm1
xor eax, dword [rdi + rdx*4 + 0x800]
movd r12d, xmm3
movd r11d, xmm2
mov dword [rsp + 0x1b8], eax
mov edx, dword [rsp + 0x70]
movzx eax, r9b
mov eax, dword [rdi + rax*4]
shr r9d, 0x18
movd xmm0, dword [rsp + 0x60]
movd xmm6, dword [rsp + 0x1b8]
mov esi, edx
shr edx, 0x10
shr esi, 0x18
punpckldq xmm0, xmm6
xor eax, dword [rdi + rsi*4 + 0xc00]
movzx esi, ch
movzx ecx, cl
xor eax, dword [rdi + rsi*4 + 0x400]
mov esi, dword [rsp + 0x19c]
mov r10d, esi
shr r10d, 0x10
movzx r10d, r10b
xor eax, dword [rdi + r10*4 + 0x800]
mov r10d, dword [rdi + rcx*4]
xor r10d, dword [rdi + r9*4 + 0xc00]
movzx r9d, dl
mov edx, dword [rsp + 0x1a0]
mov dword [rsp + 0x70], eax
mov ecx, edx
mov eax, esi
movzx esi, ah
shr ecx, 0x18
movzx eax, bpl
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, bh
xor eax, dword [rdi + rcx*4 + 0x400]
mov ecx, r8d
xor r10d, dword [rdi + rsi*4 + 0x400]
shr ecx, 0x10
xor r10d, dword [rdi + r9*4 + 0x800]
movd xmm5, dword [rsp + 0x70]
movzx ecx, cl
xor eax, dword [rdi + rcx*4 + 0x800]
mov ecx, ebp
shr ecx, 0x18
mov dword [rsp + 0x19c], r10d
movd xmm4, dword [rsp + 0x19c]
mov dword [rsp + 0x60], eax
movzx eax, bl
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
mov ecx, r8d
movzx ecx, ch
punpckldq xmm5, xmm4
xor eax, dword [rdi + rcx*4 + 0x400]
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
punpcklqdq xmm0, xmm5
xor eax, dword [rdi + rcx*4 + 0x800]
mov ecx, ebx
shr ecx, 0x18
shr ebx, 0x10
pxor xmm0, xmm8
movzx ebx, bl
mov dword [rsp + 0x70], eax
movzx eax, r8b
shr r8d, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, dh
xor eax, dword [rdi + rcx*4 + 0x400]
mov ecx, ebp
movzx edx, dl
shr ecx, 0x10
pshufd xmm9, xmm0, 0x55
movzx ecx, cl
movd esi, xmm0
xor eax, dword [rdi + rcx*4 + 0x800]
mov ecx, ebp
movzx ebp, ch
movd dword [rsp + 0x19c], xmm9
pshufd xmm1, xmm0, 0xaa
pshufd xmm3, xmm0, 0xff
mov dword [rsp + 0x1a0], eax
mov eax, dword [rdi + rdx*4]
xor eax, dword [rdi + r8*4 + 0xc00]
mov edx, dword [rsp + 0xe0]
movd r10d, xmm1
xor eax, dword [rdi + rbp*4 + 0x400]
movd xmm0, dword [rsp + 0x60]
movd r9d, xmm3
xor eax, dword [rdi + rbx*4 + 0x800]
movd xmm4, dword [rsp + 0x70]
shr edx, 0x18
movd xmm2, dword [rsp + 0x1a0]
punpckldq xmm0, xmm4
mov dword [rsp + 0x1b8], eax
movzx eax, byte [rsp + 0x80]
movd xmm5, dword [rsp + 0x1b8]
punpckldq xmm2, xmm5
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x90]
punpcklqdq xmm0, xmm2
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0xd0]
pxor xmm0, xmm8
shr edx, 0x10
movzx edx, dl
movd r8d, xmm0
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x80]
pshufd xmm6, xmm0, 0x55
pshufd xmm9, xmm0, 0xaa
shr edx, 0x18
pshufd xmm1, xmm0, 0xff
mov dword [rsp + 0x60], eax
movzx eax, byte [rsp + 0x90]
movd ebp, xmm6
movd ebx, xmm9
movd ecx, xmm1
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0xd0]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0xe0]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x90]
shr edx, 0x18
mov dword [rsp + 0x70], eax
movzx eax, byte [rsp + 0xd0]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0xe0]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x80]
movd xmm5, dword [rsp + 0x70]
movd xmm0, dword [rsp + 0x60]
shr edx, 0x10
movzx edx, dl
punpckldq xmm0, xmm5
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0xd0]
shr edx, 0x18
mov dword [rsp + 0x1a0], eax
movzx eax, byte [rsp + 0xe0]
movd xmm2, dword [rsp + 0x1a0]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x80]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x90]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x110]
shr edx, 0x18
mov dword [rsp + 0x80], eax
movzx eax, byte [rsp + 0xf0]
movd xmm3, dword [rsp + 0x80]
punpckldq xmm2, xmm3
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x144]
punpcklqdq xmm0, xmm2
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x100]
pxor xmm0, xmm8
shr edx, 0x10
movzx edx, dl
pshufd xmm4, xmm0, 0x55
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0xf0]
movd dword [rsp + 0xd0], xmm0
pshufd xmm6, xmm0, 0xaa
pshufd xmm9, xmm0, 0xff
movd dword [rsp + 0xe0], xmm4
shr edx, 0x18
mov dword [rsp + 0x70], eax
movd dword [rsp + 0x60], xmm6
movzx eax, byte [rsp + 0x144]
movd dword [rsp + 0x1a0], xmm9
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x100]
movd xmm3, dword [rsp + 0x70]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x110]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x144]
shr edx, 0x18
mov dword [rsp + 0x80], eax
movzx eax, byte [rsp + 0x100]
movd xmm0, dword [rsp + 0x80]
punpckldq xmm3, xmm0
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x110]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0xf0]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x100]
shr edx, 0x18
mov dword [rsp + 0x90], eax
movzx eax, byte [rsp + 0x110]
movd xmm1, dword [rsp + 0x90]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0xf0]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x144]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov dword [rsp + 0xf0], eax
movd xmm2, dword [rsp + 0xf0]
punpckldq xmm1, xmm2
punpcklqdq xmm3, xmm1
pxor xmm3, xmm8
pshufd xmm5, xmm3, 0x55
movd dword [rsp + 0xf0], xmm3
pshufd xmm4, xmm3, 0xaa
pshufd xmm6, xmm3, 0xff
movd dword [rsp + 0x144], xmm5
movd dword [rsp + 0x70], xmm4
movd dword [rsp + 0x100], xmm6
movzx eax, byte [rsp + 0x120]
mov edx, dword [rsp + 0x14c]
shr edx, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x130]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x148]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x120]
shr edx, 0x18
mov dword [rsp + 0x80], eax
movzx eax, byte [rsp + 0x130]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x148]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x14c]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x130]
shr edx, 0x18
mov dword [rsp + 0x90], eax
movzx eax, byte [rsp + 0x148]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x14c]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x120]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x148]
shr edx, 0x18
mov dword [rsp + 0x110], eax
movzx eax, byte [rsp + 0x14c]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x120]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x130]
movd xmm3, dword [rsp + 0x90]
movd xmm9, dword [rsp + 0x110]
shr edx, 0x10
movd xmm2, dword [rsp + 0x80]
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x170]
punpckldq xmm2, xmm3
shr edx, 0x18
mov dword [rsp + 0x120], eax
movzx eax, byte [rsp + 0x150]
movd xmm1, dword [rsp + 0x120]
punpckldq xmm9, xmm1
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x160]
punpcklqdq xmm2, xmm9
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x190]
pxor xmm2, xmm8
shr edx, 0x10
movzx edx, dl
pshufd xmm0, xmm2, 0x55
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x150]
movd dword [rsp + 0x110], xmm2
pshufd xmm5, xmm2, 0xaa
pshufd xmm4, xmm2, 0xff
movd dword [rsp + 0x120], xmm0
shr edx, 0x18
mov dword [rsp + 0x90], eax
movd dword [rsp + 0x80], xmm5
movzx eax, byte [rsp + 0x160]
movd dword [rsp + 0x130], xmm4
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x190]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x170]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x160]
shr edx, 0x18
mov dword [rsp + 0x148], eax
movzx eax, byte [rsp + 0x190]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x170]
movd xmm1, dword [rsp + 0x148]
movd xmm3, dword [rsp + 0x90]
movzx edx, dh
punpckldq xmm3, xmm1
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x150]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x190]
shr edx, 0x18
mov dword [rsp + 0x14c], eax
movzx eax, byte [rsp + 0x170]
movd xmm6, dword [rsp + 0x14c]
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x150]
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x160]
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r13d
shr edx, 0x18
mov dword [rsp + 0x150], eax
movzx eax, r15b
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x180]
movd xmm9, dword [rsp + 0x150]
punpckldq xmm6, xmm9
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r14d
shr edx, 0x10
punpcklqdq xmm3, xmm6
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r15d
pxor xmm3, xmm8
shr edx, 0x18
mov dword [rsp + 0x160], eax
movzx eax, byte [rsp + 0x180]
movd dword [rsp + 0x148], xmm3
pshufd xmm8, xmm3, 0x55
pshufd xmm2, xmm3, 0xaa
pshufd xmm0, xmm3, 0xff
movd dword [rsp + 0x14c], xmm8
mov eax, dword [rdi + rax*4]
movd dword [rsp + 0x90], xmm2
movd dword [rsp + 0x150], xmm0
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r14d
movzx edx, dh
movd xmm9, dword [rsp + 0x160]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r13d
shr edx, 0x10
movdqa xmm8, xmmword [rsp + 0x1d0]
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x180]
shr edx, 0x18
mov dword [rsp + 0x190], eax
movzx eax, r14b
shr r14d, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r13d
movzx edx, dh
movzx r13d, r13b
movd xmm6, dword [rsp + 0x190]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r15d
shr edx, 0x10
punpckldq xmm9, xmm6
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r15d
movzx edx, dh
mov dword [rsp + 0x170], eax
mov eax, dword [rdi + r13*4]
xor eax, dword [rdi + r14*4 + 0xc00]
movd xmm5, dword [rsp + 0x170]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x180]
shr edx, 0x10
movzx r14d, dl
mov edx, r11d
xor eax, dword [rdi + r14*4 + 0x800]
shr edx, 0x18
mov dword [rsp + 0x180], eax
movzx eax, byte [rsp + 0x194]
movd xmm4, dword [rsp + 0x180]
punpckldq xmm5, xmm4
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x198]
punpcklqdq xmm9, xmm5
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r12d
shr edx, 0x10
pxor xmm9, xmm8
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x194]
pshufd xmm3, xmm9, 0x55
movd r15d, xmm9
pshufd xmm1, xmm9, 0xaa
shr edx, 0x18
pshufd xmm2, xmm9, 0xff
mov dword [rsp + 0x190], eax
movzx eax, byte [rsp + 0x198]
movd dword [rsp + 0x160], xmm3
movd r14d, xmm1
movd r13d, xmm2
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r12d
movzx edx, dh
movd xmm4, dword [rsp + 0x190]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r11d
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x198]
shr edx, 0x18
mov dword [rsp + 0x170], eax
movzx eax, r12b
shr r12d, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r11d
movzx edx, dh
movzx r11d, r11b
movd xmm9, dword [rsp + 0x170]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, dword [rsp + 0x194]
punpckldq xmm4, xmm9
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x194]
movzx edx, dh
mov dword [rsp + 0x180], eax
mov eax, dword [rdi + r11*4]
xor eax, dword [rdi + r12*4 + 0xc00]
mov r12d, dword [rsp + 0x198]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r9d
movd xmm5, dword [rsp + 0x180]
shr r12d, 0x10
shr edx, 0x18
movzx r11d, r12b
xor eax, dword [rdi + r11*4 + 0x800]
mov dword [rsp + 0x194], eax
movzx eax, sil
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x19c]
movd xmm0, dword [rsp + 0x194]
punpckldq xmm5, xmm0
movzx edx, dh
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r10d
shr edx, 0x10
punpcklqdq xmm4, xmm5
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, esi
pxor xmm4, xmm8
shr edx, 0x18
mov dword [rsp + 0x180], eax
movzx eax, byte [rsp + 0x19c]
movd dword [rsp + 0x190], xmm4
pshufd xmm6, xmm4, 0x55
pshufd xmm3, xmm4, 0xaa
pshufd xmm1, xmm4, 0xff
movd dword [rsp + 0x170], xmm6
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r10d
movd xmm0, dword [rsp + 0x180]
movd r12d, xmm3
movzx edx, dh
movd r11d, xmm1
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r9d
shr edx, 0x10
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x19c]
shr edx, 0x18
mov dword [rsp + 0x194], eax
movzx eax, r10b
shr r10d, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r9d
movzx edx, dh
movzx r9d, r9b
movd xmm4, dword [rsp + 0x194]
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, esi
shr edx, 0x10
punpckldq xmm0, xmm4
movzx edx, dl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, esi
movzx esi, dh
mov edx, ecx
shr edx, 0x18
mov dword [rsp + 0x198], eax
mov eax, dword [rdi + r9*4]
xor eax, dword [rdi + r10*4 + 0xc00]
mov r10d, dword [rsp + 0x19c]
xor eax, dword [rdi + rsi*4 + 0x400]
movd xmm2, dword [rsp + 0x198]
shr r10d, 0x10
movzx r9d, r10b
movzx r10d, r8b
xor eax, dword [rdi + r9*4 + 0x800]
mov r9d, dword [rdi + r10*4]
mov r10d, ebx
xor r9d, dword [rdi + rdx*4 + 0xc00]
shr r10d, 0x10
mov dword [rsp + 0x19c], eax
mov eax, ebp
movd xmm5, dword [rsp + 0x19c]
movzx edx, ah
movzx eax, r10b
xor r9d, dword [rdi + rdx*4 + 0x400]
mov edx, r8d
xor r9d, dword [rdi + rax*4 + 0x800]
punpckldq xmm2, xmm5
shr edx, 0x18
movzx eax, bh
punpcklqdq xmm0, xmm2
mov dword [rsp + 0x198], r9d
movzx r9d, bpl
mov r10d, dword [rdi + r9*4]
mov r9d, ecx
xor r10d, dword [rdi + rdx*4 + 0xc00]
pxor xmm0, xmm8
shr r9d, 0x10
xor r10d, dword [rdi + rax*4 + 0x400]
movzx edx, r9b
mov r9d, ebp
xor r10d, dword [rdi + rdx*4 + 0x800]
shr r9d, 0x18
movzx edx, ch
pshufd xmm9, xmm0, 0x55
movd dword [rsp + 0x180], xmm0
pshufd xmm6, xmm0, 0xaa
movzx ecx, cl
shr ebp, 0x10
pshufd xmm3, xmm0, 0xff
movd dword [rsp + 0x194], xmm9
movd dword [rsp + 0x1e4], xmm6
mov dword [rsp + 0x19c], r10d
movzx r10d, bl
mov eax, dword [rdi + r10*4]
mov r10d, r8d
shr ebx, 0x18
xor eax, dword [rdi + r9*4 + 0xc00]
shr r10d, 0x10
movd esi, xmm3
xor eax, dword [rdi + rdx*4 + 0x400]
movzx r9d, r10b
mov r10d, dword [rsp + 0x1a0]
xor eax, dword [rdi + r9*4 + 0x800]
movd xmm0, dword [rsp + 0x19c]
movd xmm5, dword [rsp + 0x198]
punpckldq xmm5, xmm0
mov dword [rsp + 0x1b8], eax
mov eax, dword [rdi + rcx*4]
mov ecx, r10d
xor eax, dword [rdi + rbx*4 + 0xc00]
mov ebx, r8d
movzx r8d, bpl
movzx edx, bh
shr ecx, 0x18
movd xmm1, dword [rsp + 0x1b8]
xor eax, dword [rdi + rdx*4 + 0x400]
xor eax, dword [rdi + r8*4 + 0x800]
mov r8d, dword [rsp + 0xd0]
movzx r9d, r8b
mov dword [rsp + 0x1bc], eax
mov eax, dword [rdi + r9*4]
mov r9d, dword [rsp + 0x60]
xor eax, dword [rdi + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0xe0]
movd xmm2, dword [rsp + 0x1bc]
shr r9d, 0x10
punpckldq xmm1, xmm2
movzx edx, ch
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r9b
mov r9d, ecx
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x60]
punpcklqdq xmm5, xmm1
mov dword [rsp + 0xd0], eax
movzx eax, cl
mov ecx, r8d
shr ecx, 0x18
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, dh
mov edx, r10d
shr edx, 0x10
xor eax, dword [rdi + rcx*4 + 0x400]
movzx ecx, dl
pxor xmm5, xmm8
xor eax, dword [rdi + rcx*4 + 0x800]
mov edx, r9d
mov ecx, r10d
shr edx, 0x18
shr r9d, 0x10
pshufd xmm4, xmm5, 0x55
movd dword [rsp + 0x198], xmm5
pshufd xmm9, xmm5, 0xaa
mov dword [rsp + 0xe0], eax
pshufd xmm6, xmm5, 0xff
movzx eax, byte [rsp + 0x60]
movd dword [rsp + 0x19c], xmm4
movd ebp, xmm9
movd ebx, xmm6
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
mov ecx, r8d
xor eax, dword [rdi + rdx*4 + 0x400]
movd xmm5, dword [rsp + 0xe0]
shr ecx, 0x10
movd xmm2, dword [rsp + 0xd0]
movzx edx, cl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r8d
movzx r8d, r9b
mov r9d, dword [rsp + 0xf0]
punpckldq xmm2, xmm5
mov dword [rsp + 0x1a0], eax
movzx eax, r10b
mov r10d, dword [rsp + 0x60]
mov ecx, dword [rdi + rax*4]
movzx eax, dh
movd xmm1, dword [rsp + 0x1a0]
shr r10d, 0x18
xor ecx, dword [rdi + r10*4 + 0xc00]
xor ecx, dword [rdi + rax*4 + 0x400]
movzx eax, r9b
xor ecx, dword [rdi + r8*4 + 0x800]
mov r8d, dword [rsp + 0x100]
mov r10d, dword [rdi + rax*4]
mov edx, r8d
mov dword [rsp + 0x60], ecx
shr edx, 0x18
mov ecx, dword [rsp + 0x144]
xor r10d, dword [rdi + rdx*4 + 0xc00]
mov edx, dword [rsp + 0x70]
movd xmm3, dword [rsp + 0x60]
movzx eax, ch
xor r10d, dword [rdi + rax*4 + 0x400]
shr edx, 0x10
punpckldq xmm1, xmm3
movzx eax, dl
mov edx, r9d
xor r10d, dword [rdi + rax*4 + 0x800]
shr edx, 0x18
punpcklqdq xmm2, xmm1
mov dword [rsp + 0xe0], r10d
mov r10d, ecx
movzx ecx, cl
pxor xmm2, xmm8
mov eax, dword [rdi + rcx*4]
mov ecx, dword [rsp + 0x70]
xor eax, dword [rdi + rdx*4 + 0xc00]
pshufd xmm0, xmm2, 0x55
movd dword [rsp + 0x60], xmm2
pshufd xmm4, xmm2, 0xaa
movzx edx, ch
pshufd xmm9, xmm2, 0xff
mov ecx, r8d
shr ecx, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
movd dword [rsp + 0xd0], xmm0
movzx edx, cl
movd dword [rsp + 0x1e0], xmm4
mov ecx, r10d
movd dword [rsp + 0x1bc], xmm9
xor eax, dword [rdi + rdx*4 + 0x800]
shr ecx, 0x18
mov edx, r8d
shr r10d, 0x10
movd xmm3, dword [rsp + 0xe0]
mov dword [rsp + 0xf0], eax
movzx eax, byte [rsp + 0x70]
movd xmm2, dword [rsp + 0xf0]
punpckldq xmm3, xmm2
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, dh
mov edx, r9d
xor eax, dword [rdi + rcx*4 + 0x400]
shr edx, 0x10
movzx ecx, dl
mov edx, r9d
movzx r9d, r10b
xor eax, dword [rdi + rcx*4 + 0x800]
mov r10d, dword [rsp + 0x130]
mov dword [rsp + 0x144], eax
movzx eax, r8b
mov r8d, dword [rsp + 0x70]
mov ecx, dword [rdi + rax*4]
movzx eax, dh
movd xmm6, dword [rsp + 0x144]
mov edx, r10d
shr r8d, 0x18
shr edx, 0x18
xor ecx, dword [rdi + r8*4 + 0xc00]
mov r8d, dword [rsp + 0x110]
xor ecx, dword [rdi + rax*4 + 0x400]
xor ecx, dword [rdi + r9*4 + 0x800]
mov r9d, dword [rsp + 0x80]
shr r9d, 0x10
mov dword [rsp + 0x70], ecx
movzx ecx, r8b
movd xmm1, dword [rsp + 0x70]
mov eax, dword [rdi + rcx*4]
mov ecx, dword [rsp + 0x120]
xor eax, dword [rdi + rdx*4 + 0xc00]
punpckldq xmm6, xmm1
movzx edx, ch
punpcklqdq xmm3, xmm6
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r9b
xor eax, dword [rdi + rdx*4 + 0x800]
mov r9d, ecx
pxor xmm3, xmm8
mov dword [rsp + 0x100], eax
movzx eax, cl
mov ecx, r8d
pshufd xmm5, xmm3, 0x55
shr ecx, 0x18
pshufd xmm0, xmm3, 0xaa
movd dword [rsp + 0x70], xmm3
pshufd xmm4, xmm3, 0xff
mov eax, dword [rdi + rax*4]
movd dword [rsp + 0xe0], xmm5
movd dword [rsp + 0xf0], xmm0
movd dword [rsp + 0x144], xmm4
xor eax, dword [rdi + rcx*4 + 0xc00]
mov edx, dword [rsp + 0x80]
movd xmm3, dword [rsp + 0x100]
movzx ecx, dh
mov edx, r10d
shr edx, 0x10
xor eax, dword [rdi + rcx*4 + 0x400]
movzx ecx, dl
mov edx, r9d
xor eax, dword [rdi + rcx*4 + 0x800]
shr edx, 0x18
mov ecx, r10d
mov dword [rsp + 0x110], eax
movzx eax, byte [rsp + 0x80]
movd xmm1, dword [rsp + 0x110]
punpckldq xmm3, xmm1
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
mov ecx, r8d
xor eax, dword [rdi + rdx*4 + 0x400]
shr ecx, 0x10
movzx edx, cl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r8d
shr r9d, 0x10
movzx r8d, r9b
mov r9d, dword [rsp + 0x148]
mov dword [rsp + 0x120], eax
movzx eax, r10b
mov r10d, dword [rsp + 0x80]
mov ecx, dword [rdi + rax*4]
movzx eax, dh
movd xmm9, dword [rsp + 0x120]
shr r10d, 0x18
xor ecx, dword [rdi + r10*4 + 0xc00]
movzx r10d, r9b
xor ecx, dword [rdi + rax*4 + 0x400]
mov eax, dword [rdi + r10*4]
xor ecx, dword [rdi + r8*4 + 0x800]
mov r8d, dword [rsp + 0x150]
mov r10d, dword [rsp + 0x90]
mov dword [rsp + 0x80], ecx
mov ecx, r8d
shr r10d, 0x10
movd xmm6, dword [rsp + 0x80]
shr ecx, 0x18
xor eax, dword [rdi + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x14c]
punpckldq xmm9, xmm6
movzx edx, ch
punpcklqdq xmm3, xmm9
xor eax, dword [rdi + rdx*4 + 0x400]
movzx edx, r10b
mov r10d, ecx
pxor xmm3, xmm8
pshufd xmm2, xmm3, 0x55
movd dword [rsp + 0x80], xmm3
pshufd xmm5, xmm3, 0xaa
pshufd xmm0, xmm3, 0xff
movd dword [rsp + 0x100], xmm2
movd dword [rsp + 0x110], xmm5
movd dword [rsp + 0x120], xmm0
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, dword [rsp + 0x90]
mov dword [rsp + 0x130], eax
movzx eax, cl
mov ecx, r9d
shr ecx, 0x18
mov eax, dword [rdi + rax*4]
movd xmm6, dword [rsp + 0x130]
xor eax, dword [rdi + rcx*4 + 0xc00]
movzx ecx, dh
mov edx, r8d
shr edx, 0x10
xor eax, dword [rdi + rcx*4 + 0x400]
movzx ecx, dl
mov edx, r10d
shr r10d, 0x10
xor eax, dword [rdi + rcx*4 + 0x800]
shr edx, 0x18
mov ecx, r8d
mov dword [rsp + 0x148], eax
movzx eax, byte [rsp + 0x90]
movd xmm3, dword [rsp + 0x148]
punpckldq xmm6, xmm3
mov eax, dword [rdi + rax*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
movzx edx, ch
mov ecx, r9d
xor eax, dword [rdi + rdx*4 + 0x400]
shr ecx, 0x10
movzx edx, cl
xor eax, dword [rdi + rdx*4 + 0x800]
mov edx, r9d
movzx r9d, r10b
mov r10d, r14d
shr r10d, 0x10
mov dword [rsp + 0x14c], eax
movzx eax, r8b
mov r8d, dword [rsp + 0x90]
mov ecx, dword [rdi + rax*4]
movzx eax, dh
movd xmm9, dword [rsp + 0x14c]
shr r8d, 0x18
xor ecx, dword [rdi + r8*4 + 0xc00]
movzx r8d, r15b
xor ecx, dword [rdi + rax*4 + 0x400]
mov eax, dword [rdi + r8*4]
xor ecx, dword [rdi + r9*4 + 0x800]
movzx r9d, r10b
mov r10d, r13d
mov dword [rsp + 0x90], ecx
mov ecx, r13d
movd xmm4, dword [rsp + 0x90]
shr ecx, 0x18
xor eax, dword [rdi + rcx*4 + 0xc00]
mov ecx, dword [rsp + 0x160]
punpckldq xmm9, xmm4
movzx edx, ch
movzx r8d, cl
punpcklqdq xmm6, xmm9
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r15d
shr edx, 0x18
pxor xmm6, xmm8
pshufd xmm8, xmm6, 0x55
movd dword [rsp + 0x90], xmm6
pshufd xmm1, xmm6, 0xaa
pshufd xmm2, xmm6, 0xff
movd dword [rsp + 0x130], xmm8
movd dword [rsp + 0x148], xmm1
movd dword [rsp + 0x14c], xmm2
xor eax, dword [rdi + r9*4 + 0x800]
movdqa xmm8, xmmword [rsp + 0xa0]
mov dword [rsp + 0x150], eax
mov eax, dword [rdi + r8*4]
movzx r8d, r14b
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r14d
shr r10d, 0x10
movzx edx, dh
movzx r9d, r10b
mov r10d, r15d
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, ecx
shr r10d, 0x10
xor eax, dword [rdi + r9*4 + 0x800]
shr edx, 0x18
movzx r9d, r10b
shr r14d, 0x18
movd xmm0, dword [rsp + 0x150]
mov dword [rsp + 0x160], eax
mov eax, dword [rdi + r8*4]
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r13d
movzx r13d, r13b
movzx edx, dh
mov r8d, dword [rdi + r13*4]
xor r8d, dword [rdi + r14*4 + 0xc00]
xor eax, dword [rdi + rdx*4 + 0x400]
movd xmm4, dword [rsp + 0x160]
xor eax, dword [rdi + r9*4 + 0x800]
punpckldq xmm0, xmm4
mov dword [rsp + 0x1a0], eax
mov eax, r15d
mov r15d, ecx
movzx edx, ah
shr r15d, 0x10
movd xmm9, dword [rsp + 0x1a0]
xor r8d, dword [rdi + rdx*4 + 0x400]
movzx r14d, r15b
xor r8d, dword [rdi + r14*4 + 0x800]
mov dword [rsp + 0x1b8], r8d
movd xmm5, dword [rsp + 0x1b8]
punpckldq xmm9, xmm5
punpcklqdq xmm0, xmm9
pxor xmm0, xmm8
pshufd xmm2, xmm0, 0xff
movd r9d, xmm0
pshufd xmm1, xmm0, 0xaa
pshufd xmm3, xmm0, 0x55
movzx r8d, r9b
movd eax, xmm2
mov edx, dword [rdi + r8*4]
movd r10d, xmm2
movd r13d, xmm1
shr eax, 0x18
movd ecx, xmm3
movzx r10d, r10b
mov r15d, eax
xor edx, dword [rdi + r15*4 + 0xc00]
movd r15d, xmm1
movzx eax, ch
xor edx, dword [rdi + rax*4 + 0x400]
movd eax, xmm0
shr r15d, 0x10
movzx r8d, r15b
shr eax, 0x18
xor edx, dword [rdi + r8*4 + 0x800]
mov r15d, eax
mov dword [rsp + 0xa0], edx
movzx edx, cl
mov r14d, dword [rdi + rdx*4]
movd edx, xmm1
xor r14d, dword [rdi + r15*4 + 0xc00]
movd r15d, xmm2
movzx eax, dh
shr r15d, 0x10
xor r14d, dword [rdi + rax*4 + 0x400]
movd eax, xmm3
movzx edx, r15b
xor r14d, dword [rdi + rdx*4 + 0x800]
shr eax, 0x18
movd edx, xmm2
mov r15d, eax
movzx eax, dh
mov dword [rsp + 0x150], r14d
movzx r14d, r13b
shr r13d, 0x18
mov r8d, dword [rdi + r14*4]
xor r8d, dword [rdi + r15*4 + 0xc00]
movd r15d, xmm0
xor r8d, dword [rdi + rax*4 + 0x400]
movd eax, xmm0
movd xmm0, dword [rsp + 0xa0]
shr r15d, 0x10
movd xmm4, dword [rsp + 0x150]
movzx edx, r15b
mov r15d, dword [rsp + 0x190]
xor r8d, dword [rdi + rdx*4 + 0x800]
movzx edx, ah
punpckldq xmm0, xmm4
mov dword [rsp + 0x160], r8d
mov r8d, dword [rdi + r10*4]
mov r10d, r12d
xor r8d, dword [rdi + r13*4 + 0xc00]
mov r13d, r11d
movd xmm9, dword [rsp + 0x160]
xor r8d, dword [rdi + rdx*4 + 0x400]
shr ecx, 0x10
shr r13d, 0x18
movzx r9d, cl
movzx ecx, r15b
shr r10d, 0x10
xor r8d, dword [rdi + r9*4 + 0x800]
mov r14d, dword [rdi + rcx*4]
mov edx, r15d
mov ecx, dword [rsp + 0x170]
xor r14d, dword [rdi + r13*4 + 0xc00]
shr edx, 0x18
movzx eax, ch
mov dword [rsp + 0x1a0], r8d
movzx r8d, r10b
xor r14d, dword [rdi + rax*4 + 0x400]
movzx r9d, cl
mov eax, r12d
xor r14d, dword [rdi + r8*4 + 0x800]
mov r13d, dword [rdi + r9*4]
mov r9d, ecx
xor r13d, dword [rdi + rdx*4 + 0xc00]
movzx edx, ah
movd xmm5, dword [rsp + 0x1a0]
xor r13d, dword [rdi + rdx*4 + 0x400]
shr r9d, 0x18
movzx r8d, r12b
punpckldq xmm9, xmm5
mov eax, r11d
mov dword [rsp + 0xa0], r14d
mov r14d, r11d
movzx edx, ah
shr r14d, 0x10
movzx r11d, r11b
shr r12d, 0x18
movzx r10d, r14b
mov r14d, r15d
mov eax, r15d
xor r13d, dword [rdi + r10*4 + 0x800]
shr r14d, 0x10
punpcklqdq xmm0, xmm9
movzx r10d, r14b
mov dword [rsp + 0x150], r13d
mov r13d, dword [rdi + r8*4]
xor r13d, dword [rdi + r9*4 + 0xc00]
pxor xmm0, xmm7
xor r13d, dword [rdi + rdx*4 + 0x400]
movzx edx, ah
xor r13d, dword [rdi + r10*4 + 0x800]
movaps xmmword [rsp + 0x1a0], xmm0
mov dword [rsp + 0x160], r13d
mov r8d, dword [rdi + r11*4]
xor r8d, dword [rdi + r12*4 + 0xc00]
mov r12d, ecx
movd xmm2, dword [rsp + 0x150]
shr r12d, 0x10
xor r8d, dword [rdi + rdx*4 + 0x400]
movd xmm6, dword [rsp + 0x160]
movzx r15d, r12b
movd xmm1, dword [rsp + 0xa0]
mov r14, qword [rsp + 0x1b0]
xor r8d, dword [rdi + r15*4 + 0x800]
mov r15, qword [rsp + 0xc0]
punpckldq xmm1, xmm2
mov rcx, r14
mov r12, r14
mov rdx, r15
mov r13, r15
mov dword [rsp + 0x190], r8d
movd xmm3, dword [rsp + 0x190]
movaps xmmword [rsp + 0x1f0], xmm7
punpckldq xmm6, xmm3
punpcklqdq xmm1, xmm6
pxor xmm1, xmm8
movaps xmmword [rsp + 0x200], xmm1
call fcn.0042c540
mov r9d, esi
movdqa xmm6, xmm0
shr r9d, 0x18
mov r10d, dword [rsp + 0x180]
movaps xmmword [rsp + 0x1f0], xmm7
movzx ecx, r10b
mov r11d, dword [rdi + rcx*4]
xor r11d, dword [rdi + r9*4 + 0xc00]
mov r9d, dword [rsp + 0x1e4]
mov ecx, dword [rsp + 0x194]
mov r8d, r9d
movzx eax, ch
shr r8d, 0x10
xor r11d, dword [rdi + rax*4 + 0x400]
movzx edx, r8b
mov r8d, r10d
xor r11d, dword [rdi + rdx*4 + 0x800]
shr r8d, 0x18
mov edx, r9d
movzx edx, dh
mov dword [rsp + 0xa0], r11d
movzx r11d, cl
mov eax, dword [rdi + r11*4]
mov r11d, esi
xor eax, dword [rdi + r8*4 + 0xc00]
shr r11d, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, ecx
movzx r8d, r11b
movd xmm0, dword [rsp + 0xa0]
xor eax, dword [rdi + r8*4 + 0x800]
shr edx, 0x18
mov r8d, r10d
shr r8d, 0x10
mov dword [rsp + 0x150], eax
movzx eax, r9b
shr r9d, 0x18
mov r11d, dword [rdi + rax*4]
mov eax, esi
xor r11d, dword [rdi + rdx*4 + 0xc00]
movzx edx, ah
movzx eax, r8b
movzx esi, sil
xor r11d, dword [rdi + rdx*4 + 0x400]
mov edx, r10d
mov r10d, ecx
xor r11d, dword [rdi + rax*4 + 0x800]
shr r10d, 0x10
movzx eax, dh
movd xmm4, dword [rsp + 0x150]
mov rdx, r15
mov rcx, r14
punpckldq xmm0, xmm4
mov dword [rsp + 0x160], r11d
mov r11d, dword [rdi + rsi*4]
xor r11d, dword [rdi + r9*4 + 0xc00]
movzx r9d, r10b
movd xmm9, dword [rsp + 0x160]
xor r11d, dword [rdi + rax*4 + 0x400]
xor r11d, dword [rdi + r9*4 + 0x800]
mov dword [rsp + 0x190], r11d
movd xmm5, dword [rsp + 0x190]
punpckldq xmm9, xmm5
punpcklqdq xmm0, xmm9
pxor xmm0, xmm8
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
mov ecx, ebx
mov eax, ebp
shr ecx, 0x18
shr eax, 0x10
mov r8d, dword [rsp + 0x198]
movzx r10d, al
movdqa xmm9, xmm0
movaps xmmword [rsp + 0x1f0], xmm7
movzx r14d, r8b
mov r11d, dword [rdi + r14*4]
xor r11d, dword [rdi + rcx*4 + 0xc00]
mov r14d, r8d
mov ecx, dword [rsp + 0x19c]
shr r14d, 0x18
movzx edx, ch
movzx r9d, cl
xor r11d, dword [rdi + rdx*4 + 0x400]
mov edx, ebp
xor r11d, dword [rdi + r10*4 + 0x800]
mov r10d, ebx
movzx eax, dh
shr r10d, 0x10
movzx edx, bh
movzx ebx, bl
mov dword [rsp + 0xa0], r11d
mov r11d, dword [rdi + r9*4]
movzx r9d, r10b
xor r11d, dword [rdi + r14*4 + 0xc00]
mov r14d, ecx
mov r10d, r8d
xor r11d, dword [rdi + rax*4 + 0x400]
shr r14d, 0x18
shr r10d, 0x10
xor r11d, dword [rdi + r9*4 + 0x800]
movzx r9d, r10b
shr ecx, 0x10
movzx ecx, cl
movd xmm2, dword [rsp + 0xa0]
mov dword [rsp + 0x150], r11d
movzx r11d, bpl
shr ebp, 0x18
mov eax, dword [rdi + r11*4]
xor eax, dword [rdi + r14*4 + 0xc00]
xor eax, dword [rdi + rdx*4 + 0x400]
mov r11d, dword [rdi + rbx*4]
mov rdx, r15
xor eax, dword [rdi + r9*4 + 0x800]
xor r11d, dword [rdi + rbp*4 + 0xc00]
movd xmm5, dword [rsp + 0x150]
punpckldq xmm2, xmm5
mov dword [rsp + 0x160], eax
mov eax, r8d
movzx ebp, ah
movd xmm1, dword [rsp + 0x160]
xor r11d, dword [rdi + rbp*4 + 0x400]
xor r11d, dword [rdi + rcx*4 + 0x800]
mov rcx, r12
mov dword [rsp + 0x190], r11d
movd xmm3, dword [rsp + 0x190]
punpckldq xmm1, xmm3
punpcklqdq xmm2, xmm1
pxor xmm2, xmm8
movaps xmmword [rsp + 0x200], xmm2
call fcn.0042c540
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0x160], xmm0
mov r11d, dword [rsp + 0x1bc]
mov r9d, dword [rsp + 0x60]
mov r10d, dword [rsp + 0x1e0]
mov ebx, dword [rsp + 0xd0]
mov edx, r11d
movzx r15d, r9b
shr edx, 0x18
mov r8d, r10d
mov eax, dword [rdi + r15*4]
movzx ebp, bh
xor eax, dword [rdi + rdx*4 + 0xc00]
shr r8d, 0x10
xor eax, dword [rdi + rbp*4 + 0x400]
movzx ecx, r8b
mov edx, r9d
xor eax, dword [rdi + rcx*4 + 0x800]
movzx r15d, bl
shr edx, 0x18
mov ecx, r10d
mov r8d, r11d
movzx ebp, ch
shr r8d, 0x10
mov dword [rsp + 0x60], eax
mov eax, dword [rdi + r15*4]
movzx r15d, r8b
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, ebx
mov r8d, r9d
xor eax, dword [rdi + rbp*4 + 0x400]
shr edx, 0x18
shr r8d, 0x10
xor eax, dword [rdi + r15*4 + 0x800]
movzx r15d, r8b
shr ebx, 0x10
movd xmm3, dword [rsp + 0x60]
mov dword [rsp + 0xa0], eax
movzx eax, r10b
shr r10d, 0x18
mov ecx, dword [rdi + rax*4]
mov eax, r11d
xor ecx, dword [rdi + rdx*4 + 0xc00]
movzx ebp, ah
movzx r11d, r11b
movd xmm2, dword [rsp + 0xa0]
xor ecx, dword [rdi + rbp*4 + 0x400]
mov edx, dword [rdi + r11*4]
xor ecx, dword [rdi + r15*4 + 0x800]
xor edx, dword [rdi + r10*4 + 0xc00]
movzx r10d, bl
punpckldq xmm3, xmm2
movaps xmmword [rsp + 0xa0], xmm8
mov dword [rsp + 0xd0], ecx
mov ecx, r9d
movzx eax, ch
movd xmm1, dword [rsp + 0xd0]
mov rcx, r12
xor edx, dword [rdi + rax*4 + 0x400]
xor edx, dword [rdi + r10*4 + 0x800]
mov dword [rsp + 0x150], edx
mov rdx, r13
movd xmm4, dword [rsp + 0x150]
punpckldq xmm1, xmm4
punpcklqdq xmm3, xmm1
pxor xmm3, xmm8
movaps xmmword [rsp + 0x200], xmm3
call fcn.0042c540
movdqa xmm8, xmm0
movaps xmmword [rsp + 0x1f0], xmm7
mov ebp, dword [rsp + 0x144]
mov r8d, dword [rsp + 0x70]
mov ecx, dword [rsp + 0xf0]
mov eax, dword [rsp + 0xe0]
mov r15d, ebp
movzx ebx, r8b
shr r15d, 0x18
mov r11d, dword [rdi + rbx*4]
xor r11d, dword [rdi + r15*4 + 0xc00]
mov r9d, ecx
movzx edx, ah
movzx ebx, al
shr r9d, 0x10
xor r11d, dword [rdi + rdx*4 + 0x400]
mov r15d, eax
movzx r10d, r9b
mov r9d, ebp
mov eax, dword [rdi + rbx*4]
xor r11d, dword [rdi + r10*4 + 0x800]
movzx edx, ch
shr r9d, 0x10
movzx r10d, r9b
movzx ebx, cl
mov dword [rsp + 0x60], r11d
mov r11d, r8d
shr r11d, 0x18
movd xmm0, dword [rsp + 0x60]
xor eax, dword [rdi + r11*4 + 0xc00]
mov r11d, r15d
xor eax, dword [rdi + rdx*4 + 0x400]
mov edx, r8d
xor eax, dword [rdi + r10*4 + 0x800]
shr r11d, 0x18
shr edx, 0x10
movzx r9d, dl
shr ecx, 0x18
shr r15d, 0x10
mov rdx, r13
mov dword [rsp + 0x70], eax
mov eax, dword [rdi + rbx*4]
mov ebx, ebp
xor eax, dword [rdi + r11*4 + 0xc00]
movzx ebp, bh
mov r11d, ecx
xor eax, dword [rdi + rbp*4 + 0x400]
movzx r10d, bl
movd xmm4, dword [rsp + 0x70]
xor eax, dword [rdi + r9*4 + 0x800]
mov ebx, dword [rdi + r10*4]
mov rcx, r12
xor ebx, dword [rdi + r11*4 + 0xc00]
punpckldq xmm0, xmm4
mov dword [rsp + 0xd0], eax
mov eax, r8d
movzx r8d, r15b
movzx ebp, ah
movd xmm1, dword [rsp + 0xd0]
xor ebx, dword [rdi + rbp*4 + 0x400]
xor ebx, dword [rdi + r8*4 + 0x800]
mov dword [rsp + 0xe0], ebx
movd xmm5, dword [rsp + 0xe0]
punpckldq xmm1, xmm5
punpcklqdq xmm0, xmm1
pxor xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x200], xmm0
call fcn.0042c540
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0x1f0], xmm7
mov r11d, dword [rsp + 0x120]
mov r10d, dword [rsp + 0x80]
mov ebx, dword [rsp + 0x100]
mov edx, r11d
movzx r9d, r10b
shr edx, 0x18
mov eax, dword [rdi + r9*4]
movzx ecx, bh
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r10d
movzx r9d, bl
xor eax, dword [rdi + rcx*4 + 0x400]
mov ecx, dword [rsp + 0x110]
shr edx, 0x18
mov r8d, ebx
mov ebp, ecx
movzx ebx, ch
shr ebp, 0x10
movzx r15d, bpl
mov ebp, r11d
xor eax, dword [rdi + r15*4 + 0x800]
shr ebp, 0x10
movzx r15d, bpl
mov dword [rsp + 0x60], eax
mov eax, dword [rdi + r9*4]
movzx r9d, cl
xor eax, dword [rdi + rdx*4 + 0xc00]
mov edx, r8d
shr ecx, 0x18
xor eax, dword [rdi + rbx*4 + 0x400]
shr edx, 0x18
mov ebx, r11d
xor eax, dword [rdi + r15*4 + 0x800]
mov r11d, r10d
movzx ebp, bh
shr r11d, 0x10
shr r8d, 0x10
movd xmm5, dword [rsp + 0x60]
movzx r15d, r11b
movzx r8d, r8b
mov dword [rsp + 0x70], eax
mov eax, dword [rdi + r9*4]
movzx r9d, bl
xor eax, dword [rdi + rdx*4 + 0xc00]
mov ebx, r10d
mov edx, dword [rdi + r9*4]
xor eax, dword [rdi + rbp*4 + 0x400]
movzx ebp, bh
movd xmm0, dword [rsp + 0x70]
xor eax, dword [rdi + r15*4 + 0x800]
punpckldq xmm5, xmm0
mov dword [rsp + 0x80], eax
mov eax, ecx
mov rcx, r12
xor edx, dword [rdi + rax*4 + 0xc00]
movd xmm2, dword [rsp + 0x80]
xor edx, dword [rdi + rbp*4 + 0x400]
xor edx, dword [rdi + r8*4 + 0x800]
mov dword [rsp + 0xd0], edx
mov rdx, r13
movd xmm1, dword [rsp + 0xd0]
punpckldq xmm2, xmm1
punpcklqdq xmm5, xmm2
pxor xmm5, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x200], xmm5
call fcn.0042c540
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0xd0], xmm0
mov ecx, dword [rsp + 0x14c]
mov r11d, dword [rsp + 0x90]
mov ebp, dword [rsp + 0x148]
mov ebx, dword [rsp + 0x130]
mov r9d, ecx
movzx r15d, r11b
shr r9d, 0x18
mov r10d, ebp
mov eax, dword [rdi + r15*4]
movzx edx, bh
xor eax, dword [rdi + r9*4 + 0xc00]
shr r10d, 0x10
xor eax, dword [rdi + rdx*4 + 0x400]
movzx r8d, r10b
mov r15d, ebx
xor eax, dword [rdi + r8*4 + 0x800]
movzx r9d, bl
mov ebx, r11d
shr ebx, 0x18
mov dword [rsp + 0x60], eax
mov eax, dword [rdi + r9*4]
mov r9d, r15d
xor eax, dword [rdi + rbx*4 + 0xc00]
mov ebx, ebp
mov ebp, ecx
movzx edx, bh
shr ebp, 0x10
movzx r8d, bl
xor eax, dword [rdi + rdx*4 + 0x400]
movzx r10d, bpl
shr r9d, 0x18
xor eax, dword [rdi + r10*4 + 0x800]
mov ebp, r11d
movzx edx, ch
shr ebp, 0x10
shr ebx, 0x18
movzx ecx, cl
movzx r10d, bpl
mov ebx, ebx
movd xmm1, dword [rsp + 0x60]
mov dword [rsp + 0x70], eax
mov eax, dword [rdi + r8*4]
xor eax, dword [rdi + r9*4 + 0xc00]
mov r8d, dword [rdi + rcx*4]
mov rcx, r12
xor eax, dword [rdi + rdx*4 + 0x400]
xor r8d, dword [rdi + rbx*4 + 0xc00]
xor eax, dword [rdi + r10*4 + 0x800]
movd xmm5, dword [rsp + 0x70]
punpckldq xmm1, xmm5
mov dword [rsp + 0x80], eax
mov eax, r11d
mov r11d, r15d
movzx edx, ah
shr r11d, 0x10
movd xmm3, dword [rsp + 0x80]
xor r8d, dword [rdi + rdx*4 + 0x400]
movzx r15d, r11b
mov rdx, r13
xor r8d, dword [rdi + r15*4 + 0x800]
mov dword [rsp + 0x90], r8d
movd xmm2, dword [rsp + 0x90]
punpckldq xmm3, xmm2
punpcklqdq xmm1, xmm3
pxor xmm1, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x200], xmm1
call fcn.0042c540
sub qword [rsp + 0xb8], 0xffffffffffffff80
mov rsi, qword [rsp + 0xb8]
cmp qword [rsp + 0x1e8], rsi
movdqa xmm2, xmmword [rsp + 0xd0]
movdqa xmm1, xmmword [rsp + 0xe0]
movdqa xmm3, xmmword [rsp + 0x160]
movdqa xmm5, xmmword [rsp + 0x1a0]
jne 0x437202
mov rdi, qword [rsp + 0x3a8]
movaps xmmword [rdi + 0x40], xmm5
movaps xmmword [rdi + 0x50], xmm6
movaps xmmword [rdi + 0x60], xmm9
movaps xmmword [rdi + 0x70], xmm3
movaps xmmword [rdi + 0x80], xmm8
movaps xmmword [rdi + 0x90], xmm1
movaps xmmword [rdi + 0xa0], xmm2
movaps xmmword [rdi + 0xb0], xmm0
movaps xmm6, xmmword [rsp + 0x2b0]
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm8, xmmword [rsp + 0x2d0]
movaps xmm9, xmmword [rsp + 0x2e0]
movaps xmm10, xmmword [rsp + 0x2f0]
movaps xmm11, xmmword [rsp + 0x300]
movaps xmm12, xmmword [rsp + 0x310]
movaps xmm13, xmmword [rsp + 0x320]
movaps xmm14, xmmword [rsp + 0x330]
movaps xmm15, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret