Function at 0x581de0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
movdqu xmm0, xmmword [0x006395e0]
mov rax, qword [rcx + 0x28]
mov r10, qword [rcx]
mov r12, qword [rcx + 0x50]
movups xmmword [rsp + 0x100], xmm0
movdqu xmm0, xmmword [0x006395f0]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 0x78]
movups xmmword [rsp + 0x110], xmm0
movdqu xmm0, xmmword [0x00639600]
mov qword [rsp + 0x210], rcx
movups xmmword [rsp + 0x120], xmm0
movdqu xmm0, xmmword [0x00639610]
mov qword [rsp + 0x78], rax
mov rax, qword [rcx + 0xa0]
movups xmmword [rsp + 0x130], xmm0
movdqu xmm0, xmmword [0x00639620]
movups xmmword [rsp + 0x140], xmm0
movdqu xmm0, xmmword [0x00639630]
movups xmmword [rsp + 0x150], xmm0
movdqu xmm0, xmmword [0x00639640]
movups xmmword [rsp + 0x160], xmm0
movdqu xmm0, xmmword [0x00639650]
movups xmmword [rsp + 0x170], xmm0
movdqu xmm0, xmmword [0x00639660]
movups xmmword [rsp + 0x180], xmm0
movdqu xmm0, xmmword [0x00639670]
movups xmmword [rsp + 0x190], xmm0
movdqu xmm0, xmmword [0x00639680]
movups xmmword [rsp + 0x1a0], xmm0
movdqu xmm0, xmmword [0x00639690]
movups xmmword [rsp + 0x1b0], xmm0
mov qword [rsp + 0x88], rax
mov rax, qword [rcx + 8]
mov rbp, qword [rcx + 0x80]
mov qword [rsp + 0x10], rax
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x38], rax
mov rax, qword [rcx + 0x58]
mov qword [rsp + 0x58], rax
mov rax, qword [rcx + 0xa8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x60]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x210]
mov rdi, qword [rcx + 0x88]
mov rcx, qword [rcx + 0xb0]
mov r11, rdi
mov qword [rsp + 0x90], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x68]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rsp + 0x210]
mov r13, qword [rcx + 0x90]
mov rsi, qword [rcx + 0xb8]
mov rcx, qword [rcx + 0x20]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x70]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x210]
mov rcx, qword [rcx + 0x98]
mov qword [rsp + 0x80], rcx
mov rcx, qword [rsp + 0x210]
mov r15, qword [rcx + 0xc0]
lea rcx, [rsp + 0x100]
mov qword [rsp + 0xa0], rcx
lea rcx, [rsp + 0x1c0]
mov qword [rsp + 0xf8], rcx
mov rcx, r10
mov r14, r15
mov r15, rax
nop dword [rax + rax]
mov rax, qword [rsp + 0x18]
xor rax, qword [rsp + 0x40]
xor rax, qword [rsp + 0x60]
mov r9, qword [rsp + 0x10]
xor r9, qword [rsp + 0x38]
xor r9, qword [rsp + 0x58]
xor rax, r11
xor rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x20]
xor rdx, qword [rsp + 0x48]
xor rdx, qword [rsp + 0x68]
xor r9, rbp
mov rbx, rax
mov rdi, qword [rsp + 0x30]
xor r9, r15
mov rax, qword [rsp + 0x28]
xor rax, qword [rsp + 0x50]
xor rax, qword [rsp + 0x70]
xor rdx, r13
xor rax, qword [rsp + 0x80]
mov r10, rdx
mov rdx, r9
rol rdx, 1
xor rdi, rcx
mov r8, rdx
xor rdi, r12
xor rdi, qword [rsp + 0x78]
xor r10, rsi
xor rdi, qword [rsp + 0x88]
mov rdx, r10
xor rax, r14
rol rdx, 1
xor r8, rax
xor r9, rdx
rol rax, 1
xor rcx, r8
xor rax, rbx
mov qword [rsp + 8], rcx
mov rcx, rbx
mov rbx, qword [rsp + 0x40]
rol rcx, 1
xor rcx, rdi
rol rdi, 1
mov rdx, rdi
xor rdx, r10
mov r10, qword [rsp + 0x10]
xor r10, rcx
rol r10, 1
xor rbx, r9
xor r11, r9
rol rbx, 6
rol r11, 0xf
xor r13, rax
mov qword [rsp + 0xa8], rbx
mov rbx, qword [rsp + 0x58]
xor rsi, rax
xor r12, r8
mov qword [rsp + 0xb8], r11
mov r11, qword [rsp + 0x20]
xor rbp, rcx
xor r14, rdx
rol r12, 3
rol r13, 0x15
ror rbp, 0x13
rol r14, 0xe
xor rbx, rcx
ror rsi, 8
mov rdi, rbx
xor r11, rax
rol rdi, 0xa
rol r11, 0x1c
mov qword [rsp + 0xb0], rdi
mov rdi, qword [rsp + 0x30]
xor rdi, r8
mov rbx, rdi
mov rdi, qword [rsp + 0x48]
ror rbx, 0x1c
mov qword [rsp + 0xc0], rbx
xor rdi, rax
mov rbx, rdi
mov rdi, r15
xor rdi, rcx
ror rbx, 9
mov r15, rdi
mov qword [rsp + 0xc8], rbx
rol r15, 2
mov qword [rsp + 0xd0], r15
mov r15, qword [rsp + 0x28]
xor r15, rdx
rol r15, 0x1b
mov qword [rsp + 0xd8], r15
mov rbx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0xe8], rsi
xor rax, qword [rsp + 0x68]
xor rbx, r8
ror rbx, 0x17
xor rdi, rdx
mov qword [rsp + 0xe0], rbx
mov rbx, qword [rsp + 0x60]
rol rdi, 8
rol rax, 0x19
xor rcx, qword [rsp + 0x38]
xor r8, qword [rsp + 0x88]
xor rbx, r9
mov r15, rbx
ror rcx, 0x14
mov rbx, qword [rsp + 0x70]
ror r15, 0x15
rol r8, 0x12
mov rsi, r15
mov r15, qword [rsp + 0x18]
mov qword [rsp + 0x98], rsi
xor rbx, rdx
xor rdx, qword [rsp + 0x50]
ror rbx, 0x19
xor r15, r9
xor r9, qword [rsp + 0x90]
ror r15, 2
mov qword [rsp + 0xf0], r15
mov r15, rsi
rol rdx, 0x14
mov rsi, qword [rsp + 0x98]
not r15
and r15, r13
ror r9, 3
xor r15, rcx
mov qword [rsp + 0x10], r15
mov r15, r13
not r15
and r15, r14
xor rsi, r15
mov r15, qword [rsp + 8]
mov qword [rsp + 0x18], rsi
mov rsi, r14
not rsi
and r15, rsi
mov rsi, r15
xor rsi, r13
mov r13, qword [rsp + 8]
mov qword [rsp + 0x20], rsi
not r13
and r13, rcx
not rcx
mov rsi, r13
xor rsi, r14
mov r14, qword [rsp + 0xa8]
mov qword [rsp + 0x28], rsi
mov rsi, rdx
not rsi
mov r13, rsi
and r13, r12
mov rsi, r13
xor rsi, r11
mov qword [rsp + 0x30], rsi
mov rsi, r12
not rsi
mov r13, rsi
and r13, rbp
mov rsi, r13
xor rsi, rdx
mov qword [rsp + 0x38], rsi
mov rsi, rbp
not rsi
mov r13, rsi
and r13, r9
mov rsi, r13
xor rsi, r12
mov r12, r9
not r12
mov qword [rsp + 0x40], rsi
and r12, r11
not r11
and r11, rdx
xor r12, rbp
mov rsi, r11
mov qword [rsp + 0x48], r12
mov r12, r14
xor rsi, r9
not r12
mov qword [rsp + 0x50], rsi
mov rsi, rax
and r12, rax
not rsi
xor r12, r10
mov rdx, rsi
and rdx, rdi
mov rsi, rdx
xor rsi, r14
mov qword [rsp + 0x58], rsi
mov rsi, rdi
not rsi
mov rdx, rsi
and rdx, r8
mov rsi, rdx
xor rsi, rax
mov qword [rsp + 0x60], rsi
mov rsi, r8
not rsi
mov rax, rsi
and rax, r10
not r10
mov rsi, rax
and r10, r14
xor rsi, rdi
mov qword [rsp + 0x68], rsi
mov rsi, r10
mov r10, qword [rsp + 0xc0]
xor rsi, r8
mov qword [rsp + 0x70], rsi
mov rdi, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xd8]
mov rax, r10
mov rdx, qword [rsp + 0xb8]
not rax
mov r14, qword [rsp + 0xf0]
and rax, rdi
mov rbp, rdi
and rcx, qword [rsp + 0x98]
mov rsi, rax
not rbp
xor rsi, r8
mov r11, rdx
and rbp, rdx
mov qword [rsp + 0x78], rsi
mov rsi, qword [rsp + 0xe8]
not r11
xor rbp, r10
and r11, rsi
mov rax, rsi
not rsi
mov r13, rsi
xor r11, rdi
and r13, r8
not r8
mov rdi, r8
xor r13, rdx
mov rdx, qword [rsp + 0xe0]
and rdi, r10
mov rsi, rdi
mov rdi, qword [rsp + 0xd0]
xor rsi, rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x80], rsi
mov rsi, rbx
mov r9, rdx
not rsi
not r9
mov r15, rsi
mov rsi, rdi
and r9, rdi
mov r8, rax
not rsi
and r15, rdx
not r8
and rsi, r14
xor r15, rax
and r8, rbx
xor r9, rbx
xor rsi, rdx
mov rbx, qword [rsp + 8]
xor r8, r14
not r14
mov qword [rsp + 0x90], r9
and r14, rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x88], r8
xor r14, rdi
xor rbx, qword [rax]
add rax, 8
mov qword [rsp + 0xa0], rax
xor rcx, rbx
cmp rax, qword [rsp + 0xf8]
jne 0x582020
mov rax, qword [rsp + 0x210]
mov r10, rcx
movq xmm0, r10
pinsrq xmm0, qword [rsp + 0x10], 1
movups xmmword [rax], xmm0
movq xmm0, qword [rsp + 0x18]
pinsrq xmm0, qword [rsp + 0x20], 1
movups xmmword [rax + 0x10], xmm0
movq xmm0, qword [rsp + 0x28]
pinsrq xmm0, qword [rsp + 0x30], 1
movups xmmword [rax + 0x20], xmm0
movq xmm0, qword [rsp + 0x38]
pinsrq xmm0, qword [rsp + 0x40], 1
movups xmmword [rax + 0x30], xmm0
movq xmm0, qword [rsp + 0x48]
pinsrq xmm0, qword [rsp + 0x50], 1
movups xmmword [rax + 0x40], xmm0
movq xmm0, r12
pinsrq xmm0, qword [rsp + 0x58], 1
movups xmmword [rax + 0x50], xmm0
movq xmm0, qword [rsp + 0x60]
pinsrq xmm0, qword [rsp + 0x68], 1
movups xmmword [rax + 0x60], xmm0
movq xmm0, qword [rsp + 0x70]
pinsrq xmm0, qword [rsp + 0x78], 1
movups xmmword [rax + 0x70], xmm0
movq xmm0, rbp
pinsrq xmm0, r11, 1
movups xmmword [rax + 0x80], xmm0
movq xmm0, r13
pinsrq xmm0, qword [rsp + 0x80], 1
movups xmmword [rax + 0x90], xmm0
movq xmm0, r8
pinsrq xmm0, r15, 1
movups xmmword [rax + 0xa0], xmm0
movq xmm0, r9
pinsrq xmm0, rsi, 1
mov qword [rax + 0xc0], r14
movups xmmword [rax + 0xb0], xmm0
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret