Function at 0x14009fcf0
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7f0]
sub rsp, 0x8f0
mov rax, qword [0x140105ec0]
xor rax, rsp
mov qword [rbp + 0x7e0], rax
mov r9d, 8
mov qword [rbp - 0x30], r8
mov r10d, r9d
lea rax, [rbp + 0x3e0]
mov r11, rcx
nop
lea rax, [rax + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub r10, 1
jne 0x14009fd40
lea r8, [rbp + 0x3e0]
add rcx, 0x10
sub r8, r11
lea r10, [rbp + 0x3e8]
mov edx, 0x20
sub r10, r11
mov qword [rbp - 0x38], rdx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx - 0x10]
xor qword [r8 + rcx - 0x10], rax
mov rax, qword [rcx - 8]
xor qword [rcx + r10 - 0x10], rax
mov rax, qword [rcx]
xor qword [r8 + rcx], rax
mov rax, qword [rcx + 8]
xor qword [rcx + r10], rax
lea rcx, [rcx + 0x20]
sub rdx, 1
jne 0x14009fdc0
lea rax, [rbp - 0x20]
lea rcx, [rbp + 0x3e0]
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub r9, 1
jne 0x14009fe00
xor eax, eax
mov dword [rsp + 4], eax
mov dword [rsp], eax
nop dword [rax]
shl eax, 4
mov ebx, eax
lea ecx, [rax + 4]
lea rax, [rbp + 0x3e0]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x40], rax
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rbx*8]
lea rax, [rax + rbx*8]
mov qword [rsp + 0x18], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea rax, [rbp + 0x3e0]
lea r10, [rdx + rcx*2]
add r10, r8
lea ecx, [rbx + 0xc]
lea rax, [rax + rcx*8]
mov r11, r10
xor r11, qword [rax]
lea ecx, [rbx + 8]
mov qword [rsp + 0x40], rax
mov rdx, r11
shr rdx, 0x20
lea rax, [rbp + 0x3e0]
lea rax, [rax + rcx*8]
shl r11, 0x20
mov rcx, qword [rax]
or r11, rdx
mov qword [rsp + 0x78], rax
mov eax, ecx
imul rax, rdx
lea r9, [r11 + rax*2]
add r9, rcx
mov ecx, r10d
mov rax, r9
xor rax, r8
mov rdx, rax
shr rax, 0x18
shl rdx, 0x28
or rdx, rax
mov eax, edx
imul rcx, rax
lea rax, [r10 + rcx*2]
mov ecx, r9d
add rax, rdx
xor r11, rax
mov qword [rsp + 0x10], rax
mov r8, r11
shr r11, 0x10
shl r8, 0x30
or r8, r11
mov eax, r8d
imul rcx, rax
mov qword [rsp + 0x30], r8
lea rax, [r9 + rcx*2]
add rax, r8
mov qword [rsp + 0x60], rax
xor rax, rdx
mov rcx, rax
add rax, rax
shr rcx, 0x3f
or rcx, rax
lea rax, [rbp + 0x3e0]
mov qword [rbp - 0x70], rcx
lea ecx, [rbx + 5]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x20], rax
lea ecx, [rbx + 1]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x38], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea r10, [rdx + rcx*2]
add r10, r8
lea ecx, [rbx + 0xd]
mov r11, r10
lea rax, [rbp + 0x3e0]
xor r11, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x70], rax
lea ecx, [rbx + 9]
mov rdx, r11
lea rax, [rbp + 0x3e0]
lea rax, [rax + rcx*8]
shr rdx, 0x20
mov rcx, qword [rax]
lea r13, [rbp + 0x3e0]
mov qword [rbp - 0x48], rax
mov eax, ecx
imul rax, rdx
shl r11, 0x20
or r11, rdx
lea r9, [r11 + rax*2]
add r9, rcx
mov ecx, r10d
mov rax, r9
xor rax, r8
mov rdx, rax
shr rax, 0x18
shl rdx, 0x28
or rdx, rax
mov eax, edx
imul rcx, rax
lea rax, [r10 + rcx*2]
mov ecx, r9d
add rax, rdx
xor r11, rax
mov qword [rsp + 0x28], rax
mov r8, r11
shr r11, 0x10
shl r8, 0x30
or r8, r11
mov eax, r8d
imul rcx, rax
mov qword [rsp + 0x58], r8
lea rax, [r9 + rcx*2]
add rax, r8
mov qword [rbp - 0x60], rax
xor rax, rdx
mov rcx, rax
add rax, rax
shr rcx, 0x3f
or rcx, rax
lea rax, [rbp + 0x3e0]
mov qword [rsp + 8], rcx
lea ecx, [rbx + 6]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x48], rax
lea ecx, [rbx + 2]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x68], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea rax, [rbp + 0x3e0]
lea r10, [rdx + rcx*2]
add r10, r8
lea ecx, [rbx + 0xe]
lea rax, [rax + rcx*8]
mov r11, r10
xor r11, qword [rax]
mov qword [rbp - 0x50], rax
mov rdx, r11
shr rdx, 0x20
lea eax, [rbx + 0xa]
mov rcx, qword [r13 + rax*8]
lea r13, [r13 + rax*8]
shl r11, 0x20
or r11, rdx
mov eax, ecx
imul rax, rdx
lea r9, [r11 + rax*2]
add r9, rcx
mov ecx, r10d
lea rsi, [rbp + 0x3e0]
mov rax, r9
lea r15, [rbp + 0x3e0]
xor rax, r8
mov rdx, rax
shr rax, 0x18
shl rdx, 0x28
or rdx, rax
mov eax, edx
imul rcx, rax
lea rax, [r10 + rcx*2]
mov ecx, r9d
add rax, rdx
xor r11, rax
mov qword [rsp + 0x50], rax
mov r8, r11
shr r11, 0x10
shl r8, 0x30
or r8, r11
mov eax, r8d
imul rcx, rax
mov qword [rbp - 0x68], r8
lea rdi, [r9 + rcx*2]
add rdi, r8
lea ecx, [rbx + 7]
mov rax, rdi
xor rax, rdx
mov r12, rax
add rax, rax
shr r12, 0x3f
or r12, rax
lea rax, [rbp + 0x3e0]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x80], rax
lea ecx, [rbx + 3]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x58], rax
mov eax, r8d
mov ecx, edx
imul rcx, rax
lea eax, [rbx + 0xf]
lea rsi, [rsi + rax*8]
lea eax, [rbx + 0xb]
lea r15, [r15 + rax*8]
lea r11, [rdx + rcx*2]
mov rcx, qword [r15]
add r11, r8
mov eax, ecx
mov r10, r11
xor r10, qword [rsi]
mov rdx, r10
shl r10, 0x20
shr rdx, 0x20
imul rax, rdx
or r10, rdx
lea r9, [rcx + rax*2]
mov ecx, r11d
add r9, r10
mov rax, r9
xor rax, r8
mov r8, rax
shr rax, 0x18
shl r8, 0x28
or r8, rax
mov eax, r8d
imul rcx, rax
lea rax, [r11 + rcx*2]
mov ecx, r9d
add rax, r8
mov qword [rbp - 0x78], rax
xor rax, r10
mov rdx, rax
shr rax, 0x10
shl rdx, 0x30
or rdx, rax
mov eax, edx
imul rcx, rax
lea rbx, [r9 + rcx*2]
mov r9, qword [rsp + 0x10]
add rbx, rdx
mov ecx, r9d
mov rax, rbx
xor rax, r8
mov r8, qword [rsp + 8]
mov r14, rax
add rax, rax
shr r14, 0x3f
or r14, rax
mov eax, r8d
imul rcx, rax
lea rax, [r9 + rcx*2]
add r8, rax
mov eax, edi
mov r9, r8
xor r9, rdx
mov rcx, r9
shl r9, 0x20
shr rcx, 0x20
imul rax, rcx
or r9, rcx
mov ecx, r8d
lea r11, [rdi + rax*2]
mov rax, qword [rsp + 8]
add r11, r9
xor rax, r11
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
mov eax, r10d
imul rcx, rax
mov rax, qword [rsp + 0x18]
lea rcx, [r8 + rcx*2]
add rcx, r10
mov qword [rax], rcx
xor rcx, r9
mov rdx, rcx
shr rcx, 0x10
shl rdx, 0x30
or rdx, rcx
mov ecx, r11d
mov eax, edx
imul rcx, rax
mov rax, qword [rsp + 0x20]
mov qword [rsi], rdx
lea rcx, [r11 + rcx*2]
add rcx, rdx
mov rdx, qword [rsp + 0x28]
mov qword [r13], rcx
xor rcx, r10
ror rcx, 0x3f
mov qword [rax], rcx
mov eax, r12d
mov ecx, edx
imul rcx, rax
mov eax, ebx
lea rdx, [rdx + rcx*2]
add rdx, r12
mov r8, rdx
xor r8, qword [rsp + 0x30]
mov rcx, r8
shl r8, 0x20
shr rcx, 0x20
imul rax, rcx
or r8, rcx
mov ecx, edx
lea r10, [rbx + rax*2]
add r10, r8
xor r12, r10
mov r9, r12
shr r12, 0x18
shl r9, 0x28
or r9, r12
mov eax, r9d
imul rcx, rax
mov rax, qword [rsp + 0x38]
lea rcx, [rdx + rcx*2]
add rcx, r9
mov qword [rax], rcx
xor rcx, r8
mov rax, qword [rsp + 0x40]
mov rdx, rcx
mov r11, qword [rbp - 0x70]
shr rcx, 0x10
shl rdx, 0x30
or rdx, rcx
mov ecx, r10d
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rsp + 0x48]
lea rcx, [r10 + rcx*2]
add rcx, rdx
mov rdx, qword [rsp + 0x50]
mov qword [r15], rcx
xor rcx, r9
mov r9, qword [rsp + 0x60]
ror rcx, 0x3f
mov qword [rax], rcx
mov ecx, edx
mov eax, r14d
imul rcx, rax
mov eax, r9d
lea rdx, [rdx + rcx*2]
add rdx, r14
mov r8, rdx
xor r8, qword [rsp + 0x58]
mov rcx, r8
shl r8, 0x20
shr rcx, 0x20
imul rax, rcx
or r8, rcx
mov ecx, edx
lea r10, [r9 + rax*2]
add r10, r8
xor r14, r10
mov r9, r14
shr r14, 0x18
shl r9, 0x28
or r9, r14
mov eax, r9d
imul rcx, rax
mov rax, qword [rsp + 0x68]
lea rcx, [rdx + rcx*2]
add rcx, r9
mov qword [rax], rcx
xor rcx, r8
mov rax, qword [rsp + 0x70]
mov rdx, rcx
shr rcx, 0x10
shl rdx, 0x30
or rdx, rcx
mov ecx, r10d
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rsp + 0x78]
lea rcx, [r10 + rcx*2]
add rcx, rdx
mov rdx, qword [rbp - 0x78]
mov qword [rax], rcx
xor rcx, r9
mov rax, qword [rbp - 0x80]
mov r9, qword [rbp - 0x60]
ror rcx, 0x3f
mov qword [rax], rcx
mov ecx, edx
mov eax, r11d
imul rcx, rax
mov eax, r9d
lea rdx, [rdx + rcx*2]
add rdx, r11
mov r8, rdx
xor r8, qword [rbp - 0x68]
mov rcx, r8
shl r8, 0x20
shr rcx, 0x20
or r8, rcx
imul rax, rcx
lea r10, [r9 + rax*2]
mov ecx, edx
add r10, r8
xor r11, r10
mov r9, r11
shr r11, 0x18
shl r9, 0x28
or r9, r11
mov eax, r9d
imul rcx, rax
mov rax, qword [rbp - 0x58]
lea rcx, [rdx + rcx*2]
add rcx, r9
mov qword [rax], rcx
xor rcx, r8
mov rax, qword [rbp - 0x50]
mov rdx, rcx
shr rcx, 0x10
shl rdx, 0x30
or rdx, rcx
mov ecx, r10d
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rbp - 0x48]
lea rcx, [r10 + rcx*2]
add rcx, rdx
mov qword [rax], rcx
xor rcx, r9
mov rax, qword [rbp - 0x40]
ror rcx, 0x3f
mov qword [rax], rcx
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp eax, 8
jb 0x14009fe60
xor edx, edx
nop
lea r14d, [rdx + rdx]
lea ebx, [rdx + 0x30]
lea ecx, [rbx*2 - 0x40]
lea rax, [rbp + 0x3e0]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x10], rax
lea rcx, [rbp + 0x3e0]
mov rdx, qword [rcx + r14*8]
lea rax, [rcx + r14*8]
mov qword [rbp - 0x48], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea rax, [rbp + 0x3e0]
lea r11, [rdx + rcx*2]
add r11, r8
lea ecx, [rbx + rbx]
lea rax, [rax + rcx*8]
mov r10, r11
xor r10, qword [rax]
lea ecx, [rbx*2 - 0x20]
mov qword [rbp - 0x70], rax
mov rdx, r10
shr rdx, 0x20
lea rax, [rbp + 0x3e0]
lea rax, [rax + rcx*8]
shl r10, 0x20
mov rcx, qword [rax]
or r10, rdx
mov qword [rsp + 0x58], rax
mov eax, ecx
imul rax, rdx
lea r9, [r10 + rax*2]
add r9, rcx
mov ecx, r11d
mov rax, r9
xor rax, r8
mov rdx, rax
shr rax, 0x18
shl rdx, 0x28
or rdx, rax
mov eax, edx
imul rcx, rax
lea rax, [r11 + rcx*2]
mov ecx, r9d
add rax, rdx
mov qword [rbp - 0x40], rax
xor rax, r10
mov r8, rax
shr rax, 0x10
shl r8, 0x30
or r8, rax
mov eax, r8d
imul rcx, rax
mov qword [rbp - 0x60], r8
lea rax, [r9 + rcx*2]
add rax, r8
mov qword [rsp + 0x70], rax
xor rax, rdx
mov rcx, rax
add rax, rax
shr rcx, 0x3f
or rcx, rax
lea rax, [rbp + 0x3e0]
mov qword [rsp + 0x40], rcx
lea ecx, [r14 + 0x21]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x50], rax
lea ecx, [r14 + 1]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x68], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea r11, [rdx + rcx*2]
add r11, r8
lea ecx, [r14 + 0x61]
lea rax, [rbp + 0x3e0]
mov r10, r11
xor r10, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x60], rax
lea ecx, [r14 + 0x41]
mov rdx, r10
lea rax, [rbp + 0x3e0]
lea rax, [rax + rcx*8]
shr rdx, 0x20
mov rcx, qword [rax]
lea r13, [rbp + 0x3e0]
mov qword [rsp + 0x18], rax
mov eax, ecx
imul rax, rdx
shl r10, 0x20
or r10, rdx
lea r9, [r10 + rax*2]
add r9, rcx
mov ecx, r11d
mov rax, r9
xor rax, r8
mov rdx, rax
shr rax, 0x18
shl rdx, 0x28
or rdx, rax
mov eax, edx
imul rcx, rax
lea rax, [r11 + rcx*2]
mov ecx, r9d
add rax, rdx
mov qword [rbp - 0x58], rax
xor rax, r10
mov r8, rax
shr rax, 0x10
shl r8, 0x30
or r8, rax
mov eax, r8d
imul rcx, rax
mov qword [rsp + 0x78], r8
lea rax, [r9 + rcx*2]
add rax, r8
mov qword [rsp + 0x30], rax
xor rax, rdx
mov rcx, rax
add rax, rax
shr rcx, 0x3f
or rcx, rax
lea rax, [rbp + 0x3e0]
mov qword [rsp + 8], rcx
lea ecx, [rbx*2 - 0x30]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rbp - 0x78], rax
lea ecx, [rbx*2 - 0x50]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x68], rax
mov ecx, edx
mov eax, r8d
imul rcx, rax
lea rax, [rbp + 0x3e0]
lea r10, [rdx + rcx*2]
add r10, r8
lea ecx, [rbx*2 + 0x10]
lea rax, [rax + rcx*8]
mov r9, r10
xor r9, qword [rax]
mov qword [rsp + 0x20], rax
mov rdx, r9
shr rdx, 0x20
lea eax, [rbx*2 - 0x10]
mov rcx, qword [r13 + rax*8]
lea r13, [r13 + rax*8]
shl r9, 0x20
or r9, rdx
mov eax, ecx
imul rax, rdx
lea rdx, [r9 + rax*2]
add rdx, rcx
mov rax, rdx
mov ecx, r10d
xor rax, r8
lea rsi, [rbp + 0x3e0]
mov r8, rax
lea r12, [rbp + 0x3e0]
shr rax, 0x18
shl r8, 0x28
or r8, rax
mov eax, r8d
imul rcx, rax
lea rax, [r10 + rcx*2]
mov ecx, edx
add rax, r8
mov qword [rbp - 0x80], rax
xor rax, r9
mov r9, rax
shr rax, 0x10
shl r9, 0x30
or r9, rax
mov eax, r9d
imul rcx, rax
mov qword [rsp + 0x38], r9
lea rdi, [rdx + rcx*2]
add rdi, r9
lea ecx, [r14 + 0x31]
xor r8, rdi
mov r15, r8
shr r15, 0x3f
lea rax, [r8 + r8]
or r15, rax
lea rax, [rbp + 0x3e0]
mov r8, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x50], rax
lea ecx, [r14 + 0x11]
lea rax, [rbp + 0x3e0]
mov rdx, qword [rax + rcx*8]
lea rax, [rax + rcx*8]
mov qword [rsp + 0x28], rax
mov eax, r8d
mov ecx, edx
imul rcx, rax
lea eax, [r14 + 0x71]
lea rsi, [rsi + rax*8]
lea eax, [r14 + 0x51]
lea r12, [r12 + rax*8]
lea r10, [rdx + rcx*2]
mov rcx, qword [r12]
add r10, r8
mov eax, ecx
mov r11, r10
xor r11, qword [rsi]
mov rdx, r11
shl r11, 0x20
shr rdx, 0x20
imul rax, rdx
or r11, rdx
lea r9, [r11 + rax*2]
add r9, rcx
mov ecx, r10d
mov rax, r9
xor rax, r8
mov r8, rax
shr rax, 0x18
shl r8, 0x28
or r8, rax
mov eax, r8d
imul rcx, rax
lea rax, [r10 + rcx*2]
mov ecx, r9d
add rax, r8
xor r11, rax
mov qword [rsp + 0x48], rax
mov rdx, r11
shr r11, 0x10
shl rdx, 0x30
or rdx, r11
mov eax, edx
imul rcx, rax
lea rbx, [r9 + rcx*2]
mov r9, qword [rbp - 0x40]
add rbx, rdx
mov ecx, r9d
mov rax, rbx
xor rax, r8
mov r8, qword [rsp + 8]
mov r14, rax
add rax, rax
shr r14, 0x3f
or r14, rax
mov eax, r8d
imul rcx, rax
lea rax, [r9 + rcx*2]
add r8, rax
mov eax, edi
mov r11, r8
xor r11, rdx
mov rcx, r11
shl r11, 0x20
shr rcx, 0x20
imul rax, rcx
or r11, rcx
mov ecx, r8d
lea r10, [r11 + rax*2]
mov rax, qword [rsp + 8]
add r10, rdi
xor rax, r10
mov r9, rax
shr rax, 0x18
shl r9, 0x28
or r9, rax
mov eax, r9d
imul rcx, rax
mov rax, qword [rbp - 0x48]
lea rcx, [r8 + rcx*2]
add rcx, r9
mov qword [rax], rcx
xor r11, rcx
mov ecx, r10d
mov rdx, r11
shl rdx, 0x30
shr r11, 0x10
or rdx, r11
mov eax, edx
imul rcx, rax
mov rax, qword [rbp - 0x50]
mov qword [rsi], rdx
lea rcx, [r10 + rcx*2]
mov r10, qword [rbp - 0x60]
add rcx, rdx
mov rdx, qword [rbp - 0x58]
mov qword [r13], rcx
xor rcx, r9
ror rcx, 0x3f
mov qword [rax], rcx
mov ecx, edx
mov eax, r15d
imul rcx, rax
mov eax, ebx
lea rdx, [rdx + rcx*2]
add rdx, r15
xor r10, rdx
mov rcx, r10
shl r10, 0x20
shr rcx, 0x20
imul rax, rcx
or r10, rcx
mov ecx, edx
lea r9, [r10 + rax*2]
add r9, rbx
mov rax, r9
xor rax, r15
mov r8, rax
shr rax, 0x18
shl r8, 0x28
or r8, rax
mov eax, r8d
imul rcx, rax
mov rax, qword [rbp - 0x68]
lea rcx, [rdx + rcx*2]
add rcx, r8
mov qword [rax], rcx
xor r10, rcx
mov rax, qword [rbp - 0x70]
mov rdx, r10
mov r11, qword [rsp + 0x40]
shl rdx, 0x30
shr r10, 0x10
or rdx, r10
mov ecx, r9d
mov r10, qword [rsp + 0x78]
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rbp - 0x78]
lea rcx, [r9 + rcx*2]
add rcx, rdx
mov rdx, qword [rbp - 0x80]
mov qword [r12], rcx
xor rcx, r8
mov r8, qword [rsp + 0x70]
ror rcx, 0x3f
mov qword [rax], rcx
mov ecx, edx
mov eax, r14d
imul rcx, rax
mov eax, r8d
lea rdx, [rdx + rcx*2]
add rdx, r14
xor r10, rdx
mov rcx, r10
shl r10, 0x20
shr rcx, 0x20
imul rax, rcx
or r10, rcx
mov ecx, edx
lea r9, [r10 + rax*2]
add r9, r8
mov rax, r9
xor rax, r14
mov r8, rax
shr rax, 0x18
shl r8, 0x28
or r8, rax
mov eax, r8d
imul rcx, rax
mov rax, qword [rsp + 0x68]
lea rcx, [rdx + rcx*2]
add rcx, r8
xor r10, rcx
mov qword [rax], rcx
mov rax, qword [rsp + 0x60]
mov rdx, r10
shl rdx, 0x30
shr r10, 0x10
or rdx, r10
mov ecx, r9d
mov r10, qword [rsp + 0x38]
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rsp + 0x58]
lea rcx, [r9 + rcx*2]
add rcx, rdx
mov rdx, qword [rsp + 0x48]
mov qword [rax], rcx
xor rcx, r8
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x30]
ror rcx, 0x3f
mov qword [rax], rcx
mov ecx, edx
mov eax, r11d
imul rcx, rax
mov eax, r8d
lea rdx, [rdx + rcx*2]
add rdx, r11
xor r10, rdx
mov rcx, r10
shl r10, 0x20
shr rcx, 0x20
or r10, rcx
imul rax, rcx
mov ecx, edx
lea r9, [r10 + rax*2]
add r9, r8
xor r11, r9
mov r8, r11
shr r11, 0x18
shl r8, 0x28
or r8, r11
mov eax, r8d
imul rcx, rax
mov rax, qword [rsp + 0x28]
lea rcx, [rdx + rcx*2]
add rcx, r8
mov qword [rax], rcx
xor r10, rcx
mov rax, qword [rsp + 0x20]
mov rdx, r10
shl rdx, 0x30
shr r10, 0x10
or rdx, r10
mov ecx, r9d
mov qword [rax], rdx
mov eax, edx
imul rcx, rax
mov rax, qword [rsp + 0x18]
lea rcx, [r9 + rcx*2]
add rcx, rdx
mov edx, dword [rsp + 4]
mov qword [rax], rcx
inc edx
mov rax, qword [rsp + 0x10]
xor rcx, r8
ror rcx, 0x3f
mov dword [rsp + 4], edx
mov qword [rax], rcx
cmp edx, 8
jb 0x1400a04a0
mov r9, qword [rbp - 0x30]
lea rcx, [rbp - 0x20]
mov rax, r9
mov edx, 8
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x1400a0b20
lea rdx, [rbp + 0x3e0]
sub rdx, r9
lea r8, [rbp + 0x3e8]
sub r8, r9
lea rax, [r9 + 0x10]
nop dword [rax + rax]
mov rcx, qword [rax + rdx - 0x10]
xor qword [rax - 0x10], rcx
mov rcx, qword [rax + r8 - 0x10]
xor qword [rax - 8], rcx
mov rcx, qword [rax + rdx]
xor qword [rax], rcx
mov rcx, qword [rax + r8]
xor qword [rax + 8], rcx
lea rax, [rax + 0x20]
sub qword [rbp - 0x38], 1
jne 0x1400a0b90
mov rcx, qword [rbp + 0x7e0]
xor rcx, rsp
call fcn.1400c73f0
lea r11, [rsp + 0x8f0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret