Function at 0x51b320
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
vmovdqu ymm0, ymmword [0x005ebce0]
mov rax, qword [rcx + 0x28]
mov r10, qword [rcx]
mov rdi, qword [rcx + 0x58]
mov r12, qword [rcx + 0x50]
vextractf128 xmmword [rsp + 0x100], ymm0, 1
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x78]
vmovups xmmword [rsp + 0xf0], xmm0
vmovdqu ymm0, ymmword [0x005ebd00]
mov qword [rsp + 0x200], rcx
mov r11, rdi
vmovups xmmword [rsp + 0x110], xmm0
vextractf128 xmmword [rsp + 0x120], ymm0, 1
vmovdqu ymm0, ymmword [0x005ebd20]
mov qword [rsp + 0x68], rax
mov rax, qword [rcx + 0xa0]
vmovups xmmword [rsp + 0x130], xmm0
vextractf128 xmmword [rsp + 0x140], ymm0, 1
vmovdqu ymm0, ymmword [0x005ebd40]
vmovups xmmword [rsp + 0x150], xmm0
vextractf128 xmmword [rsp + 0x160], ymm0, 1
vmovdqu ymm0, ymmword [0x005ebd60]
mov qword [rsp + 0x80], rax
mov rax, qword [rcx + 8]
vmovups xmmword [rsp + 0x170], xmm0
vextractf128 xmmword [rsp + 0x180], ymm0, 1
vmovdqu ymm0, ymmword [0x005ebd80]
vmovups xmmword [rsp + 0x190], xmm0
vextractf128 xmmword [rsp + 0x1a0], ymm0, 1
mov qword [rsp + 8], rax
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x30], rax
mov rbp, qword [rcx + 0x80]
mov rax, qword [rcx + 0xa8]
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x10], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x60]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x88]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0xb0]
mov qword [rsp + 0x88], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x40]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x68]
mov qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0x200]
mov r13, qword [rcx + 0x90]
mov rsi, qword [rcx + 0xb8]
mov rcx, qword [rcx + 0x20]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x70]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x200]
mov rcx, qword [rcx + 0x98]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rsp + 0x200]
mov r15, qword [rcx + 0xc0]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x98], rcx
lea rcx, [rsp + 0x1b0]
mov qword [rsp + 0xe8], rcx
mov rcx, r10
mov r14, r15
mov r15, rax
nop dword [rax + rax]
mov r9, qword [rsp + 8]
xor r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x10]
xor rax, qword [rsp + 0x38]
xor rax, qword [rsp + 0x50]
xor rax, qword [rsp + 0x70]
xor r9, r11
xor rax, qword [rsp + 0x88]
xor r9, rbp
mov rdx, qword [rsp + 0x18]
xor r9, r15
xor rdx, qword [rsp + 0x40]
xor rdx, qword [rsp + 0x58]
mov rbx, rax
mov rdi, qword [rsp + 0x28]
mov rax, qword [rsp + 0x20]
xor rax, qword [rsp + 0x48]
xor rax, qword [rsp + 0x60]
xor rdx, r13
xor rax, qword [rsp + 0x78]
mov r10, rdx
mov rdx, r9
rol rdx, 1
xor rdi, rcx
mov r8, rdx
xor rdi, r12
xor rdi, qword [rsp + 0x68]
xor r10, rsi
xor rdi, qword [rsp + 0x80]
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], rcx
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
rol rcx, 1
xor rcx, rdi
rol rdi, 1
mov rdx, rdi
mov rdi, qword [rsp + 0x28]
xor rdx, r10
mov r10, qword [rsp + 8]
xor r10, rcx
rol r10, 1
xor r11, rcx
xor rbx, r9
rol r11, 0xa
xor rdi, r8
rol rbx, 6
ror rdi, 0x1c
mov qword [rsp + 0xa8], r11
mov r11, qword [rsp + 0x70]
xor r13, rax
mov qword [rsp + 0xa0], rbx
mov rbx, qword [rsp + 0x18]
xor rsi, rax
xor r12, r8
mov qword [rsp + 0xb0], rdi
mov rdi, qword [rsp + 0x40]
xor rbp, rcx
xor r14, rdx
rol r12, 3
rol r13, 0x15
ror rbp, 0x13
xor r11, r9
rol r14, 0xe
rol r11, 0xf
xor rbx, rax
ror rsi, 8
xor rdi, rax
mov qword [rsp + 0x70], r11
mov r11, rbx
mov rbx, rdi
mov rdi, r15
rol r11, 0x1c
ror rbx, 9
xor rdi, rcx
mov qword [rsp + 0xb8], rbx
mov rbx, qword [rsp + 0x20]
mov r15, rdi
rol r15, 2
mov qword [rsp + 0xc0], r15
xor rbx, rdx
mov r15, rbx
rol r15, 0x1b
mov qword [rsp + 0xc8], r15
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0xd8], rsi
xor rax, qword [rsp + 0x58]
mov r15, qword [rsp + 0x10]
xor rbx, r8
ror rbx, 0x17
xor rdi, rdx
mov qword [rsp + 0xd0], rbx
mov rbx, qword [rsp + 0x50]
rol rdi, 8
rol rax, 0x19
xor rcx, qword [rsp + 0x30]
xor r15, r9
ror r15, 2
xor r8, qword [rsp + 0x80]
mov qword [rsp + 0xe0], r15
xor rbx, r9
xor r9, qword [rsp + 0x88]
ror rbx, 0x15
ror rcx, 0x14
mov rsi, rbx
mov rbx, qword [rsp + 0x60]
rol r8, 0x12
mov r15, rsi
mov qword [rsp + 0x90], rsi
mov rsi, qword [rsp + 0x90]
not r15
ror r9, 3
and r15, r13
xor r15, rcx
xor rbx, rdx
xor rdx, qword [rsp + 0x48]
mov qword [rsp + 8], r15
mov r15, r13
ror rbx, 0x19
not r15
and r15, r14
xor rsi, r15
mov r15, qword [rsp]
rol rdx, 0x14
mov qword [rsp + 0x10], rsi
mov rsi, r14
not rsi
and r15, rsi
mov rsi, r15
xor rsi, r13
mov r13, qword [rsp]
mov qword [rsp + 0x18], rsi
not r13
and r13, rcx
not rcx
mov rsi, r13
xor rsi, r14
mov r14, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rsi
mov rsi, rdx
not rsi
mov r13, rsi
and r13, r12
mov rsi, r13
xor rsi, r11
mov qword [rsp + 0x28], rsi
mov rsi, r12
not rsi
mov r13, rsi
and r13, rbp
mov rsi, r13
xor rsi, rdx
mov qword [rsp + 0x30], 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 + 0x38], rsi
and r12, r11
not r11
and r11, rdx
xor r12, rbp
mov rsi, r11
mov qword [rsp + 0x40], r12
mov r12, r14
xor rsi, r9
not r12
mov qword [rsp + 0x48], 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 r11, rsi
mov rsi, rdi
not rsi
mov rdx, rsi
and rdx, r8
mov rsi, rdx
xor rsi, rax
mov qword [rsp + 0x50], rsi
mov rsi, r8
not rsi
mov rax, rsi
and rax, r10
not r10
mov rsi, rax
and r10, r14
xor rsi, rdi
mov rdi, qword [rsp + 0xa8]
mov qword [rsp + 0x58], rsi
mov rsi, r10
mov r10, qword [rsp + 0xb0]
xor rsi, r8
mov qword [rsp + 0x60], rsi
mov r8, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x70]
mov rbp, rdi
mov rax, r10
mov r9, qword [rsp + 0xd8]
not rbp
not rax
mov r14, qword [rsp + 0xe0]
and rax, rdi
and rcx, qword [rsp + 0x90]
mov rsi, rax
mov rax, rdx
not rax
xor rsi, r8
and rbp, rdx
and rax, r9
mov qword [rsp + 0x68], rsi
xor rbp, r10
mov rsi, rax
mov rax, qword [rsp + 0xb8]
xor rsi, rdi
mov qword [rsp + 0x70], rsi
mov rsi, r9
not rsi
mov r13, rsi
and r13, r8
not r8
mov rdi, r8
xor r13, rdx
mov rdx, qword [rsp + 0xd0]
mov r8, rax
and rdi, r10
not r8
mov rsi, rdi
mov rdi, qword [rsp + 0xc0]
and r8, rbx
xor rsi, r9
xor r8, r14
mov qword [rsp + 0x78], rsi
mov rsi, rbx
mov r9, rdx
not rsi
not r9
mov qword [rsp + 0x80], r8
mov r15, rsi
mov rsi, rdi
and r9, rdi
not rsi
and r15, rdx
xor r9, rbx
mov rbx, qword [rsp]
and rsi, r14
not r14
xor r15, rax
mov qword [rsp + 0x88], r9
and r14, rax
mov rax, qword [rsp + 0x98]
xor rsi, rdx
xor r14, rdi
xor rbx, qword [rax]
add rax, 8
mov qword [rsp + 0x98], rax
xor rcx, rbx
cmp rax, qword [rsp + 0xe8]
jne 0x51b550
mov rax, qword [rsp + 0x200]
mov r10, rcx
vmovq xmm2, qword [rsp + 0x10]
vpinsrq xmm1, xmm2, qword [rsp + 0x18], 1
vmovq xmm2, r12
vmovq xmm3, r10
vmovq xmm4, qword [rsp + 0x30]
vpinsrq xmm0, xmm3, qword [rsp + 8], 1
vinsertf128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, qword [rsp + 0x38], 1
vmovq xmm5, qword [rsp + 0x20]
vmovq xmm3, qword [rsp + 0x40]
vmovups xmmword [rax], xmm0
vextractf128 xmmword [rax + 0x10], ymm0, 1
vpinsrq xmm0, xmm5, qword [rsp + 0x28], 1
vmovq xmm4, qword [rsp + 0x60]
vinsertf128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm2, r11, 1
vmovups xmmword [rax + 0x20], xmm0
vmovq xmm5, qword [rsp + 0x50]
vmovq xmm2, r13
vextractf128 xmmword [rax + 0x30], ymm0, 1
vpinsrq xmm0, xmm3, qword [rsp + 0x48], 1
vmovq xmm3, rbp
vinsertf128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, qword [rsp + 0x68], 1
vmovups xmmword [rax + 0x40], xmm0
vmovq xmm4, r9
vextractf128 xmmword [rax + 0x50], ymm0, 1
vpinsrq xmm0, xmm5, qword [rsp + 0x58], 1
vmovq xmm5, r8
vinsertf128 ymm0, ymm0, xmm1, 1
mov qword [rax + 0xc0], r14
vpinsrq xmm1, xmm2, qword [rsp + 0x78], 1
vextractf128 xmmword [rax + 0x70], ymm0, 1
vmovups xmmword [rax + 0x60], xmm0
vpinsrq xmm0, xmm3, qword [rsp + 0x70], 1
vinsertf128 ymm0, ymm0, xmm1, 1
vpinsrq xmm1, xmm4, rsi, 1
vmovups xmmword [rax + 0x80], xmm0
vextractf128 xmmword [rax + 0x90], ymm0, 1
vpinsrq xmm0, xmm5, r15, 1
vinsertf128 ymm0, ymm0, xmm1, 1
vmovups xmmword [rax + 0xa0], xmm0
vextractf128 xmmword [rax + 0xb0], ymm0, 1
vzeroupper
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret