Function at 0x1400146a0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
mov qword [rbp - 0x41], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14005f020]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r15, r8
mov rdi, rdx
mov r14, rcx
lea rbx, [rcx + 0x10]
mov qword [rbp - 0x49], rbx
mov rax, qword [rbx + 0x28]
mov rcx, rbx
test rax, rax
je 0x1400146fa
call rax
jmp 0x140014701
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
xor esi, esi
mov ecx, esi
movzx eax, word [rdi]
test ax, ax
je 0x140014724
nop dword [rax]
rol ecx, 0x10
movzx eax, ax
add ecx, eax
lea rdi, [rdi + 2]
movzx eax, word [rdi]
test ax, ax
jne 0x140014710
mov r8, qword [r14 + 0x48]
mov rdx, r8
mov rax, qword [r8 + 8]
cmp byte [rax + 0x19], sil
jne 0x14001474c
cmp dword [rax + 0x20], ecx
jae 0x140014740
mov rax, qword [rax + 0x10]
jmp 0x140014746
mov rdx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], sil
je 0x140014735
mov qword [rbp - 0x39], r8
cmp rdx, r8
je 0x140014760
cmp ecx, dword [rdx + 0x20]
jb 0x140014760
mov qword [rbp - 0x31], rdx
jmp 0x140014767
mov qword [rbp - 0x29], r8
mov rdx, r8
mov qword [rbp - 0x21], r8
cmp rdx, r8
je 0x140014957
mov r12, qword [rdx + 0x28]
cmp byte [r12 + 0x100], 0x99
jne 0x140014957
mov r12, qword [r12 + 0x101]
mov rax, qword [r15]
lea rdx, [0x140054178]
mov rcx, r15
call qword [rax + 0x38]
mov edi, esi
cmp dword [r12], esi
jbe 0x14001495c
mov edx, 0xf077
mov r8d, 0x31
lea r9d, [r8 - 0xc]
lea r13d, [rdx - 0x41]
lea r10d, [rdx - 0x3a]
lea r11d, [rdx - 0x44]
nop word [rax + rax]
lea ecx, [rdi + rdi]
lea r14, [r12 + rcx*4]
lea eax, [rcx + 1]
lea rbx, [r12 + rax*4]
test edi, edi
je 0x140014830
mov word [rbp - 0x19], r8w
mov word [rbp - 0x17], r9w
mov word [rbp - 0x15], si
movzx eax, word [rbp - 0x19]
mov rax, rsi
nop word [rax + rax]
movzx edx, word [rbp + rax*2 - 0x19]
sub edx, 5
mov word [rbp + rax*2 - 0x19], dx
inc rax
cmp rax, 2
jb 0x140014800
mov rax, qword [r15]
lea rdx, [rbp - 0x19]
mov rcx, r15
call qword [rax + 0x30]
mov edx, 0xf077
lea r10d, [rdx - 0x3a]
lea r11d, [rdx - 0x44]
mov dword [rbp - 0x11], 0xf013
mov word [rbp - 0xd], r13w
mov word [rbp - 0xb], dx
mov word [rbp - 9], r10w
mov word [rbp - 7], r13w
mov word [rbp - 5], dx
mov word [rbp - 3], r10w
mov word [rbp - 1], r13w
mov word [rbp + 1], dx
mov word [rbp + 3], r10w
mov word [rbp + 5], r13w
mov word [rbp + 7], dx
mov word [rbp + 9], r11w
mov eax, 0xf03e
mov word [rbp + 0xb], ax
mov word [rbp + 0xd], r11w
mov word [rbp + 0xf], r13w
mov word [rbp + 0x11], dx
mov word [rbp + 0x13], r10w
mov word [rbp + 0x15], r13w
mov word [rbp + 0x17], dx
mov word [rbp + 0x19], r10w
mov word [rbp + 0x1b], r13w
mov word [rbp + 0x1d], dx
mov word [rbp + 0x1f], r10w
mov word [rbp + 0x21], r13w
mov word [rbp + 0x23], dx
xor eax, eax
mov word [rbp + 0x25], ax
movzx eax, word [rbp - 0xd]
mov r8, rsi
nop dword [rax]
movzx edx, word [rbp + r8*2 - 0xd]
mov eax, dword [rbp - 0x11]
movzx ecx, ax
mov eax, edx
xor eax, ecx
mov word [rbp + r8*2 - 0xd], ax
inc r8
cmp r8, 0x19
jb 0x1400148c0
mov word [rbp + 0x25], si
movzx eax, byte [rbx + 4]
movzx ecx, byte [rbx + 5]
movzx edx, byte [rbx + 6]
movzx r10d, byte [rbx + 7]
movzx r11d, byte [r14 + 4]
movzx ebx, byte [r14 + 5]
movzx r9d, byte [r14 + 6]
movzx r8d, byte [r14 + 7]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], ebx
lea rdx, [rbp - 0xd]
mov rcx, r15
call fcn.1400117c0
inc edi
cmp edi, dword [r12]
mov edx, 0xf077
mov r8d, 0x31
lea r9d, [r8 - 0xc]
lea r10d, [rdx - 0x3a]
lea r11d, [rdx - 0x44]
jb 0x1400147d0
mov rbx, qword [rbp - 0x49]
jmp 0x14001495c
mov esi, 0xe0010001
mov rax, qword [rbx + 0x30]
mov rcx, rbx
test rax, rax
je 0x14001496c
call rax
jmp 0x140014973
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov eax, esi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14002fb30
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret