Function at 0x513890
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x238
vmovdqu xmm0, xmmword [0x005e3780]
mov r13d, 0x10
mov eax, dword [rcx]
vmovdqu xmm5, xmmword [rdx]
vmovdqu xmm3, xmmword [rdx + 0x10]
vpshufb xmm1, xmm5, xmm0
vmovdqu xmm5, xmmword [rdx + 0x20]
vmovd r10d, xmm1
mov dword [rsp], eax
mov eax, dword [rcx + 4]
mov r12d, r10d
vmovups xmmword [rsp + 0x120], xmm1
vpshufb xmm1, xmm3, xmm0
mov edi, dword [rsp + 0x124]
vmovups xmmword [rsp + 0x130], xmm1
vpshufb xmm1, xmm5, xmm0
vmovd r9d, xmm1
mov ebx, dword [rsp + 0x13c]
vmovups xmmword [rsp + 0x140], xmm1
vmovdqu xmm1, xmmword [rdx + 0x30]
mov ebp, r9d
mov dword [rsp + 4], eax
mov eax, dword [rcx + 8]
lea rdx, [rsp + 0x12c]
mov qword [rsp + 0x280], rcx
mov esi, dword [rsp + 0x144]
vpshufb xmm0, xmm1, xmm0
vmovups xmmword [rsp + 0x150], xmm0
mov r8d, dword [rsp + 0x158]
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x1c]
mov ecx, dword [rsp + 0x15c]
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x154]
mov r10d, dword [rsp + 0x128]
xor r12d, ebx
rol eax, 0xf
mov ebx, dword [rdx + 0x1c]
xor ebp, edi
mov r9d, r12d
mov r12d, dword [rdx]
rol r8d, 0xf
xor esi, r10d
xor r9d, eax
mov edi, dword [rdx + 4]
rol ecx, 0xf
add r13d, 3
mov eax, r9d
mov r11d, r9d
xor ecx, esi
mov r10d, dword [rdx + 8]
ror r11d, 9
rol eax, 0xf
mov esi, dword [rdx + 0x24]
add rdx, 0xc
xor eax, r11d
xor eax, r9d
mov r9d, r12d
rol r9d, 7
xor eax, ebx
xor eax, r9d
mov r9d, r8d
xor r9d, ebp
mov ebp, dword [rdx + 0x14]
mov dword [rdx + 0x28], eax
mov r8d, r9d
mov r11d, r9d
rol r11d, 0xf
ror r8d, 9
xor r8d, r11d
xor r8d, r9d
mov r9d, edi
rol r9d, 7
xor r8d, ebp
xor r8d, r9d
mov r9d, ecx
ror ecx, 9
mov r11d, r9d
mov dword [rdx + 0x2c], r8d
rol r11d, 0xf
xor ecx, r11d
xor ecx, r9d
mov r9d, r10d
xor ecx, esi
rol r9d, 7
xor ecx, r9d
mov dword [rdx + 0x30], ecx
cmp r13d, 0x43
jne 0x513985
mov eax, dword [rsp + 0x220]
lea r15, [rsp + 0x20]
mov edx, dword [rsp + 0x1ec]
lea rbp, [rsp + 0x120]
xor edx, dword [rsp + 0x208]
vmovdqu xmm5, xmmword [rsp + 0x120]
vinsertf128 ymm1, ymm5, xmmword [rsp + 0x130], 1
vmovdqu xmm3, xmmword [rsp + 0x130]
rol eax, 0xf
vinsertf128 ymm0, ymm3, xmmword [rsp + 0x140], 1
vxorps ymm0, ymm0, ymm1
vmovdqu xmm5, xmmword [rsp + 0x170]
vmovups xmmword [rsp + 0x20], xmm0
vextractf128 xmmword [rsp + 0x30], ymm0, 1
vmovdqu xmm3, xmmword [rsp + 0x160]
xor edx, eax
mov eax, dword [rsp + 0x1f8]
mov ecx, edx
vmovdqu xmm2, xmmword [rsp + 0x140]
rol ecx, 0xf
vinsertf128 ymm1, ymm2, xmmword [rsp + 0x150], 1
vmovdqu xmm4, xmmword [rsp + 0x150]
vinsertf128 ymm0, ymm4, xmmword [rsp + 0x160], 1
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm5, xmmword [rsp + 0x180], 1
vmovdqu xmm2, xmmword [rsp + 0x190]
vmovups xmmword [rsp + 0x40], xmm0
vextractf128 xmmword [rsp + 0x50], ymm0, 1
vinsertf128 ymm0, ymm3, xmm5, 1
vmovdqu xmm4, xmmword [rsp + 0x180]
rol eax, 7
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm2, xmmword [rsp + 0x1a0], 1
xor eax, dword [rsp + 0x214]
vmovups xmmword [rsp + 0x60], xmm0
vextractf128 xmmword [rsp + 0x70], ymm0, 1
vmovdqu xmm5, xmmword [rsp + 0x1b0]
vinsertf128 ymm0, ymm4, xmm2, 1
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm5, xmmword [rsp + 0x1c0], 1
vmovdqu xmm3, xmmword [rsp + 0x1a0]
vmovups xmmword [rsp + 0x80], xmm0
vextractf128 xmmword [rsp + 0x90], ymm0, 1
xor eax, edx
ror edx, 9
vinsertf128 ymm0, ymm3, xmm5, 1
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0xa0], xmm0
xor eax, ecx
xor ecx, ecx
xor eax, edx
mov dword [rsp + 0x22c], eax
vextractf128 xmmword [rsp + 0xb0], ymm0, 1
mov r10d, dword [rsp + 0x1c]
vmovdqu xmm2, xmmword [rsp + 0x1d0]
vinsertf128 ymm1, ymm2, xmmword [rsp + 0x1e0], 1
vmovdqu xmm4, xmmword [rsp + 0x1c0]
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vinsertf128 ymm0, ymm4, xmm2, 1
mov eax, dword [rsp + 0x18]
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm5, xmmword [rsp + 0x200], 1
vmovups xmmword [rsp + 0xc0], xmm0
mov r13d, dword [rsp + 0x14]
vextractf128 xmmword [rsp + 0xd0], ymm0, 1
vmovdqu xmm2, xmmword [rsp + 0x210]
vmovdqu xmm3, xmmword [rsp + 0x1e0]
vmovdqu xmm4, xmmword [rsp + 0x200]
vinsertf128 ymm0, ymm3, xmm5, 1
mov r11d, dword [rsp + 0x10]
vxorps ymm0, ymm0, ymm1
vinsertf128 ymm1, ymm2, xmmword [rsp + 0x220], 1
vmovups xmmword [rsp + 0xe0], xmm0
mov r14d, dword [rsp + 0xc]
vextractf128 xmmword [rsp + 0xf0], ymm0, 1
vinsertf128 ymm0, ymm4, xmm2, 1
mov edi, dword [rsp + 8]
vxorps ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x100], xmm0
vextractf128 xmmword [rsp + 0x110], ymm0, 1
mov r12d, dword [rsp + 4]
mov r8d, dword [rsp]
jmp 0x513c8a
mov eax, esi
mov r11d, r9d
mov edi, ebx
mov r8d, edx
mov esi, r8d
mov r9d, 0x79cc4519
mov edx, r8d
rol esi, 0xc
rol r9d, cl
xor edx, r12d
lea ebx, [rsi + r11]
xor edx, edi
add edx, dword [r15 + rcx*4]
add r9d, ebx
mov ebx, r9d
mov r9d, r11d
xor r9d, r13d
rol ebx, 7
xor r9d, eax
add r9d, dword [rbp + rcx*4]
xor esi, ebx
add rcx, 1
lea edx, [rdx + rsi]
mov esi, r13d
mov r13d, r11d
add edx, r14d
ror esi, 0xd
mov r14d, edi
add r9d, ebx
mov ebx, r12d
add r10d, r9d
rol ebx, 9
mov r9d, r10d
mov r12d, r10d
ror r12d, 0xf
rol r9d, 9
xor r9d, r12d
mov r12d, r8d
xor r9d, r10d
mov r10d, eax
cmp rcx, 0x10
jne 0x513c80
mov r13d, edi
mov edi, eax
jmp 0x513d1c
mov esi, r12d
mov r9d, eax
mov ebx, r14d
mov edx, r10d
mov r14d, edx
mov eax, 0x7a879d8a
mov r10d, r8d
rol r14d, 0xc
rol eax, cl
or r10d, ebx
lea r12d, [r14 + r9]
and r10d, edx
add eax, r12d
rol eax, 7
mov r12d, eax
mov eax, r8d
rol r8d, 9
and eax, ebx
xor r14d, r12d
or r10d, eax
mov eax, dword [r15 + rcx*4]
add eax, r10d
lea r10d, [rax + r14]
mov eax, r11d
mov r14d, r8d
xor eax, esi
add r10d, r13d
ror r11d, 0xd
and eax, r9d
xor eax, esi
add eax, dword [rbp + rcx*4]
add rcx, 1
add eax, r12d
mov r12d, r11d
mov r11d, r9d
add eax, edi
mov edi, esi
mov r13d, eax
mov r8d, eax
ror r8d, 0xf
rol r13d, 9
xor r13d, r8d
mov r8d, edx
xor eax, r13d
mov r13d, ebx
cmp rcx, 0x40
jne 0x513d10
vmovd xmm2, dword [rsp + 0x18]
vpinsrd xmm1, xmm2, dword [rsp + 0x1c], 1
vmovd xmm5, dword [rsp + 8]
vpinsrd xmm2, xmm5, dword [rsp + 0xc], 1
vmovd xmm5, eax
mov rax, qword [rsp + 0x280]
vmovd xmm3, dword [rsp + 0x10]
vpinsrd xmm4, xmm3, dword [rsp + 0x14], 1
vpunpcklqdq xmm4, xmm4, xmm1
vpinsrd xmm1, xmm5, r9d, 1
vmovd xmm3, dword [rsp]
vmovd xmm5, r10d
vpinsrd xmm0, xmm3, dword [rsp + 4], 1
vmovd xmm3, r14d
vpunpcklqdq xmm0, xmm0, xmm2
vmovd xmm2, r12d
vinsertf128 ymm4, ymm0, xmm4, 1
vpinsrd xmm3, xmm3, ebx, 1
vpinsrd xmm2, xmm2, esi, 1
vpinsrd xmm0, xmm5, edx, 1
vpunpcklqdq xmm1, xmm1, xmm2
vpunpcklqdq xmm0, xmm0, xmm3
vinsertf128 ymm0, ymm0, xmm1, 1
vxorps ymm0, ymm4, ymm0
vmovups xmmword [rax], xmm0
vextractf128 xmmword [rax + 0x10], ymm0, 1
vzeroupper
add rsp, 0x238
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret