Function at 0x5b8718
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm7
movdqa xmmword [rsp + 0x70], xmm6
mov r12, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
xor eax, eax
mov qword [rcx + 0x60], rax
movups xmmword [rcx + 0x50], xmm0
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x30], xmm0
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x68], xmm0
movups xmmword [rcx + 0x78], xmm0
movups xmmword [rcx + 0x88], xmm0
movups xmmword [rcx + 0x98], xmm0
movups xmmword [rcx + 0xa8], xmm0
movups xmmword [rcx + 0xb8], xmm0
mov qword [rcx + 0xc8], rax
movaps xmm0, xmmword [0x00635dd0]
movups xmmword [rcx + 0x70], xmm0
movdqa xmm0, xmmword [0x00635de0]
movdqu xmmword [rcx + 0x80], xmm0
movabs rsi, 0x5be0cd191f83d9ab
test r8, r8
jle 0x5b8a00
mov r15, r8
mov r13, rdx
cmp r8, 0x41
jl 0x5b8923
lea rax, [r12 + 8]
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [0x00635df0]
movups xmmword [r12], xmm0
movdqa xmm0, xmmword [0x00635e00]
movdqu xmmword [r12 + 0x10], xmm0
mov qword [r12 + 0x20], rsi
movabs rax, 0x86c054156ce2179c
mov rsi, rax
not rsi
add rsi, r15
add rsi, rax
lea rax, [r12 + 0x28]
mov qword [rsp + 0x20], rax
xor ebx, ebx
xor ebp, ebp
mov rdi, r15
and ebx, 0x3f
mov r14d, 0x40
sub r14, rbx
cmp r14, rdi
cmovg r14, rdi
test rbp, rbp
js 0x5b884e
cmp rbp, r15
jge 0x5b884e
mov al, 1
test al, al
jne 0x5b8859
mov rcx, rbp
mov rdx, rsi
call fcn.005482d0
lea rcx, [r12 + rbx]
add rcx, 0x28
mov rdx, r13
add rdx, rbp
mov r8, r14
call fcn.005f4c20
add rbp, r14
jno 0x5b8879
call fcn.005463cd
mov eax, dword [r12]
add eax, r14d
mov dword [r12], eax
cmp eax, r14d
jae 0x5b888e
inc dword [r12 + 4]
sub rdi, r14
not eax
or eax, 0xffffffc0
cmp eax, 0xffffffff
jne 0x5b88b0
mov r8d, 0x40
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
call fcn.005b1a58
mov ebx, dword [r12]
test rdi, rdi
jg 0x5b882b
and ebx, 0x3f
mov byte [r12 + rbx + 0x28], pe_nt_image_headers64
inc rbx
movabs r14, 0x5be0cd191f83d9ab
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
cmp rbx, 0x40
je 0x5b88fe
cmp rbx, 0x38
je 0x5b8938
cmp rbx, 0x40
jb 0x5b8911
mov edx, 0x3f
mov rcx, rbx
call fcn.005482d0
jmp 0x5b8911
mov r8d, 0x40
mov rcx, rdi
mov rdx, rsi
call fcn.005b1a58
xor ebx, ebx
mov byte [r12 + rbx + 0x28], 0
inc rbx
jno 0x5b88dd
call fcn.005463cd
jmp 0x5b88dd
lea rcx, [rsp + 0x30]
mov rdx, r13
mov r8, r15
call fcn.005f4c20
jmp 0x5b8a00
mov eax, dword [r12]
mov ecx, dword [r12 + 4]
shl ecx, 3
mov edx, eax
shr edx, 0x1d
mov ebp, edx
not ebp
mov ebx, ecx
not ebx
mov r8d, 0x6cb35c84
and ebp, r8d
and edx, 3
or edx, ebp
and ebx, r8d
and ecx, 0x934ca378
or ecx, ebx
xor ecx, edx
mov dword [r12 + 4], ecx
shl eax, 3
mov dword [r12], eax
bswap ecx
mov dword [r12 + 0x60], ecx
bswap eax
mov dword [r12 + 0x64], eax
mov r8d, 0x40
mov rcx, rdi
mov rdx, rsi
call fcn.005b1a58
movdqu xmm0, xmmword [r12 + 8]
pxor xmm1, xmm1
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm2
movdqa xmmword [rsp + 0x30], xmm0
movdqu xmm0, xmmword [r12 + 0x18]
movdqa xmm2, xmm0
punpckhbw xmm2, xmm1
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm2
movdqa xmmword [rsp + 0x40], xmm0
mov rsi, r14
lea r13, [r12 + 0x68]
lea r14, [r12 + 0x70]
xor eax, eax
movdqa xmm0, xmmword [0x00635e10]
movdqa xmm1, xmmword [0x00635e20]
movdqa xmm2, xmmword [0x00635e30]
movdqa xmm3, xmmword [0x00635e40]
movdqa xmm4, xmmword [0x00635e50]
movdqa xmm5, xmmword [rsp + rax + 0x30]
movdqa xmm6, xmm5
pandn xmm6, xmm0
movdqa xmm7, xmm5
pand xmm7, xmm1
por xmm7, xmm6
pxor xmm7, xmm2
movdqu xmmword [r12 + rax + 0x110], xmm7
movdqa xmm6, xmm5
pandn xmm6, xmm3
pand xmm5, xmm4
por xmm5, xmm6
movdqu xmmword [r12 + rax + 0xd0], xmm5
add rax, 0x10
cmp rax, 0x40
jne 0x5b8a34
movaps xmm0, xmmword [0x00635df0]
movups xmmword [r12], xmm0
movaps xmm0, xmmword [0x00635e00]
movups xmmword [r12 + 0x10], xmm0
mov qword [r12 + 0x20], rsi
movdqu xmm0, xmmword [r12 + 0xd0]
movdqu xmm1, xmmword [r12 + 0xe0]
movdqu xmm2, xmmword [r12 + 0xf0]
movdqu xmm3, xmmword [r12 + 0x100]
movdqu xmmword [r12 + 0x28], xmm0
movdqu xmmword [r12 + 0x38], xmm1
movdqu xmmword [r12 + 0x48], xmm2
movdqu xmmword [r12 + 0x58], xmm3
mov ecx, dword [r12]
lea eax, [rcx + 0x40]
mov dword [r12], eax
cmp ecx, 0xffffffc0
jb 0x5b8af7
inc dword [r12 + 4]
not eax
or eax, 0xffffffc0
cmp eax, 0xffffffff
jne 0x5b8b16
lea rcx, [r12 + 8]
lea rdx, [r12 + 0x28]
mov r8d, 0x40
call fcn.005b1a58
lea r15, [r12 + 0x90]
mov esi, 0x40
xor ebp, ebp
mov eax, dword [r13]
mov ebx, eax
xor ebx, 0xffffffc0
and ebx, eax
mov edi, 0x40
sub rdi, rbx
cmp rdi, rsi
cmovg rdi, rsi
cmp rbp, 0x40
jb 0x5b8b52
mov edx, 0x3f
mov rcx, rbp
call fcn.005482d0
lea rcx, [r12 + rbx]
add rcx, 0x90
lea rdx, [r12 + rbp]
add rdx, 0x110
mov r8, rdi
call fcn.005f4c20
add rbp, rdi
jno 0x5b8b7a
call fcn.005463cd
mov eax, dword [r13]
add eax, edi
mov dword [r13], eax
cmp eax, edi
jae 0x5b8b8d
inc dword [r12 + 0x6c]
sub rsi, rdi
mov ecx, eax
xor ecx, 0xffffffc0
test ecx, eax
jne 0x5b8baa
mov r8d, 0x40
mov rcx, r14
mov rdx, r15
call fcn.005b1a58
test rsi, rsi
jg 0x5b8b25
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret