Function at 0x5c1c70
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r14
mov eax, 0x4510
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.006a3330
sub rsp, rax
vmovups xmmword [rsp + 0x4470], xmm6
vmovups xmmword [rsp + 0x4480], xmm7
vmovups xmmword [rsp + 0x4490], xmm8
vmovups xmmword [rsp + 0x44a0], xmm9
vmovups xmmword [rsp + 0x44b0], xmm10
vmovups xmmword [rsp + 0x44c0], xmm11
vmovups xmmword [rsp + 0x44d0], xmm12
vmovups xmmword [rsp + 0x44e0], xmm13
vmovups xmmword [rsp + 0x44f0], xmm14
vmovups xmmword [rsp + 0x4500], xmm15
mov r13, rdx
lea rbx, [rsp + 0x25f]
mov rdx, qword [r8 + 0x48]
mov r12, rcx
and rbx, 0xffffffffffffffc0
mov r14, r8
mov rdi, r9
lea rbp, [rbx + 0x4000]
mov rsi, rbx
mov rcx, rbp
call fcn.005c1760
vmovdqu ymm15, ymmword [rbx + 0x41c0]
mov rcx, rbx
vmovdqu ymm13, ymmword [rbx + 0x4000]
vmovdqu ymm12, ymmword [rbx + 0x4020]
vmovdqu ymm11, ymmword [rbx + 0x4040]
vmovdqu ymm10, ymmword [rbx + 0x4060]
vmovdqu ymm9, ymmword [rbx + 0x4080]
vmovdqu ymm8, ymmword [rbx + 0x40a0]
vmovdqu ymm7, ymmword [rbx + 0x40c0]
vmovdqu ymm6, ymmword [rbx + 0x40e0]
vmovdqu ymm5, ymmword [rbx + 0x4100]
vmovdqu ymm4, ymmword [rbx + 0x4120]
vmovdqu ymm3, ymmword [rbx + 0x4140]
vmovdqu ymm2, ymmword [rbx + 0x4160]
vmovdqu ymm1, ymmword [rbx + 0x4180]
vmovdqu ymm0, ymmword [rbx + 0x41a0]
vmovdqu ymmword [rsp + 0x20], ymm15
vmovdqu ymm15, ymmword [rbx + 0x41e0]
vmovdqu ymmword [rsp + 0x40], ymm15
nop
mov r8d, 0x200
mov rdx, rbp
vmovdqu ymmword [rsp + 0x200], ymm0
vmovdqu ymmword [rsp + 0x1e0], ymm1
vmovdqu ymmword [rsp + 0x1c0], ymm2
vmovdqu ymmword [rsp + 0x1a0], ymm3
vmovdqu ymmword [rsp + 0x180], ymm4
vmovdqu ymmword [rsp + 0x160], ymm5
vmovdqu ymmword [rsp + 0x140], ymm6
vmovdqu ymmword [rsp + 0x120], ymm7
vmovdqu ymmword [rsp + 0x100], ymm8
vmovdqu ymmword [rsp + 0xe0], ymm9
vmovdqu ymmword [rsp + 0xc0], ymm10
vmovdqu ymmword [rsp + 0xa0], ymm11
vmovdqu ymmword [rsp + 0x80], ymm12
vmovdqu ymmword [rsp + 0x60], ymm13
vzeroupper
call sub.msvcrt.dll_memcpy
vmovdqu ymm15, ymmword [rsp + 0x20]
vmovdqu ymm13, ymmword [rsp + 0x60]
vmovdqu ymm12, ymmword [rsp + 0x80]
mov rcx, rax
vmovdqu ymm11, ymmword [rsp + 0xa0]
vmovdqu ymm10, ymmword [rsp + 0xc0]
add rcx, 0x200
vmovdqu ymm9, ymmword [rsp + 0xe0]
vmovdqu ymm8, ymmword [rsp + 0x100]
vmovdqu ymm7, ymmword [rsp + 0x120]
vmovdqu ymm6, ymmword [rsp + 0x140]
vmovdqu ymm5, ymmword [rsp + 0x160]
vmovdqu ymm4, ymmword [rsp + 0x180]
vmovdqu ymm3, ymmword [rsp + 0x1a0]
vmovdqu ymm2, ymmword [rsp + 0x1c0]
vmovdqu ymm1, ymmword [rsp + 0x1e0]
vmovdqu ymm0, ymmword [rsp + 0x200]
vpsrld ymm14, ymm13, 0x1f
vpslld ymm13, ymm13, 1
vpor ymm13, ymm13, ymm14
vpsrld ymm14, ymm12, 0x1f
vpslld ymm12, ymm12, 1
vpor ymm12, ymm12, ymm14
vpsrld ymm14, ymm11, 0x1f
vpslld ymm11, ymm11, 1
vpor ymm11, ymm11, ymm14
vpsrld ymm14, ymm10, 0x1f
vpslld ymm10, ymm10, 1
vpor ymm10, ymm10, ymm14
vpsrld ymm14, ymm9, 0x1f
vpslld ymm9, ymm9, 1
vpor ymm9, ymm9, ymm14
vpsrld ymm14, ymm8, 0x1f
vpslld ymm8, ymm8, 1
vpor ymm8, ymm8, ymm14
vpsrld ymm14, ymm7, 0x1f
vpslld ymm7, ymm7, 1
vpor ymm7, ymm7, ymm14
vpsrld ymm14, ymm6, 0x1f
vpslld ymm6, ymm6, 1
vpor ymm6, ymm6, ymm14
vpsrld ymm14, ymm5, 0x1f
vpslld ymm5, ymm5, 1
vpor ymm5, ymm5, ymm14
vpsrld ymm14, ymm4, 0x1f
vpslld ymm4, ymm4, 1
vpor ymm4, ymm4, ymm14
vpsrld ymm14, ymm3, 0x1f
vpslld ymm3, ymm3, 1
vpor ymm3, ymm3, ymm14
vpsrld ymm14, ymm2, 0x1f
vpslld ymm2, ymm2, 1
vpor ymm2, ymm2, ymm14
vpsrld ymm14, ymm1, 0x1f
vpslld ymm1, ymm1, 1
vpor ymm1, ymm1, ymm14
vpsrld ymm14, ymm0, 0x1f
vpslld ymm0, ymm0, 1
vpor ymm0, ymm0, ymm14
vpsrld ymm14, ymm15, 0x1f
vpslld ymm15, ymm15, 1
vpor ymm15, ymm15, ymm14
vmovdqu ymmword [rbx + 0x4000], ymm13
vmovdqu ymmword [rbx + 0x4020], ymm12
vmovdqu ymmword [rsp + 0x20], ymm15
vmovdqu ymmword [rbx + 0x41c0], ymm15
vmovdqu ymmword [rbx + 0x4040], ymm11
vmovdqu ymmword [rbx + 0x4060], ymm10
vmovdqu ymmword [rbx + 0x4080], ymm9
vmovdqu ymmword [rbx + 0x40a0], ymm8
vmovdqu ymmword [rbx + 0x40c0], ymm7
vmovdqu ymmword [rbx + 0x40e0], ymm6
vmovdqu ymmword [rbx + 0x4100], ymm5
vmovdqu ymmword [rbx + 0x4120], ymm4
vmovdqu ymmword [rbx + 0x4140], ymm3
vmovdqu ymmword [rbx + 0x4160], ymm2
vmovdqu ymmword [rbx + 0x4180], ymm1
vmovdqu ymmword [rbx + 0x41a0], ymm0
vmovdqu ymm15, ymmword [rsp + 0x40]
vpsrld ymm14, ymm15, 0x1f
vpslld ymm15, ymm15, 1
vpor ymm15, ymm15, ymm14
vmovdqu ymmword [rsp + 0x40], ymm15
vmovdqu ymmword [rbx + 0x41e0], ymm15
cmp rbp, rcx
jne 0x5c1da0
mov r9d, 0x20
lea r8, [rbx + 0x4200]
mov edx, 0x50
mov rcx, r14
vzeroupper
call fcn.005c4c50
vmovdqu ymm1, ymmword [rbx + 0x4200]
sub r13, 0x20
vmovdqu ymm2, ymmword [0x00706f80]
shr r13, 4
mov ecx, 0x811c9dc5
lea r8d, [r13 + 1]
mov eax, dword [rsi]
xor edx, edx
add rsi, 4
xor eax, ecx
imul eax, eax, 0x1000193
div r8d
shl edx, 2
lea rax, [r12 + rdx*4]
xor ecx, dword [rax]
vpxor ymm1, ymm1, ymmword [rax]
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 4]
vpmulld ymm0, ymm2, ymm1
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 8]
vmovdqu ymm1, ymm0
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 0xc]
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 0x10]
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 0x14]
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 0x18]
imul ecx, ecx, 0x1000193
xor ecx, dword [rax + 0x1c]
imul ecx, ecx, 0x1000193
cmp rbp, rsi
jne 0x5c2090
vmovdqu ymmword [rbx + 0x4200], ymm0
mov rax, qword [rbx + 0x4210]
mov rdx, qword [rbx + 0x4218]
vmovdqu xmmword [rdi], xmm0
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rdx
vzeroupper
vmovups xmm6, xmmword [rsp + 0x4470]
vmovups xmm7, xmmword [rsp + 0x4480]
vmovups xmm8, xmmword [rsp + 0x4490]
vmovups xmm9, xmmword [rsp + 0x44a0]
vmovups xmm10, xmmword [rsp + 0x44b0]
vmovups xmm11, xmmword [rsp + 0x44c0]
vmovups xmm12, xmmword [rsp + 0x44d0]
vmovups xmm13, xmmword [rsp + 0x44e0]
vmovups xmm14, xmmword [rsp + 0x44f0]
vmovups xmm15, xmmword [rsp + 0x4500]
add rsp, 0x4510
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret