Function at 0x1400d7870
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 [0x14015ff00]
xor rax, rsp
mov qword [rbp + 0x7e0], rax
mov rbx, r8
lea rax, [rbp - 0x20]
mov r9d, 8
mov qword [rbp - 0x28], rbx
mov r10d, r9d
mov r8, 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 0x1400d78c0
lea r10, [rbp - 0x20]
add rcx, 0x10
sub r10, r8
lea r11, [rbp - 0x18]
sub r11, r8
mov r8d, 0x20
mov qword [rbp - 0x30], r8
mov edx, r8d
mov rax, qword [rcx - 0x10]
xor qword [rcx + r10 - 0x10], rax
mov rax, qword [rcx - 8]
xor qword [r11 + rcx - 0x10], rax
mov rax, qword [rcx]
xor qword [rcx + r10], rax
mov rax, qword [rcx + 8]
xor qword [rcx + r11], rax
lea rcx, [rcx + 0x20]
sub rdx, 1
jne 0x1400d7932
lea rax, [rbp + 0x3e0]
lea rcx, [rbp - 0x20]
nop dword [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 0x1400d7970
lea r9, [rbp + 0x3e0]
sub r9, rbx
lea r10, [rbp + 0x3e8]
sub r10, rbx
lea rdx, [rbx + 0x10]
nop dword [rax + rax]
mov rcx, qword [rdx - 0x10]
xor qword [rdx + r9 - 0x10], rcx
mov rcx, qword [rdx - 8]
xor qword [rdx + r10 - 0x10], rcx
mov rcx, qword [rdx]
xor qword [rdx + r9], rcx
mov rcx, qword [rdx + 8]
xor qword [rdx + r10], rcx
lea rdx, [rdx + 0x20]
sub r8, 1
jne 0x1400d79e0
xor ecx, ecx
mov dword [rsp], ecx
shl ecx, 4
mov edi, ecx
lea edx, [rcx + 4]
lea rcx, [rbp - 0x20]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x38], rcx
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdi*8]
lea rcx, [rcx + rdi*8]
mov qword [rsp + 0x18], rcx
mov edx, r8d
mov ecx, r9d
imul rdx, rcx
lea rcx, [rbp - 0x20]
lea r11, [r8 + rdx*2]
add r11, r9
lea edx, [rdi + 0xc]
lea rcx, [rcx + rdx*8]
mov rbx, r11
xor rbx, qword [rcx]
lea edx, [rdi + 8]
mov qword [rsp + 0x48], rcx
mov r8, rbx
shr r8, 0x20
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shl rbx, 0x20
mov rdx, qword [rcx]
or rbx, r8
mov qword [rbp - 0x80], rcx
mov ecx, edx
imul rcx, r8
lea r10, [rbx + rcx*2]
add r10, rdx
mov edx, r11d
mov rcx, r10
xor rcx, r9
mov r8, rcx
shr rcx, 0x18
shl r8, 0x28
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rcx, [r11 + rdx*2]
mov edx, r10d
add rcx, r8
xor rbx, rcx
mov qword [rsp + 0x10], rcx
mov r9, rbx
shr rbx, 0x10
shl r9, 0x30
or r9, rbx
mov ecx, r9d
imul rdx, rcx
mov qword [rsp + 0x38], r9
lea rcx, [r10 + rdx*2]
add rcx, r9
mov qword [rsp + 0x68], rcx
xor rcx, r8
mov rdx, rcx
add rcx, rcx
shr rdx, 0x3f
or rdx, rcx
lea rcx, [rbp - 0x20]
mov qword [rbp - 0x68], rdx
lea edx, [rdi + 5]
mov r11, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x28], rcx
lea edx, [rdi + 1]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x40], rcx
mov edx, r8d
mov ecx, r11d
imul rdx, rcx
lea r10, [r8 + rdx*2]
add r10, r11
lea edx, [rdi + 0xd]
mov rbx, r10
lea rcx, [rbp - 0x20]
xor rbx, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x78], rcx
lea edx, [rdi + 9]
mov r8, rbx
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shr r8, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x40], rcx
mov ecx, edx
imul rcx, r8
shl rbx, 0x20
or rbx, r8
lea r9, [rbx + rcx*2]
add r9, rdx
mov edx, r10d
xor r11, r9
mov r8, r11
shr r11, 0x18
shl r8, 0x28
or r8, r11
mov ecx, r8d
imul rdx, rcx
lea rcx, [r10 + rdx*2]
mov edx, r9d
add rcx, r8
xor rbx, rcx
mov qword [rsp + 0x30], rcx
mov r10, rbx
shr rbx, 0x10
shl r10, 0x30
or r10, rbx
mov ecx, r10d
imul rdx, rcx
mov qword [rsp + 0x60], r10
lea rcx, [r9 + rdx*2]
add rcx, r10
mov qword [rbp - 0x58], rcx
xor rcx, r8
mov rdx, rcx
add rcx, rcx
shr rdx, 0x3f
or rdx, rcx
lea rcx, [rbp - 0x20]
mov qword [rsp + 8], rdx
lea edx, [rdi + 6]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x50], rcx
lea edx, [rdi + 2]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x70], rcx
mov edx, r8d
mov ecx, r9d
imul rdx, rcx
lea rcx, [rbp - 0x20]
lea rbx, [r8 + rdx*2]
lea edx, [rdi + 0xe]
add rbx, r9
lea rcx, [rcx + rdx*8]
mov r11, rbx
xor r11, qword [rcx]
lea edx, [rdi + 0xa]
mov qword [rbp - 0x48], rcx
mov r8, r11
shr r8, 0x20
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shl r11, 0x20
mov rdx, qword [rcx]
or r11, r8
mov qword [rsp + 0x20], rcx
mov ecx, edx
imul rcx, r8
lea r10, [rdx + rcx*2]
add r10, r11
mov rcx, r10
mov edx, ebx
xor rcx, r9
lea r14, [rbp - 0x20]
mov r8, rcx
lea r12, [rbp - 0x20]
shr rcx, 0x18
shl r8, 0x28
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rcx, [rbx + rdx*2]
mov edx, r10d
add rcx, r8
mov qword [rsp + 0x58], rcx
xor rcx, r11
mov r9, rcx
shr rcx, 0x10
shl r9, 0x30
or r9, rcx
mov ecx, r9d
imul rdx, rcx
mov qword [rbp - 0x60], r9
lea rsi, [r10 + rdx*2]
add rsi, r9
lea edx, [rdi + 7]
mov rcx, rsi
xor rcx, r8
mov r13, rcx
add rcx, rcx
shr r13, 0x3f
or r13, rcx
lea rcx, [rbp - 0x20]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x78], rcx
lea edx, [rdi + 3]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x50], rcx
mov ecx, r9d
mov edx, r8d
imul rdx, rcx
lea ecx, [rdi + 0xf]
lea r14, [r14 + rcx*8]
lea ecx, [rdi + 0xb]
lea r12, [r12 + rcx*8]
lea rbx, [r8 + rdx*2]
mov rdx, qword [r12]
add rbx, r9
mov ecx, edx
mov r11, rbx
xor r11, qword [r14]
mov r8, r11
shl r11, 0x20
shr r8, 0x20
imul rcx, r8
or r11, r8
lea r10, [rdx + rcx*2]
mov edx, ebx
add r10, r11
mov rcx, r10
xor rcx, r9
mov r9, rcx
shr rcx, 0x18
shl r9, 0x28
or r9, rcx
mov ecx, r9d
imul rdx, rcx
lea rcx, [rbx + rdx*2]
mov edx, r10d
add rcx, r9
mov qword [rbp - 0x70], rcx
xor rcx, r11
mov r8, rcx
shr rcx, 0x10
shl r8, 0x30
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rdi, [r10 + rdx*2]
mov r10, qword [rsp + 0x10]
add rdi, r8
mov edx, r10d
mov rcx, rdi
xor rcx, r9
mov r9, qword [rsp + 8]
mov r15, rcx
add rcx, rcx
shr r15, 0x3f
or r15, rcx
mov ecx, r9d
imul rdx, rcx
lea rcx, [r10 + rdx*2]
add r9, rcx
mov ecx, esi
mov r10, r9
xor r10, r8
mov rdx, r10
shl r10, 0x20
shr rdx, 0x20
imul rcx, rdx
or r10, rdx
mov edx, r9d
lea rbx, [rsi + rcx*2]
mov rcx, qword [rsp + 8]
add rbx, r10
xor rcx, rbx
mov r11, rcx
shr rcx, 0x18
shl r11, 0x28
or r11, rcx
mov ecx, r11d
imul rdx, rcx
mov rcx, qword [rsp + 0x18]
lea rdx, [r9 + rdx*2]
add rdx, r11
mov qword [rcx], rdx
xor rdx, r10
mov r8, rdx
shr rdx, 0x10
shl r8, 0x30
or r8, rdx
mov edx, ebx
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rsp + 0x20]
mov qword [r14], r8
lea rdx, [rbx + rdx*2]
add rdx, r8
mov r8, qword [rsp + 0x30]
mov qword [rcx], rdx
xor rdx, r11
mov rcx, qword [rsp + 0x28]
ror rdx, 0x3f
mov qword [rcx], rdx
mov ecx, r13d
mov edx, r8d
imul rdx, rcx
mov ecx, edi
lea r8, [r8 + rdx*2]
add r8, r13
mov r9, r8
xor r9, qword [rsp + 0x38]
mov rdx, r9
shl r9, 0x20
shr rdx, 0x20
imul rcx, rdx
or r9, rdx
mov edx, r8d
lea r11, [rdi + rcx*2]
add r11, r9
xor r13, r11
mov r10, r13
shr r13, 0x18
shl r10, 0x28
or r10, r13
mov ecx, r10d
imul rdx, rcx
lea rdx, [r8 + rdx*2]
add rdx, r10
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rbp - 0x68]
mov qword [rcx], rdx
xor rdx, r9
mov rcx, qword [rsp + 0x48]
mov r8, rdx
shr rdx, 0x10
shl r8, 0x30
or r8, rdx
mov edx, r11d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rsp + 0x50]
lea rdx, [r11 + rdx*2]
add rdx, r8
mov r8, qword [rsp + 0x58]
mov qword [r12], rdx
xor rdx, r10
mov r10, qword [rsp + 0x68]
ror rdx, 0x3f
mov qword [rcx], rdx
mov edx, r8d
mov ecx, r15d
imul rdx, rcx
mov ecx, r10d
lea r8, [r8 + rdx*2]
add r8, r15
mov r9, r8
xor r9, qword [rsp + 0x60]
mov rdx, r9
shl r9, 0x20
shr rdx, 0x20
imul rcx, rdx
or r9, rdx
mov edx, r8d
lea r11, [r10 + rcx*2]
add r11, r9
xor r15, r11
mov r10, r15
shr r15, 0x18
shl r10, 0x28
or r10, r15
mov ecx, r10d
imul rdx, rcx
mov rcx, qword [rsp + 0x70]
lea rdx, [r8 + rdx*2]
add rdx, r10
mov qword [rcx], rdx
xor rdx, r9
mov rcx, qword [rsp + 0x78]
mov r8, rdx
shr rdx, 0x10
shl r8, 0x30
or r8, rdx
mov edx, r11d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rbp - 0x80]
lea rdx, [r11 + rdx*2]
add rdx, r8
mov r8, qword [rbp - 0x70]
mov qword [rcx], rdx
xor rdx, r10
mov rcx, qword [rbp - 0x78]
mov r10, qword [rbp - 0x58]
ror rdx, 0x3f
mov qword [rcx], rdx
mov edx, r8d
mov ecx, ebx
imul rdx, rcx
mov ecx, r10d
lea r8, [r8 + rdx*2]
add r8, rbx
mov r9, r8
xor r9, qword [rbp - 0x60]
mov rdx, r9
shl r9, 0x20
shr rdx, 0x20
or r9, rdx
imul rcx, rdx
mov edx, r8d
lea r11, [r10 + rcx*2]
add r11, r9
xor rbx, r11
mov r10, rbx
shr rbx, 0x18
shl r10, 0x28
or r10, rbx
mov ecx, r10d
imul rdx, rcx
mov rcx, qword [rbp - 0x50]
lea rdx, [r8 + rdx*2]
add rdx, r10
mov qword [rcx], rdx
xor rdx, r9
mov rcx, qword [rbp - 0x48]
mov r8, rdx
shr rdx, 0x10
shl r8, 0x30
or r8, rdx
mov edx, r11d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rbp - 0x40]
lea rdx, [r11 + rdx*2]
add rdx, r8
mov qword [rcx], rdx
xor rdx, r10
mov rcx, qword [rbp - 0x38]
ror rdx, 0x3f
mov qword [rcx], rdx
mov ecx, dword [rsp]
inc ecx
mov dword [rsp], ecx
cmp ecx, 8
jb 0x1400d7a10
xor eax, eax
nop
lea r15d, [rax + rax]
lea edi, [rax + 0x30]
lea edx, [rdi*2 - 0x40]
lea rcx, [rbp - 0x20]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 8], rcx
lea rdx, [rbp - 0x20]
mov r8, qword [rdx + r15*8]
lea rcx, [rdx + r15*8]
mov qword [rbp - 0x48], rcx
mov edx, r8d
mov ecx, r9d
imul rdx, rcx
lea rcx, [rbp - 0x20]
lea rbx, [r8 + rdx*2]
add rbx, r9
lea edx, [rdi + rdi]
lea rcx, [rcx + rdx*8]
mov r11, rbx
xor r11, qword [rcx]
lea edx, [rdi*2 - 0x20]
mov qword [rbp - 0x78], rcx
mov r8, r11
shr r8, 0x20
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shl r11, 0x20
mov rdx, qword [rcx]
or r11, r8
mov qword [rsp + 0x50], rcx
mov ecx, edx
imul rcx, r8
lea r10, [r11 + rcx*2]
add r10, rdx
mov edx, ebx
mov rcx, r10
xor rcx, r9
mov r8, rcx
shr rcx, 0x18
shl r8, 0x28
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rcx, [rbx + rdx*2]
mov edx, r10d
add rcx, r8
mov qword [rbp - 0x38], rcx
xor rcx, r11
mov r9, rcx
shr rcx, 0x10
shl r9, 0x30
or r9, rcx
mov ecx, r9d
imul rdx, rcx
mov qword [rbp - 0x68], r9
lea rcx, [r10 + rdx*2]
add rcx, r9
mov qword [rsp + 0x68], rcx
xor rcx, r8
mov rdx, rcx
add rcx, rcx
shr rdx, 0x3f
or rdx, rcx
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x38], rdx
lea edx, [r15 + 0x21]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x58], rcx
lea edx, [r15 + 1]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x70], rcx
mov edx, r8d
mov ecx, r9d
imul rdx, rcx
lea r11, [r8 + rdx*2]
add r11, r9
lea edx, [r15 + 0x61]
mov rbx, r11
lea rcx, [rbp - 0x20]
xor rbx, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x58], rcx
lea edx, [r15 + 0x41]
mov r8, rbx
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shr r8, 0x20
mov rdx, qword [rcx]
mov qword [rsp + 0x10], rcx
mov ecx, edx
imul rcx, r8
shl rbx, 0x20
or rbx, r8
lea r10, [rbx + rcx*2]
add r10, rdx
mov edx, r11d
mov rcx, r10
xor rcx, r9
mov r8, rcx
shr rcx, 0x18
shl r8, 0x28
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rcx, [r11 + rdx*2]
mov edx, r10d
add rcx, r8
xor rbx, rcx
mov qword [rbp - 0x60], rcx
mov r9, rbx
shr rbx, 0x10
shl r9, 0x30
or r9, rbx
mov ecx, r9d
imul rdx, rcx
mov qword [rsp + 0x70], r9
lea rcx, [r10 + rdx*2]
add rcx, r9
mov qword [rsp + 0x28], rcx
xor rcx, r8
mov rdx, rcx
add rcx, rcx
shr rdx, 0x3f
or rdx, rcx
lea rcx, [rbp - 0x20]
mov qword [rbp - 0x40], rdx
lea edx, [rdi*2 - 0x30]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rbp - 0x80], rcx
lea edx, [rdi*2 - 0x50]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x60], rcx
mov edx, r8d
mov ecx, r9d
imul rdx, rcx
lea rcx, [rbp - 0x20]
lea r11, [r8 + rdx*2]
lea edx, [rdi*2 + 0x10]
add r11, r9
lea rcx, [rcx + rdx*8]
mov rbx, r11
xor rbx, qword [rcx]
lea edx, [rdi*2 - 0x10]
mov qword [rsp + 0x18], rcx
mov r8, rbx
shr r8, 0x20
lea rcx, [rbp - 0x20]
lea rcx, [rcx + rdx*8]
shl rbx, 0x20
mov rdx, qword [rcx]
or rbx, r8
mov qword [rbp - 0x50], rcx
mov ecx, edx
imul rcx, r8
lea r10, [rbx + rcx*2]
add r10, rdx
lea r14, [rbp - 0x20]
mov rcx, r10
mov edx, r11d
xor rcx, r9
lea r13, [rbp - 0x20]
mov r8, rcx
shr rcx, 0x18
shl r8, 0x28
or r8, rcx
mov ecx, r8d
imul rdx, rcx
lea rcx, [r11 + rdx*2]
mov edx, r10d
add rcx, r8
xor rbx, rcx
mov qword [rsp + 0x78], rcx
mov r9, rbx
shr rbx, 0x10
shl r9, 0x30
or r9, rbx
mov ecx, r9d
imul rdx, rcx
mov qword [rsp + 0x30], r9
lea rsi, [r10 + rdx*2]
add rsi, r9
lea edx, [r15 + 0x31]
mov rcx, rsi
xor rcx, r8
mov r12, rcx
add rcx, rcx
shr r12, 0x3f
or r12, rcx
lea rcx, [rbp - 0x20]
mov r9, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x48], rcx
lea edx, [r15 + 0x11]
lea rcx, [rbp - 0x20]
mov r8, qword [rcx + rdx*8]
lea rcx, [rcx + rdx*8]
mov qword [rsp + 0x20], rcx
mov ecx, r9d
mov edx, r8d
imul rdx, rcx
lea ecx, [r15 + 0x71]
lea r14, [r14 + rcx*8]
lea ecx, [r15 + 0x51]
lea r13, [r13 + rcx*8]
lea r11, [r8 + rdx*2]
mov rdx, qword [r13]
add r11, r9
mov ecx, edx
mov rbx, r11
xor rbx, qword [r14]
mov r8, rbx
shl rbx, 0x20
shr r8, 0x20
imul rcx, r8
or rbx, r8
lea r10, [rbx + rcx*2]
add r10, rdx
mov edx, r11d
mov rcx, r10
xor rcx, r9
mov r9, rcx
shr rcx, 0x18
shl r9, 0x28
or r9, rcx
mov ecx, r9d
imul rdx, rcx
lea rcx, [r11 + rdx*2]
mov edx, r10d
add rcx, r9
xor rbx, rcx
mov qword [rsp + 0x40], rcx
mov r8, rbx
shr rbx, 0x10
shl r8, 0x30
or r8, rbx
mov ecx, r8d
imul rdx, rcx
lea rdi, [r10 + rdx*2]
mov r10, qword [rbp - 0x40]
add rdi, r8
mov rcx, rdi
xor rcx, r9
mov r9, qword [rbp - 0x38]
mov r15, rcx
mov edx, r9d
add rcx, rcx
shr r15, 0x3f
or r15, rcx
mov ecx, r10d
imul rdx, rcx
mov ecx, esi
lea r9, [r9 + rdx*2]
add r9, r10
mov rbx, r9
xor rbx, r8
mov rdx, rbx
shl rbx, 0x20
shr rdx, 0x20
imul rcx, rdx
or rbx, rdx
mov edx, r9d
lea r11, [rbx + rcx*2]
add r11, rsi
mov rcx, r11
xor rcx, r10
mov r10, rcx
shr rcx, 0x18
shl r10, 0x28
or r10, rcx
mov ecx, r10d
imul rdx, rcx
mov rcx, qword [rbp - 0x48]
lea rdx, [r9 + rdx*2]
add rdx, r10
mov qword [rcx], rdx
xor rbx, rdx
mov edx, r11d
mov r8, rbx
shl r8, 0x30
shr rbx, 0x10
or r8, rbx
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rbp - 0x50]
mov qword [r14], r8
lea rdx, [r11 + rdx*2]
mov r11, qword [rbp - 0x68]
add rdx, r8
mov r8, qword [rbp - 0x60]
mov qword [rcx], rdx
xor rdx, r10
mov rcx, qword [rbp - 0x58]
ror rdx, 0x3f
mov qword [rcx], rdx
mov edx, r8d
mov ecx, r12d
imul rdx, rcx
mov ecx, edi
lea r8, [r8 + rdx*2]
add r8, r12
xor r11, r8
mov rdx, r11
shl r11, 0x20
shr rdx, 0x20
imul rcx, rdx
or r11, rdx
mov edx, r8d
lea r10, [r11 + rcx*2]
add r10, rdi
mov rcx, r10
xor rcx, r12
mov r9, rcx
shr rcx, 0x18
shl r9, 0x28
or r9, rcx
mov ecx, r9d
imul rdx, rcx
lea rdx, [r8 + rdx*2]
mov rcx, qword [rbp - 0x70]
add rdx, r9
mov rbx, qword [rsp + 0x38]
xor r11, rdx
mov r8, r11
shr r11, 0x10
mov qword [rcx], rdx
mov rcx, qword [rbp - 0x78]
shl r8, 0x30
or r8, r11
mov edx, r10d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rbp - 0x80]
lea rdx, [r10 + rdx*2]
add rdx, r8
mov r8, qword [rsp + 0x78]
mov qword [r13], rdx
xor rdx, r9
mov r9, qword [rsp + 0x68]
ror rdx, 0x3f
mov qword [rcx], rdx
mov edx, r8d
mov ecx, r15d
imul rdx, rcx
mov ecx, r9d
lea r8, [r8 + rdx*2]
add r8, r15
mov r11, r8
xor r11, qword [rsp + 0x70]
mov rdx, r11
shl r11, 0x20
shr rdx, 0x20
imul rcx, rdx
or r11, rdx
mov edx, r8d
lea r10, [r11 + rcx*2]
add r10, r9
mov rcx, r10
xor rcx, r15
mov r9, rcx
shr rcx, 0x18
shl r9, 0x28
or r9, rcx
mov ecx, r9d
imul rdx, rcx
mov rcx, qword [rsp + 0x60]
lea rdx, [r8 + rdx*2]
add rdx, r9
xor r11, rdx
mov qword [rcx], rdx
mov rcx, qword [rsp + 0x58]
mov r8, r11
shl r8, 0x30
shr r11, 0x10
or r8, r11
mov edx, r10d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rsp + 0x50]
lea rdx, [r10 + rdx*2]
add rdx, r8
mov r8, qword [rsp + 0x40]
mov qword [rcx], rdx
xor rdx, r9
mov rcx, qword [rsp + 0x48]
ror rdx, 0x3f
mov qword [rcx], rdx
mov edx, r8d
mov ecx, ebx
imul rdx, rcx
lea r8, [r8 + rdx*2]
add r8, rbx
mov r11, r8
xor r11, qword [rsp + 0x30]
mov rdx, r11
shr rdx, 0x20
shl r11, 0x20
mov r9, qword [rsp + 0x28]
or r11, rdx
mov ecx, r9d
inc eax
imul rcx, rdx
mov edx, r8d
lea r10, [r11 + rcx*2]
add r10, r9
xor rbx, r10
mov r9, rbx
shr rbx, 0x18
shl r9, 0x28
or r9, rbx
mov ecx, r9d
imul rdx, rcx
mov rcx, qword [rsp + 0x20]
lea rdx, [r8 + rdx*2]
add rdx, r9
mov qword [rcx], rdx
xor r11, rdx
mov rcx, qword [rsp + 0x18]
mov r8, r11
shl r8, 0x30
shr r11, 0x10
or r8, r11
mov edx, r10d
mov qword [rcx], r8
mov ecx, r8d
imul rdx, rcx
mov rcx, qword [rsp + 0x10]
lea rdx, [r10 + rdx*2]
add rdx, r8
mov qword [rcx], rdx
xor rdx, r9
mov rcx, qword [rsp + 8]
ror rdx, 0x3f
mov qword [rcx], rdx
cmp eax, 8
jb 0x1400d8030
mov r9, qword [rbp - 0x28]
lea rdx, [rbp + 0x3e0]
mov rcx, r9
mov r8d, 8
lea rax, [r9 + 0x10]
nop dword [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r8, 1
jne 0x1400d8690
lea rdx, [rbp - 0x20]
sub rdx, r9
lea r8, [rbp - 0x18]
sub r8, r9
mov rcx, qword [rdx + rax - 0x10]
xor qword [rax - 0x10], rcx
mov rcx, qword [r8 + rax - 0x10]
xor qword [rax - 8], rcx
mov rcx, qword [rdx + rax]
xor qword [rax], rcx
mov rcx, qword [r8 + rax]
xor qword [rax + 8], rcx
lea rax, [rax + 0x20]
sub qword [rbp - 0x30], 1
jne 0x1400d86f1
mov rcx, qword [rbp + 0x7e0]
xor rcx, rsp
call fcn.1400fd510
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