Function at 0x140002c40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r12
push r13
push r14
lea rbp, [rsp - 0x3f]
sub rsp, 0x98
mov rax, qword [0x140045100]
xor rax, rsp
mov qword [rbp + 0xf], rax
movsxd r12, ecx
lea rax, [0x140046c40]
imul r13, r12, 0x190
mov r14, r9
mov byte [rbp - 0x38], r8b
mov byte [rbp - 0x39], dl
cmp qword [rax + r13 + 0x168], 0
jne 0x140002c92
mov eax, 0x80000004
jmp 0x140002ebf
mov qword [rsp + 0xc8], rbx
xorps xmm0, xmm0
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x88], rdi
xor edi, edi
mov qword [rsp + 0x80], r15
mov qword [rbp - 0x20], rdi
movaps xmmword [rsp + 0x70], xmm6
movdqu xmmword [rbp - 0x30], xmm0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.1400248d8
call fcn.1400248ac
movsx ecx, al
lea ebx, [rdi + 1]
mov r15d, eax
mov byte [rbp - 0x31], dil
lea rsi, [rbp - 0x30]
movd xmm6, ecx
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
nop dword [rax]
call fcn.1400248ac
mov ecx, eax
call fcn.1400248d8
call fcn.1400248ac
inc ebx
mov byte [rsi], al
lea rsi, [rsi + 1]
cmp ebx, 0x19
jb 0x140002d00
movzx esi, byte [rbp - 0x38]
lea rbx, [0x140046c40]
movzx eax, r15b
mov byte [rbp - 0x2f], r15b
xor al, 0x52
mov byte [rbp - 0x2d], r15b
mov byte [rbp - 0x30], al
lea rcx, [rbx + 0x176]
movzx eax, r15b
add rcx, r13
xor al, 0xaa
mov byte [rbp - 0x2e], al
movzx eax, r15b
xor al, byte [rbp - 0x39]
mov byte [rbp - 0x2c], al
movzx eax, r15b
xor al, sil
mov byte [rbp - 0x1a], al
xor al, r15b
xor al, byte [rbp - 0x39]
xor al, byte [rbp - 0x2b]
xor al, byte [rbp - 0x2a]
xor al, byte [rbp - 0x29]
xor al, byte [rbp - 0x28]
xor al, byte [rbp - 0x27]
xor al, byte [rbp - 0x26]
xor al, byte [rbp - 0x25]
xor al, byte [rbp - 0x24]
xor al, byte [rbp - 0x23]
xor al, byte [rbp - 0x22]
xor al, byte [rbp - 0x21]
xor al, byte [rbp - 0x20]
xor al, byte [rbp - 0x1f]
xor al, byte [rbp - 0x1e]
xor al, byte [rbp - 0x1d]
xor al, byte [rbp - 0x1c]
xor al, byte [rbp - 0x1b]
xor al, 0xf8
mov byte [rbp - 0x19], al
call fcn.14000baf0
lea r8, [rbp - 0x11]
mov ecx, r12d
lea rdx, [rbp - 0x31]
call fcn.140001940
lea rcx, [rbx + 0x176]
mov r12d, eax
add rcx, r13
call fcn.14000bb10
mov rbx, qword [rsp + 0xc8]
mov r10d, esi
mov r8d, esi
mov rsi, qword [rsp + 0x90]
mov edx, edi
cmp r10d, 0x40
jb 0x140002e74
movsxd rcx, r10d
lea r9, [r14 - 1]
add r9, rcx
lea rcx, [rbp + rcx - 0xc]
cmp r14, rcx
ja 0x140002e05
lea rax, [rbp - 0xb]
cmp r9, rax
jae 0x140002e74
mov eax, 0xffffffc0
mov rcx, r14
and r8, rax
lea rax, [rbp + 0x25]
sub rcx, rax
nop word [rax + rax]
lea rax, [rbp + 0x25]
add edx, 0x40
add rax, rdi
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax - 0x10]
pxor xmm0, xmm6
movdqu xmmword [rax + rcx], xmm0
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm6
pxor xmm0, xmm6
movdqu xmmword [r14 + rdi + 0x10], xmm0
movdqu xmm0, xmmword [rax]
movdqu xmmword [r14 + rdi + 0x20], xmm1
movdqa xmm1, xmm6
pxor xmm1, xmm0
movdqu xmmword [r14 + rdi + 0x30], xmm1
add rdi, 0x40
cmp rdi, r8
jl 0x140002e20
movaps xmm6, xmmword [rsp + 0x70]
mov rdi, qword [rsp + 0x88]
movsxd rcx, edx
mov rdx, r10
cmp rcx, r10
jge 0x140002eb4
lea r8, [rbp - 0xb]
sub r8, r14
lea rax, [rcx + r14]
sub rdx, rcx
nop word [rax + rax]
movzx ecx, r15b
xor cl, byte [r8 + rax]
mov byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140002ea0
mov r15, qword [rsp + 0x80]
mov eax, r12d
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.14001af60
add rsp, 0x98
pop r14
pop r13
pop r12
pop rbp
ret