Function at 0x5f7770
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 ymm1, ymmword [0x00704740]
mov r13d, 0x10
mov eax, dword [rcx]
vmovdqu xmm5, xmmword [rdx]
vinserti128 ymm0, ymm5, xmmword [rdx + 0x10], 1
vmovdqu xmm3, xmmword [rdx + 0x20]
vpshufb ymm0, ymm0, ymm1
mov dword [rsp], eax
mov eax, dword [rcx + 4]
vextracti128 xmmword [rsp + 0x130], ymm0, 1
lea r9, [rsp + 0x12c]
mov qword [rsp + 0x280], rcx
mov r11d, dword [rsp + 0x13c]
mov dword [rsp + 4], eax
mov eax, dword [rcx + 8]
vmovups xmmword [rsp + 0x120], xmm0
vinserti128 ymm0, ymm3, xmmword [rdx + 0x30], 1
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0xc]
vpshufb ymm0, ymm0, ymm1
vextracti128 xmmword [rsp + 0x150], ymm0, 1
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x10]
vmovups xmmword [rsp + 0x140], xmm0
mov r8d, dword [rsp + 0x154]
mov edx, dword [rsp + 0x15c]
mov dword [rsp + 0x10], eax
mov eax, dword [rcx + 0x14]
mov ebx, dword [rsp + 0x140]
mov esi, dword [rsp + 0x144]
mov dword [rsp + 0x14], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x18], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x1c], eax
mov eax, dword [rsp + 0x158]
mov edi, dword [rsp + 0x120]
mov ebp, dword [rsp + 0x124]
mov r12d, dword [rsp + 0x128]
xor edi, r11d
rol r8d, 0xf
mov r11d, dword [r9 + 0x1c]
xor ebx, ebp
xor edi, r8d
rol eax, 0xf
mov ebp, dword [r9 + 4]
xor esi, r12d
mov ecx, edi
mov edi, dword [r9]
xor ebx, eax
rol edx, 0xf
mov r8d, ecx
mov r10d, ecx
mov r12d, dword [r9 + 8]
add r13d, 3
ror r10d, 9
rol r8d, 0xf
add r9, 0xc
xor r8d, r10d
xor r8d, ecx
mov ecx, edi
rol ecx, 7
xor r8d, r11d
xor r8d, ecx
mov ecx, ebx
mov ebx, dword [r9 + 0x14]
mov eax, ecx
mov r10d, ecx
mov dword [r9 + 0x28], r8d
ror r10d, 9
rol eax, 0xf
xor eax, r10d
xor eax, ecx
mov ecx, ebp
rol ecx, 7
xor eax, ebx
xor eax, ecx
mov ecx, edx
xor ecx, esi
mov esi, dword [r9 + 0x18]
mov dword [r9 + 0x2c], eax
mov edx, ecx
mov r10d, ecx
ror edx, 9
rol r10d, 0xf
xor edx, r10d
xor edx, ecx
mov ecx, r12d
xor edx, esi
rol ecx, 7
xor edx, ecx
mov dword [r9 + 0x30], edx
cmp r13d, 0x43
jne 0x5f7862
vmovdqu xmm5, xmmword [rsp + 0x120]
mov eax, dword [rsp + 0x220]
lea rbp, [rsp + 0x20]
lea r15, [rsp + 0x120]
vmovdqu xmm3, xmmword [rsp + 0x130]
mov edx, dword [rsp + 0x1ec]
vinserti128 ymm1, ymm5, xmmword [rsp + 0x130], 1
xor edx, dword [rsp + 0x208]
rol eax, 0xf
vinserti128 ymm0, ymm3, xmmword [rsp + 0x140], 1
xor edx, eax
vmovdqu xmm2, xmmword [rsp + 0x150]
vmovdqu xmm4, xmmword [rsp + 0x140]
mov eax, dword [rsp + 0x1f8]
mov ecx, edx
vmovdqu xmm5, xmmword [rsp + 0x170]
vpxor ymm0, ymm0, ymm1
rol ecx, 0xf
vinserti128 ymm1, ymm2, xmmword [rsp + 0x160], 1
vmovdqu xmm3, xmmword [rsp + 0x160]
vmovups xmmword [rsp + 0x20], xmm0
vextracti128 xmmword [rsp + 0x30], ymm0, 1
vinserti128 ymm0, ymm4, xmm2, 1
vmovdqu xmm2, xmmword [rsp + 0x190]
vpxor ymm0, ymm0, ymm1
rol eax, 7
vinserti128 ymm1, ymm5, xmmword [rsp + 0x180], 1
vmovdqu xmm4, xmmword [rsp + 0x180]
vmovups xmmword [rsp + 0x40], xmm0
vextracti128 xmmword [rsp + 0x50], ymm0, 1
vinserti128 ymm0, ymm3, xmm5, 1
vpxor ymm0, ymm0, ymm1
xor eax, dword [rsp + 0x214]
vinserti128 ymm1, ymm2, xmmword [rsp + 0x1a0], 1
vmovups xmmword [rsp + 0x60], xmm0
vextracti128 xmmword [rsp + 0x70], ymm0, 1
vinserti128 ymm0, ymm4, xmm2, 1
xor eax, edx
vmovdqu xmm5, xmmword [rsp + 0x1b0]
vpxor ymm0, ymm0, ymm1
xor eax, ecx
ror edx, 9
vmovdqu xmm3, xmmword [rsp + 0x1a0]
xor eax, edx
xor ecx, ecx
vinserti128 ymm1, ymm5, xmmword [rsp + 0x1c0], 1
vmovups xmmword [rsp + 0x80], xmm0
vextracti128 xmmword [rsp + 0x90], ymm0, 1
vinserti128 ymm0, ymm3, xmm5, 1
mov dword [rsp + 0x22c], eax
vpxor ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0xa0], xmm0
vextracti128 xmmword [rsp + 0xb0], ymm0, 1
vmovdqu xmm2, xmmword [rsp + 0x1d0]
mov r10d, dword [rsp + 0x1c]
vmovdqu xmm4, xmmword [rsp + 0x1c0]
mov eax, dword [rsp + 0x18]
vinserti128 ymm1, ymm2, xmmword [rsp + 0x1e0], 1
mov r13d, dword [rsp + 0x14]
vinserti128 ymm0, ymm4, xmm2, 1
mov r11d, dword [rsp + 0x10]
mov r14d, dword [rsp + 0xc]
vpxor ymm0, ymm0, ymm1
mov edi, dword [rsp + 8]
vmovdqu xmm5, xmmword [rsp + 0x1f0]
vmovdqu xmm3, xmmword [rsp + 0x1e0]
mov r12d, dword [rsp + 4]
vmovups xmmword [rsp + 0xc0], xmm0
vextracti128 xmmword [rsp + 0xd0], ymm0, 1
vinserti128 ymm1, ymm5, xmmword [rsp + 0x200], 1
mov r8d, dword [rsp]
vmovdqu xmm2, xmmword [rsp + 0x210]
vinserti128 ymm0, ymm3, xmm5, 1
vmovdqu xmm4, xmmword [rsp + 0x200]
vpxor ymm0, ymm0, ymm1
vinserti128 ymm1, ymm2, xmmword [rsp + 0x220], 1
vmovups xmmword [rsp + 0xe0], xmm0
vextracti128 xmmword [rsp + 0xf0], ymm0, 1
vinserti128 ymm0, ymm4, xmm2, 1
vpxor ymm0, ymm0, ymm1
vmovups xmmword [rsp + 0x100], xmm0
vextracti128 xmmword [rsp + 0x110], ymm0, 1
jmp 0x5f7b5a
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 [rbp + rcx*4]
add r9d, ebx
mov ebx, r9d
mov r9d, r11d
xor r9d, r13d
rol ebx, 7
xor r9d, eax
add r9d, dword [r15 + rcx*4]
xor esi, ebx
add rcx, 1
add r9d, ebx
mov ebx, r12d
lea edx, [rdx + rsi]
mov esi, r13d
add r10d, r9d
add edx, r14d
rol ebx, 9
mov r14d, edi
mov r9d, r10d
mov r12d, r10d
ror esi, 0xd
mov r13d, r11d
ror r12d, 0xf
rol r9d, 9
xor r9d, r12d
mov r12d, r8d
xor r9d, r10d
mov r10d, eax
cmp rcx, 0x10
jne 0x5f7b50
mov r13d, edi
mov edi, eax
jmp 0x5f7bec
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 [rbp + rcx*4]
add eax, r10d
lea r10d, [rax + r14]
mov eax, r11d
mov r14d, r8d
ror r11d, 0xd
xor eax, esi
add r10d, r13d
and eax, r9d
xor eax, esi
add eax, dword [r15 + 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 0x5f7be0
vmovd xmm5, dword [rsp + 0x18]
vmovd xmm2, dword [rsp + 0x10]
vpinsrd xmm1, xmm5, dword [rsp + 0x1c], 1
vpinsrd xmm4, xmm2, dword [rsp + 0x14], 1
vmovd xmm3, dword [rsp + 8]
vmovd xmm5, dword [rsp]
vpinsrd xmm2, xmm3, dword [rsp + 0xc], 1
vpinsrd xmm0, xmm5, dword [rsp + 4], 1
vmovd xmm3, eax
vmovd xmm5, r14d
vpunpcklqdq xmm4, xmm4, xmm1
vpinsrd xmm1, xmm3, r9d, 1
mov rax, qword [rsp + 0x280]
vpunpcklqdq xmm0, xmm0, xmm2
vpinsrd xmm3, xmm5, ebx, 1
vmovd xmm2, r12d
vmovd xmm5, r10d
vinserti128 ymm4, ymm0, xmm4, 1
vpinsrd xmm2, xmm2, esi, 1
vpinsrd xmm0, xmm5, edx, 1
vpunpcklqdq xmm1, xmm1, xmm2
vpunpcklqdq xmm0, xmm0, xmm3
vinserti128 ymm0, ymm0, xmm1, 1
vpxor ymm0, ymm4, ymm0
vmovups xmmword [rax], xmm0
vextracti128 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