Function at 0x41bc80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2f8
vmovups xmmword [rsp + 0x2e0], xmm6
vmovdqu ymm0, ymmword [0x00677dc0]
xor ecx, ecx
xor esi, esi
vmovdqu ymm3, ymmword [0x00677ec0]
xor ebp, ebp
vmovdqu ymm4, ymmword [0x00677ee0]
movabs rax, 0x7000000000000000
vmovdqu xmm6, xmmword [0x00677ba0]
mov r13d, 0x40
movabs r15, 0x8000000000000000
vmovdqu ymmword [rsp + 0x1d0], ymm0
vmovdqu ymm0, ymmword [0x00677de0]
lea rdi, [rsp + 0x1d0]
lea r11, [rsp + 0x90]
mov qword [rsp + 0x30], rdi
mov rdx, rdi
lea rbx, [rsp + 0x184]
lea rdi, [rsp + 0x130]
vmovdqu ymmword [rsp + 0x1f0], ymm0
vmovdqu ymm0, ymmword [0x00677e00]
lea r12, [rsp + 0xe4]
lea r14, [rsp + 0x50]
mov byte [rsp + 0x2d0], 0
vmovdqu ymmword [rsp + 0x210], ymm0
vmovdqu ymm0, ymmword [0x00677e20]
mov qword [rsp + 0xd0], 0
vmovdqu ymmword [rsp + 0x230], ymm0
vmovdqu ymm0, ymmword [0x00677e40]
mov qword [rsp + 0xd8], rax
vmovdqu ymmword [rsp + 0x250], ymm0
vmovdqu ymm0, ymmword [0x00677e60]
mov dword [rsp + 0xe0], 0
vmovdqu ymmword [rsp + 0x270], ymm0
vmovdqu ymm0, ymmword [0x00677e80]
mov qword [rsp + 0x170], 0
vmovdqu ymmword [rsp + 0x290], ymm0
vmovdqu ymm0, ymmword [0x00677ea0]
mov qword [rsp + 0x178], rax
mov dword [rsp + 0x180], 0
mov qword [rsp + 0x38], r11
vmovdqu ymmword [rsp + 0x2b0], ymm0
vmovdqu ymmword [rsp + 0x90], ymm3
vmovdqu ymmword [rsp + 0xb0], ymm4
vmovdqu ymmword [rsp + 0x130], ymm3
vmovdqu ymmword [rsp + 0x150], ymm4
mov qword [rsp + 0x28], rax
vzeroupper
nop dword [rax + rax]
add rcx, rbx
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x180]
mov eax, r13d
xor edx, edx
add r8d, ebp
mov ecx, r8d
sub eax, r8d
mov dword [rsp + 0x180], r8d
add rcx, rbx
mov r8, rax
call sub.msvcrt.dll_memset
mov r9d, dword [rsp + 0x180]
mov rdx, rbx
mov rcx, rdi
mov r8d, 1
or qword [rsp + 0x178], r15
call fcn.00419bc0
mov rcx, rdi
mov r9d, 8
mov r8d, 1
mov rdx, rbx
mov qword [rbx], 0
mov qword [rbx + 8], 0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
mov qword [rbx + 0x38], 0
vmovups xmmword [rsp + 0x170], xmm6
call fcn.00419bc0
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xe0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x88], rax
test ecx, ecx
jne 0x41c030
mov ebp, 0x40
xor ecx, ecx
mov eax, 0x40
mov r10, r14
add rcx, r12
mov r8, rax
mov rdx, r10
call sub.msvcrt.dll_memcpy
add dword [rsp + 0xe0], ebp
lea rax, [rsi + 1]
cmp rsi, 0x101
je 0x41c0dc
vmovdqu ymm1, ymmword [0x00677ec0]
vmovdqu ymm2, ymmword [0x00677ee0]
mov qword [rsp + 0x170], 0
mov dword [rsp + 0x180], 0
mov rdx, qword [rsp + 0x28]
vmovdqu ymmword [rsp + 0x130], ymm1
mov qword [rsp + 0x178], rdx
vmovdqu ymmword [rsp + 0x150], ymm2
cmp rax, 0x40
jbe 0x41c020
mov r10, rsi
shr rsi, 6
mov r9d, 0x40
mov rcx, rdi
mov r8, rsi
mov rsi, qword [rsp + 0x30]
and r10, 0xffffffffffffffc0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], r10
mov rdx, rsi
vzeroupper
call fcn.00419bc0
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x180]
mov rbp, rax
lea rdx, [rsi + r10]
sub rbp, r10
mov rsi, rax
jmp 0x41be10
mov rdx, qword [rsp + 0x30]
mov rbp, rax
xor ecx, ecx
vzeroupper
jmp 0x41c00e
mov ebp, r13d
mov rdx, r14
sub ebp, ecx
add rcx, r12
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x38]
mov eax, 0x40
lea r10, [r14 + rbp]
sub rax, rbp
mov r9d, 0x40
mov rdx, r12
mov qword [rsp + 0x48], r10
mov r8d, 1
mov qword [rsp + 0x40], rax
mov dword [rsp + 0xe0], 0
call fcn.00419bc0
mov rax, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
cmp rax, 0x40
jbe 0x41c0ce
mov r8d, 0x3f
mov rcx, qword [rsp + 0x38]
mov rdx, r10
mov r9d, 0x40
sub r8, rbp
mov qword [rsp + 0x48], rax
mov rbp, r8
shr r8, 6
mov qword [rsp + 0x40], r10
call fcn.00419bc0
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
and rbp, 0xffffffffffffffc0
sub rax, rbp
add r10, rbp
mov ecx, dword [rsp + 0xe0]
mov ebp, eax
jmp 0x41bf50
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call fcn.0041aa70
lea rdx, [0x00677b60]
xor ecx, ecx
lea r8, [rdx + 0x40]
nop word cs:[rax + rax]
inc rdx
movzx eax, byte [rdi]
inc rdi
xor al, byte [rdx - 1]
movzx eax, al
or ecx, eax
cmp rdx, r8
jne 0x41c100
vmovups xmm6, xmmword [rsp + 0x2e0]
lea eax, [rcx - 1]
shr eax, 8
and eax, 1
add rsp, 0x2f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret