Function at 0x4f87e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x218
movups xmmword [rsp + 0x170], xmm6
movups xmmword [rsp + 0x180], xmm7
movups xmmword [rsp + 0x190], xmm8
movups xmmword [rsp + 0x1a0], xmm9
movups xmmword [rsp + 0x1b0], xmm10
movups xmmword [rsp + 0x1c0], xmm11
movups xmmword [rsp + 0x1d0], xmm12
movups xmmword [rsp + 0x1e0], xmm13
movups xmmword [rsp + 0x1f0], xmm14
movups xmmword [rsp + 0x200], xmm15
movdqu xmm6, xmmword [0x0061f960]
movdqu xmm8, xmmword [0x0061f970]
movdqu xmm7, xmmword [0x0061f980]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmm0, xmm6
pandn xmm0, xmmword [rcx]
movdqu xmm3, xmm6
movdqu xmm4, xmmword [rcx]
movdqu xmm2, xmmword [rcx + 0x30]
movdqu xmm5, xmm8
movdqu xmm14, xmm6
pand xmm1, xmm6
pandn xmm3, xmmword [rcx + 0x30]
movdqu xmm11, xmmword [rcx + 0xb0]
por xmm1, xmm0
movdqu xmm0, xmm6
pandn xmm0, xmmword [rcx + 0x10]
pand xmm4, xmm6
pand xmm2, xmm6
pand xmm11, xmm6
mov r11, rdx
por xmm4, xmm0
movdqu xmm0, xmm6
pandn xmm0, xmmword [rcx + 0x20]
mov edx, r8d
shl edx, 5
mov rax, rcx
lea r10, [rcx + 0x80]
mov r13d, r8d
por xmm2, xmm0
movdqu xmm0, xmmword [rcx + 0x20]
lea rbx, [r11 + rdx*4]
lea rdi, [rcx + 0x40]
movdqu xmm9, xmm2
pandn xmm5, xmm2
lea rsi, [rcx + 0xc0]
movdqu xmm2, xmmword [rcx + 0x90]
pand xmm0, xmm6
pand xmm9, xmm8
por xmm0, xmm3
movdqu xmm3, xmm8
pand xmm2, xmm6
pandn xmm3, xmm1
pand xmm1, xmm8
movdqu xmm10, xmm0
por xmm9, xmm3
por xmm1, xmm5
movdqu xmm3, xmm7
movdqu xmm5, xmm7
pandn xmm3, xmm4
pand xmm10, xmm7
movups xmmword [rsp + 0xf0], xmm9
pandn xmm5, xmm0
movdqu xmm0, xmm6
pand xmm4, xmm7
movups xmmword [rcx], xmm9
pandn xmm0, xmmword [rcx + 0x80]
por xmm4, xmm5
movdqu xmm5, xmm6
movups xmmword [rsp + 0xe0], xmm1
por xmm10, xmm3
movdqu xmm3, xmmword [rcx + 0x80]
pandn xmm5, xmmword [rcx + 0xb0]
movups xmmword [rcx + 0x20], xmm1
por xmm0, xmm2
movdqu xmm2, xmm6
movups xmmword [rcx + 0x30], xmm4
pandn xmm2, xmmword [rcx + 0x90]
pand xmm3, xmm6
movups xmmword [rcx + 0x10], xmm10
por xmm3, xmm2
movdqu xmm2, xmm6
pandn xmm2, xmmword [rcx + 0xa0]
movups xmmword [rsp + 0x110], xmm10
movups xmmword [rsp + 0x100], xmm4
por xmm11, xmm2
movdqu xmm2, xmmword [rcx + 0xa0]
movdqu xmm12, xmm11
pand xmm2, xmm6
pand xmm12, xmm8
por xmm2, xmm5
movdqu xmm5, xmm8
pandn xmm5, xmm0
movdqu xmm13, xmm2
pand xmm0, xmm8
por xmm5, xmm12
movdqu xmm12, xmm7
pand xmm13, xmm7
pandn xmm12, xmm3
movups xmmword [rsp + 0x130], xmm5
pand xmm3, xmm7
por xmm13, xmm12
movups xmmword [rcx + 0x80], xmm5
movups xmmword [rsp + 0x160], xmm13
movups xmmword [rsp + 0x150], xmm13
movups xmmword [rcx + 0x90], xmm13
movdqu xmm13, xmm8
pandn xmm13, xmm11
movdqu xmm11, xmm6
por xmm0, xmm13
movdqu xmm13, xmm7
movups xmmword [rsp + 0x120], xmm0
movdqu xmm12, xmmword [rcx + 0x50]
pandn xmm13, xmm2
movdqu xmm2, xmm6
pandn xmm2, xmmword [rcx + 0x40]
pandn xmm11, xmmword [rcx + 0x50]
por xmm3, xmm13
movups xmmword [rcx + 0xa0], xmm0
pand xmm12, xmm6
movdqu xmm13, xmmword [rcx + 0x70]
pandn xmm14, xmmword [rcx + 0x70]
movups xmmword [rsp + 0x140], xmm3
por xmm12, xmm2
movdqu xmm2, xmmword [rcx + 0x40]
movups xmmword [rcx + 0xb0], xmm3
pand xmm13, xmm6
pand xmm2, xmm6
por xmm2, xmm11
movdqu xmm11, xmm6
pandn xmm11, xmmword [rcx + 0x60]
por xmm13, xmm11
movdqu xmm11, xmmword [rcx + 0x60]
movdqu xmm15, xmm13
pand xmm11, xmm6
pand xmm15, xmm8
por xmm11, xmm14
movdqu xmm14, xmm8
pandn xmm14, xmm12
pand xmm12, xmm8
por xmm15, xmm14
movdqu xmm14, xmm7
movups xmmword [rsp + 0x50], xmm15
pandn xmm14, xmm2
pand xmm2, xmm7
movups xmmword [rsp + 0x40], xmm15
movups xmmword [rcx + 0x40], xmm15
movdqu xmm15, xmm11
pand xmm15, xmm7
por xmm15, xmm14
movdqu xmm14, xmm6
pandn xmm14, xmmword [rcx + 0xf0]
movups xmmword [rsp + 0x90], xmm15
movups xmmword [rsp + 0x80], xmm15
movups xmmword [rcx + 0x50], xmm15
movdqu xmm15, xmm8
pandn xmm15, xmm13
movdqu xmm13, xmm7
por xmm12, xmm15
pandn xmm13, xmm11
movdqu xmm11, xmm6
por xmm2, xmm13
movups xmmword [rsp + 0x30], xmm12
pandn xmm11, xmmword [rcx + 0xd0]
movdqu xmm13, xmmword [rcx + 0xf0]
movups xmmword [rsp + 0x20], xmm12
movups xmmword [rcx + 0x60], xmm12
pand xmm13, xmm6
movdqu xmm12, xmmword [rcx + 0xd0]
movups xmmword [rsp + 0x70], xmm2
movups xmmword [rsp + 0x60], xmm2
pand xmm12, xmm6
movups xmmword [rcx + 0x70], xmm2
movdqu xmm2, xmm6
pandn xmm2, xmmword [rcx + 0xc0]
por xmm12, xmm2
movdqu xmm2, xmmword [rcx + 0xc0]
pand xmm2, xmm6
por xmm2, xmm11
movdqu xmm11, xmm6
pandn xmm11, xmmword [rcx + 0xe0]
por xmm13, xmm11
movdqu xmm11, xmmword [rcx + 0xe0]
movdqu xmm15, xmm13
pand xmm11, xmm6
pand xmm15, xmm8
por xmm11, xmm14
movdqu xmm14, xmm8
pandn xmm14, xmm12
pand xmm12, xmm8
por xmm15, xmm14
movdqu xmm14, xmm7
movups xmmword [rsp + 0xb0], xmm15
pandn xmm14, xmm2
pand xmm2, xmm7
movups xmmword [rsp + 0xa0], xmm15
movups xmmword [rcx + 0xc0], xmm15
movdqu xmm15, xmm11
pand xmm15, xmm7
por xmm14, xmm15
movdqu xmm15, xmm8
pandn xmm15, xmm13
movups xmmword [rcx + 0xd0], xmm14
movups xmmword [rsp + 0xd0], xmm14
movdqu xmm13, xmm15
por xmm13, xmm12
movdqu xmm12, xmm7
pandn xmm12, xmm11
movdqu xmm15, xmm13
movups xmmword [rcx + 0xe0], xmm13
por xmm2, xmm12
movups xmmword [rsp + 0xc0], xmm2
movups xmmword [rcx + 0xf0], xmm2
test r8d, r8d
je 0x4f9034
lea edx, [r8 - 1]
mov rbp, r11
mov r14, rbx
mov r12, rdx
shl rdx, 7
lea r15, [r11 + rdx + 0x80]
nop dword [rax]
movdqu xmm5, xmmword [rax]
mov rdx, r10
mov rcx, rax
mov r9, rsi
mov r8, rdi
sub rbp, 0xffffffffffffff80
sub r14, 0xffffffffffffff80
movups xmmword [rbp - 0x80], xmm5
movdqu xmm4, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm4
movdqu xmm3, xmmword [rax + 0x20]
movups xmmword [rbp - 0x60], xmm3
movdqu xmm5, xmmword [rax + 0x30]
movups xmmword [rbp - 0x50], xmm5
movdqu xmm2, xmmword [rax + 0x40]
movups xmmword [rbp - 0x40], xmm2
movdqu xmm4, xmmword [rax + 0x50]
movups xmmword [rbp - 0x30], xmm4
movdqu xmm3, xmmword [rax + 0x60]
movups xmmword [rbp - 0x20], xmm3
movdqu xmm5, xmmword [rax + 0x70]
movups xmmword [rbp - 0x10], xmm5
movdqu xmm2, xmmword [r10]
movups xmmword [r14 - 0x80], xmm2
movdqu xmm4, xmmword [r10 + 0x10]
movups xmmword [r14 - 0x70], xmm4
movdqu xmm3, xmmword [r10 + 0x20]
movups xmmword [r14 - 0x60], xmm3
movdqu xmm5, xmmword [r10 + 0x30]
movups xmmword [r14 - 0x50], xmm5
movdqu xmm2, xmmword [r10 + 0x40]
movups xmmword [r14 - 0x40], xmm2
movdqu xmm4, xmmword [r10 + 0x50]
movups xmmword [r14 - 0x30], xmm4
movdqu xmm3, xmmword [r10 + 0x60]
movups xmmword [r14 - 0x20], xmm3
movdqu xmm5, xmmword [r10 + 0x70]
movups xmmword [r14 - 0x10], xmm5
call fcn.004f6ae0
mov rdx, rsi
mov rcx, rdi
mov r9, r10
mov r8, rax
call fcn.004f6ae0
cmp r15, rbp
jne 0x4f8cc8
xor ebp, ebp
nop dword [rax + rax]
mov edx, dword [rax + 0x40]
mov ecx, dword [rax + 0xc0]
mov r9, rsi
mov r8, rdi
add ebp, 1
and edx, r12d
and ecx, r12d
shl edx, 3
shl ecx, 3
shl rdx, 4
shl rcx, 4
movdqu xmm1, xmmword [r11 + rdx]
movdqu xmm0, xmmword [rbx + rcx]
pxor xmm1, xmmword [rax]
pxor xmm0, xmmword [rax + 0x80]
movups xmmword [rax], xmm1
movups xmmword [rax + 0x80], xmm0
movdqu xmm1, xmmword [r11 + rdx + 0x10]
movdqu xmm0, xmmword [rbx + rcx + 0x10]
pxor xmm1, xmmword [rax + 0x10]
pxor xmm0, xmmword [rax + 0x90]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax + 0x90], xmm0
movdqu xmm1, xmmword [r11 + rdx + 0x20]
movdqu xmm0, xmmword [rbx + rcx + 0x20]
pxor xmm1, xmmword [rax + 0x20]
pxor xmm0, xmmword [rax + 0xa0]
movups xmmword [rax + 0x20], xmm1
movups xmmword [rax + 0xa0], xmm0
movdqu xmm1, xmmword [r11 + rdx + 0x30]
movdqu xmm0, xmmword [rbx + rcx + 0x30]
pxor xmm1, xmmword [rax + 0x30]
pxor xmm0, xmmword [rax + 0xb0]
movups xmmword [rax + 0x30], xmm1
movups xmmword [rax + 0xb0], xmm0
movdqu xmm1, xmmword [r11 + rdx + 0x40]
movdqu xmm0, xmmword [rbx + rcx + 0x40]
pxor xmm1, xmmword [rax + 0x40]
pxor xmm0, xmmword [rax + 0xc0]
movups xmmword [rax + 0x40], xmm1
movups xmmword [rax + 0xc0], xmm0
movdqu xmm0, xmmword [rbx + rcx + 0x50]
movdqu xmm1, xmmword [r11 + rdx + 0x50]
pxor xmm0, xmmword [rax + 0xd0]
pxor xmm1, xmmword [rax + 0x50]
movups xmmword [rax + 0xd0], xmm0
movups xmmword [rax + 0x50], xmm1
movdqu xmm1, xmmword [r11 + rdx + 0x60]
movdqu xmm0, xmmword [rbx + rcx + 0x60]
pxor xmm1, xmmword [rax + 0x60]
pxor xmm0, xmmword [rax + 0xe0]
movups xmmword [rax + 0x60], xmm1
movups xmmword [rax + 0xe0], xmm0
movdqu xmm1, xmmword [r11 + rdx + 0x70]
mov rdx, r10
movdqu xmm0, xmmword [rbx + rcx + 0x70]
pxor xmm1, xmmword [rax + 0x70]
pxor xmm0, xmmword [rax + 0xf0]
mov rcx, rax
movups xmmword [rax + 0x70], xmm1
movups xmmword [rax + 0xf0], xmm0
call fcn.004f6ae0
mov rdx, rsi
mov rcx, rdi
mov r9, r10
mov r8, rax
call fcn.004f6ae0
cmp ebp, r13d
jne 0x4f8da0
movdqu xmm5, xmmword [rax + 0x60]
movdqu xmm4, xmmword [rax + 0x40]
movdqu xmm3, xmmword [rax + 0x50]
movdqu xmm2, xmmword [rax + 0xf0]
movups xmmword [rsp + 0x20], xmm5
movdqu xmm15, xmmword [rax + 0xe0]
movups xmmword [rsp + 0x30], xmm5
movdqu xmm5, xmmword [rax + 0x70]
movups xmmword [rsp + 0x40], xmm4
movdqu xmm13, xmm15
movups xmmword [rsp + 0x50], xmm4
movdqu xmm4, xmmword [rax + 0xc0]
movups xmmword [rsp + 0x60], xmm5
movups xmmword [rsp + 0x70], xmm5
movdqu xmm5, xmmword [rax + 0xd0]
movups xmmword [rsp + 0x80], xmm3
movups xmmword [rsp + 0x90], xmm3
movdqu xmm3, xmmword [rax + 0x20]
movdqu xmm14, xmm5
movups xmmword [rsp + 0xa0], xmm4
movups xmmword [rsp + 0xb0], xmm4
movdqu xmm1, xmm3
movdqu xmm4, xmmword [rax]
movups xmmword [rsp + 0xd0], xmm5
movdqu xmm5, xmmword [rax + 0x30]
movups xmmword [rsp + 0xe0], xmm3
movdqu xmm3, xmmword [rax + 0x10]
movdqu xmm9, xmm4
movups xmmword [rsp + 0xf0], xmm4
movdqu xmm4, xmm5
movups xmmword [rsp + 0x100], xmm5
movdqu xmm10, xmm3
movdqu xmm5, xmmword [rax + 0xa0]
movups xmmword [rsp + 0x110], xmm3
movdqu xmm3, xmmword [rax + 0x80]
movups xmmword [rsp + 0x120], xmm5
movdqu xmm0, xmm5
movups xmmword [rsp + 0xc0], xmm2
movdqu xmm5, xmm3
movups xmmword [rsp + 0x130], xmm3
movdqu xmm3, xmmword [rax + 0xb0]
movdqu xmm12, xmmword [rax + 0x90]
movups xmmword [rsp + 0x140], xmm3
movups xmmword [rsp + 0x150], xmm12
movups xmmword [rsp + 0x160], xmm12
movdqu xmm11, xmm8
pand xmm1, xmm8
pand xmm9, xmm8
pand xmm4, xmm7
pand xmm10, xmm7
movdqu xmm12, xmm6
pand xmm0, xmm8
pand xmm5, xmm8
pand xmm3, xmm7
pand xmm2, xmm7
pand xmm13, xmm8
pand xmm14, xmm7
pandn xmm11, xmmword [rsp + 0xf0]
por xmm1, xmm11
movdqu xmm11, xmm8
pandn xmm11, xmmword [rsp + 0xe0]
pandn xmm12, xmm1
pand xmm1, xmm6
por xmm9, xmm11
movdqu xmm11, xmm7
pandn xmm11, xmmword [rsp + 0x110]
por xmm4, xmm11
movdqu xmm11, xmm7
pandn xmm11, xmmword [rsp + 0x100]
por xmm10, xmm11
movdqu xmm11, xmm4
pand xmm11, xmm6
por xmm11, xmm12
movdqu xmm12, xmm6
pandn xmm12, xmm4
movdqu xmm4, xmm6
movups xmmword [rax], xmm11
por xmm1, xmm12
pandn xmm4, xmm9
pand xmm9, xmm6
movdqu xmm12, xmmword [rsp + 0x30]
movups xmmword [rax + 0x10], xmm1
movdqu xmm1, xmm10
pand xmm1, xmm6
pand xmm12, xmm8
por xmm1, xmm4
movdqu xmm4, xmmword [rsp + 0x160]
movups xmmword [rax + 0x20], xmm1
movdqu xmm1, xmm6
pandn xmm1, xmm10
pand xmm4, xmm7
por xmm9, xmm1
movdqu xmm1, xmm8
pandn xmm1, xmmword [rsp + 0x130]
movups xmmword [rax + 0x30], xmm9
movdqu xmm9, xmm6
por xmm0, xmm1
movdqu xmm1, xmm8
pandn xmm1, xmmword [rsp + 0x120]
pandn xmm9, xmm0
pand xmm0, xmm6
por xmm5, xmm1
movdqu xmm1, xmm7
pandn xmm1, xmmword [rsp + 0x150]
por xmm3, xmm1
movdqu xmm1, xmm7
pandn xmm1, xmmword [rsp + 0x140]
por xmm1, xmm4
movdqu xmm4, xmm3
pand xmm4, xmm6
por xmm4, xmm9
movdqu xmm9, xmm6
movups xmmword [rax + 0x80], xmm4
movdqu xmm4, xmm6
pandn xmm4, xmm3
movdqu xmm3, xmm6
por xmm0, xmm4
pandn xmm3, xmm5
movdqu xmm4, xmmword [rsp + 0x70]
pand xmm5, xmm6
movups xmmword [rax + 0x90], xmm0
movdqu xmm0, xmm1
pand xmm0, xmm6
pand xmm4, xmm7
por xmm0, xmm3
movdqu xmm3, xmmword [rsp + 0x50]
movups xmmword [rax + 0xa0], xmm0
movdqu xmm0, xmm6
pandn xmm0, xmm1
movdqu xmm1, xmm8
pandn xmm1, xmmword [rsp + 0x20]
pand xmm3, xmm8
por xmm5, xmm0
movdqu xmm0, xmm8
por xmm1, xmm3
pandn xmm0, xmmword [rsp + 0x40]
movdqu xmm3, xmm7
movups xmmword [rax + 0xb0], xmm5
pandn xmm3, xmmword [rsp + 0x80]
movdqu xmm5, xmmword [rsp + 0x90]
por xmm0, xmm12
movdqu xmm12, xmm6
por xmm4, xmm3
movdqu xmm3, xmm7
pandn xmm3, xmmword [rsp + 0x60]
pand xmm5, xmm7
pandn xmm9, xmm0
pandn xmm12, xmm4
pand xmm0, xmm6
por xmm3, xmm5
movdqu xmm5, xmm4
por xmm0, xmm12
movdqu xmm4, xmm6
pand xmm5, xmm6
movups xmmword [rax + 0x50], xmm0
movdqu xmm0, xmm3
pandn xmm4, xmm1
pand xmm1, xmm6
pand xmm0, xmm6
por xmm5, xmm9
por xmm0, xmm4
movdqu xmm4, xmm6
movups xmmword [rax + 0x40], xmm5
pandn xmm4, xmm3
movups xmmword [rax + 0x60], xmm0
movdqu xmm0, xmm8
movdqu xmm3, xmm6
pandn xmm0, xmmword [rsp + 0xa0]
por xmm1, xmm4
movdqu xmm4, xmm8
movups xmmword [rax + 0x70], xmm1
movdqu xmm1, xmm7
pandn xmm1, xmmword [rsp + 0xd0]
pand xmm8, xmmword [rsp + 0xb0]
por xmm0, xmm13
pandn xmm4, xmm15
movdqu xmm15, xmm7
por xmm2, xmm1
pandn xmm3, xmm0
pand xmm0, xmm6
movdqu xmm1, xmm2
por xmm8, xmm4
pandn xmm15, xmmword [rsp + 0xc0]
movups xmm7, xmmword [rsp + 0x180]
movups xmm9, xmmword [rsp + 0x1a0]
pand xmm1, xmm6
movups xmm10, xmmword [rsp + 0x1b0]
por xmm1, xmm3
por xmm14, xmm15
movups xmm11, xmmword [rsp + 0x1c0]
movups xmm12, xmmword [rsp + 0x1d0]
movups xmm13, xmmword [rsp + 0x1e0]
movups xmmword [rax + 0xc0], xmm1
movdqu xmm1, xmm6
movups xmm15, xmmword [rsp + 0x200]
pandn xmm1, xmm2
por xmm0, xmm1
movdqu xmm1, xmm6
movups xmmword [rax + 0xd0], xmm0
movdqu xmm0, xmm14
pandn xmm1, xmm8
pand xmm8, xmm6
pand xmm0, xmm6
por xmm0, xmm1
movups xmmword [rax + 0xe0], xmm0
movdqu xmm0, xmm6
movups xmm6, xmmword [rsp + 0x170]
pandn xmm0, xmm14
movups xmm14, xmmword [rsp + 0x1f0]
por xmm8, xmm0
movups xmmword [rax + 0xf0], xmm8
movups xmm8, xmmword [rsp + 0x190]
add rsp, 0x218
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret