Function at 0x41b880
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 xmm0, xmmword [0x005ae970]
xor ecx, ecx
xor esi, esi
movabs rax, 0x7000000000000000
xor ebp, ebp
mov r13d, 0x40
movabs r15, 0x8000000000000000
vmovups xmmword [rsp + 0x1d0], xmm0
vmovdqu xmm0, xmmword [0x005ae980]
lea rdi, [rsp + 0x1d0]
lea r11, [rsp + 0x90]
mov rdx, rdi
vmovups xmmword [rsp + 0x1e0], xmm0
vmovdqu xmm0, xmmword [0x005ae990]
lea r14, [rsp + 0x50]
lea rbx, [rsp + 0x184]
vmovups xmmword [rsp + 0x1f0], xmm0
vmovdqu xmm0, xmmword [0x005ae9a0]
lea r12, [rsp + 0xe4]
vmovups xmmword [rsp + 0x200], xmm0
vmovdqu xmm0, xmmword [0x005ae9b0]
vmovups xmmword [rsp + 0x210], xmm0
vmovdqu xmm0, xmmword [0x005ae9c0]
vmovups xmmword [rsp + 0x220], xmm0
vmovdqu xmm0, xmmword [0x005ae9d0]
vmovups xmmword [rsp + 0x230], xmm0
vmovdqu xmm0, xmmword [0x005ae9e0]
vmovups xmmword [rsp + 0x240], xmm0
vmovdqu xmm0, xmmword [0x005ae9f0]
vmovups xmmword [rsp + 0x250], xmm0
vmovdqu xmm0, xmmword [0x005aea00]
vmovups xmmword [rsp + 0x260], xmm0
vmovdqu xmm0, xmmword [0x005aea10]
vmovups xmmword [rsp + 0x270], xmm0
vmovdqu xmm0, xmmword [0x005aea20]
vmovups xmmword [rsp + 0x280], xmm0
vmovdqu xmm0, xmmword [0x005aea30]
vmovups xmmword [rsp + 0x290], xmm0
vmovdqu xmm0, xmmword [0x005aea40]
vmovups xmmword [rsp + 0x2a0], xmm0
vmovdqu xmm0, xmmword [0x005aea50]
vmovups xmmword [rsp + 0x2b0], xmm0
vmovdqu xmm0, xmmword [0x005aea60]
vmovups xmmword [rsp + 0x2c0], xmm0
mov byte [rsp + 0x2d0], 0
vmovdqu xmm5, xmmword [0x005aea80]
vmovdqu xmm6, xmmword [0x005ae940]
mov qword [rsp + 0x30], rdi
lea rdi, [rsp + 0x130]
vmovups xmmword [rsp + 0x90], xmm5
vmovdqu ymm5, ymmword [0x005aea80]
mov qword [rsp + 0xd0], 0
vextractf128 xmmword [rsp + 0xa0], ymm5, 1
vmovdqu xmm5, xmmword [0x005aeaa0]
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0xe0], 0
vmovups xmmword [rsp + 0xb0], xmm5
vmovdqu ymm5, ymmword [0x005aeaa0]
mov qword [rsp + 0x170], 0
vextractf128 xmmword [rsp + 0xc0], ymm5, 1
vmovdqu xmm5, xmmword [0x005aea80]
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x178], rax
vmovups xmmword [rsp + 0x130], xmm5
vmovdqu ymm5, ymmword [0x005aea80]
mov dword [rsp + 0x180], 0
vextractf128 xmmword [rsp + 0x140], ymm5, 1
mov qword [rsp + 0x28], rax
vmovdqu xmm5, xmmword [0x005aeaa0]
vmovups xmmword [rsp + 0x150], xmm5
vmovdqu ymm5, ymmword [0x005aeaa0]
vextractf128 xmmword [rsp + 0x160], ymm5, 1
vzeroupper
nop dword [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
or qword [rsp + 0x178], r15
mov r8d, 1
call fcn.00419640
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.00419640
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 0x41bd30
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
lea rax, [rsi + 1]
add dword [rsp + 0xe0], ebp
cmp rsi, 0x101
je 0x41bddc
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x170], 0
vmovdqu xmm1, xmmword [0x005aea80]
vmovdqu ymm2, ymmword [0x005aea80]
mov dword [rsp + 0x180], 0
vmovdqu xmm3, xmmword [0x005aeaa0]
vmovups xmmword [rsp + 0x130], xmm1
vmovdqu ymm4, ymmword [0x005aeaa0]
mov qword [rsp + 0x178], rdx
vextractf128 xmmword [rsp + 0x140], ymm2, 1
vmovups xmmword [rsp + 0x150], xmm3
vextractf128 xmmword [rsp + 0x160], ymm4, 1
cmp rax, 0x40
jbe 0x41bd20
mov r10, rsi
shr rsi, 6
mov r9d, 0x40
mov qword [rsp + 0x48], rax
mov r8, rsi
mov rsi, qword [rsp + 0x30]
and r10, 0xffffffffffffffc0
mov rcx, rdi
mov qword [rsp + 0x40], r10
mov rdx, rsi
vzeroupper
call fcn.00419640
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 0x41baf0
mov rdx, qword [rsp + 0x30]
mov rbp, rax
xor ecx, ecx
vzeroupper
jmp 0x41bd14
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
mov r9d, 0x40
sub rax, rbp
mov r8d, 1
mov rdx, r12
mov dword [rsp + 0xe0], 0
lea r10, [r14 + rbp]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], r10
call fcn.00419640
mov rax, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
cmp rax, 0x40
jbe 0x41bdce
mov rcx, qword [rsp + 0x38]
mov r8d, 0x3f
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
and rbp, 0xffffffffffffffc0
call fcn.00419640
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
sub rax, rbp
add r10, rbp
mov ecx, dword [rsp + 0xe0]
mov ebp, eax
jmp 0x41bc30
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
call fcn.0041a600
lea rdx, [0x005ae900]
xor ecx, ecx
lea r8, [rdx + 0x40]
nop word cs:[rax + rax]
add rdx, 1
movzx eax, byte [rdi]
add rdi, 1
xor al, byte [rdx - 1]
movzx eax, al
or ecx, eax
cmp rdx, r8
jne 0x41be00
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