Function at 0x2580d0760
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0x20], xmm6
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x50], xmm9
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x80], xmm12
movaps xmmword [rsp + 0x90], xmm13
movaps xmmword [rsp + 0xa0], xmm14
mov rbx, rcx
mov rsi, rdx
test rcx, rcx
je 0x2580d0e8b
cmp qword [rcx + 8], 0
mov rdi, qword [rcx]
js 0x2580d0805
mov eax, 7
mov rcx, qword [0x258169100]
cmp rdi, rax
cmovl rdi, rax
lea rdx, [rdi + 0x11]
call fcn.2580e12b0
lea rdx, [rbx + 0x10]
mov qword [rax], 0
mov rbp, rax
lea rcx, [rax + 0x10]
mov qword [rax + 8], rdi
mov rdi, qword [rbx]
mov rbx, rbp
mov qword [rax], rdi
lea r8, [rdi + 1]
call sub.msvcrt.dll_memcpy
test rdi, rdi
jle 0x2580d0e3f
lea rax, [rdi - 1]
cmp rax, 0xe
jbe 0x2580d0e8f
lea rax, [rsi + 1]
movq xmm6, rsi
mov rdx, rdi
movdqa xmm4, xmmword [0x2580ef490]
movq xmm7, rax
and rdx, 0xfffffffffffffff0
mov rax, rbx
movdqa xmm3, xmmword [0x2580ef4a0]
punpcklqdq xmm6, xmm7
movdqa xmm5, xmmword [0x2580ef4b0]
movdqa xmm7, xmmword [0x2580ef480]
add rdx, rbx
nop dword [rax + rax]
movdqa xmm0, xmm6
add rax, 0x10
paddq xmm6, xmm7
movdqa xmm11, xmm0
paddq xmm11, xmm4
movdqa xmm10, xmm11
shufps xmm0, xmm11, 0x88
paddq xmm10, xmm4
movdqa xmm8, xmm10
paddq xmm8, xmm4
movdqa xmm1, xmm8
shufps xmm10, xmm8, 0x88
movdqa xmm8, xmm0
movdqa xmm13, xmm10
paddq xmm1, xmm4
psrad xmm13, 0x10
punpckhwd xmm8, xmm10
movdqa xmm2, xmm1
paddq xmm2, xmm4
movdqa xmm9, xmm2
shufps xmm1, xmm2, 0x88
movdqa xmm12, xmm1
paddq xmm9, xmm4
movdqa xmm2, xmm9
paddq xmm2, xmm4
shufps xmm9, xmm2, 0x88
movdqa xmm2, xmm0
punpcklwd xmm12, xmm9
punpcklwd xmm2, xmm10
psrad xmm10, 0x18
movdqa xmm11, xmm2
punpcklwd xmm2, xmm8
punpckhwd xmm11, xmm8
movdqa xmm8, xmm1
punpckhwd xmm8, xmm9
punpcklwd xmm2, xmm11
movdqa xmm11, xmm12
punpckhwd xmm11, xmm8
punpcklwd xmm12, xmm8
punpcklwd xmm12, xmm11
movdqa xmm11, xmm0
psrad xmm11, 0x10
psrad xmm0, 0x18
movdqa xmm8, xmm11
punpcklwd xmm11, xmm13
punpckhwd xmm8, xmm13
movdqa xmm13, xmm11
punpckhwd xmm13, xmm8
punpcklwd xmm11, xmm8
movdqa xmm8, xmm1
psrad xmm8, 0x10
psrad xmm1, 0x18
punpcklwd xmm11, xmm13
movdqa xmm13, xmm9
movdqa xmm14, xmm8
pand xmm11, xmm3
psrad xmm13, 0x10
psrad xmm9, 0x18
punpcklwd xmm8, xmm13
punpckhwd xmm14, xmm13
movdqa xmm13, xmm8
punpcklwd xmm8, xmm14
punpckhwd xmm13, xmm14
movdqu xmm14, xmmword [rax]
punpcklwd xmm8, xmm13
movdqa xmm13, xmm12
pand xmm12, xmm3
pand xmm8, xmm3
psraw xmm13, 8
packuswb xmm11, xmm8
movdqa xmm8, xmm2
pand xmm13, xmm3
psraw xmm8, 8
pand xmm2, xmm3
pand xmm8, xmm3
packuswb xmm2, xmm12
packuswb xmm8, xmm13
pand xmm2, xmm5
pxor xmm11, xmm8
movdqa xmm8, xmm0
punpcklwd xmm0, xmm10
punpckhwd xmm8, xmm10
movdqa xmm10, xmm0
pand xmm11, xmm5
punpckhwd xmm10, xmm8
punpcklwd xmm0, xmm8
movdqa xmm8, xmm1
punpcklwd xmm1, xmm9
punpckhwd xmm8, xmm9
punpcklwd xmm0, xmm10
movdqa xmm9, xmm1
punpcklwd xmm1, xmm8
pand xmm0, xmm3
punpckhwd xmm9, xmm8
pxor xmm2, xmm14
punpcklwd xmm1, xmm9
pxor xmm2, xmm11
pand xmm1, xmm3
packuswb xmm0, xmm1
pand xmm0, xmm5
pxor xmm2, xmm0
movups xmmword [rax], xmm2
cmp rdx, rax
jne 0x2580d0860
mov rax, rdi
and rax, 0xfffffffffffffff0
add rsi, rax
cmp rdi, rax
je 0x2580d0e3f
mov rcx, rsi
mov edx, esi
lea r8, [rax + 1]
sar rcx, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x10]
and ecx, 0xffffffee
xor edx, ecx
mov rcx, rsi
sar rcx, 0x10
and ecx, 0xffffffee
xor edx, ecx
mov rcx, rsi
sar rcx, 0x18
and ecx, 0xffffffee
xor edx, ecx
lea rcx, [rsi + 1]
mov byte [rbx + rax + 0x10], dl
cmp r8, rdi
jge 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 2]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x11]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 2]
mov byte [rbx + rax + 0x11], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 3]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x12]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 3]
mov byte [rbx + rax + 0x12], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 4]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x13]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 4]
mov byte [rbx + rax + 0x13], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 5]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x14]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 5]
mov byte [rbx + rax + 0x14], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 6]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x15]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 6]
mov byte [rbx + rax + 0x15], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 7]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x16]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 7]
mov byte [rbx + rax + 0x16], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 8]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x17]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 8]
mov byte [rbx + rax + 0x17], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 9]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x18]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 9]
mov byte [rbx + rax + 0x18], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 0xa]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x19]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 0xa]
mov byte [rbx + rax + 0x19], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 0xb]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x1a]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 0xb]
mov byte [rbx + rax + 0x1a], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 0xc]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x1b]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 0xc]
mov byte [rbx + rax + 0x1b], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
lea r8, [rax + 0xd]
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x1c]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
lea rcx, [rsi + 0xd]
mov byte [rbx + rax + 0x1c], dl
cmp rdi, r8
jle 0x2580d0e3f
mov r9, rcx
mov edx, ecx
add rsi, 0xe
sar r9, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x1d]
and r9d, 0xffffffee
xor edx, r9d
mov r9, rcx
sar rcx, 0x18
sar r9, 0x10
and ecx, 0xffffffee
and r9d, 0xffffffee
xor edx, r9d
xor edx, ecx
mov byte [rbx + rax + 0x1d], dl
add rax, 0xe
cmp rdi, rax
jle 0x2580d0e3f
mov rcx, rsi
mov edx, esi
sar rcx, 8
and edx, 0xffffffee
xor dl, byte [rbx + rax + 0x10]
and ecx, 0xffffffee
xor edx, ecx
mov rcx, rsi
sar rsi, 0x18
sar rcx, 0x10
and esi, 0xffffffee
and ecx, 0xffffffee
xor edx, ecx
xor edx, esi
mov byte [rbx + rax + 0x10], dl
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
movaps xmm14, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
ret
xor eax, eax
jmp 0x2580d0e42
xor eax, eax
jmp 0x2580d0a70