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

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
mov eax, dword [0x007efce8]
mov rsi, rcx
mov rbx, rdx
test eax, eax
je 0x4e9ee0
cmp qword [0x007efce0], 0
je 0x4e9f20
mov ebx, 0x32
mov ecx, 0x40
call fcn.004cbbf0
mov eax, ebx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov dword [rsp + 0x2c], r8d
mov dword [0x007efce8], 1
call fcn.004e9cc0
test rax, rax
mov qword [0x007efce0], rax
mov r8d, dword [rsp + 0x2c]
je 0x4e9f20
lea rcx, [0x007689fc]
mov rdx, rax
call fcn.004cba40
mov r8d, dword [rsp + 0x2c]
jmp 0x4e9eba
lea rcx, [0x00768a20]
xor eax, eax
nop dword [rax]
mov edx, dword [rcx + rax]
mov dword [rsi + rax + 0x1000], edx
add rax, 4
cmp rax, 0x48
jne 0x4e9f30
lea rdi, [0x00769680]
lea r11, [0x00769280]
lea rdx, [0x00768e80]
lea r10, [0x00768a80]
mov r9, rsi
xor al, al
mov ecx, dword [rdi + rax]
add r9, 4
mov dword [r9 - 4], ecx
mov ecx, dword [r11 + rax]
mov dword [r9 + 0x3fc], ecx
mov ecx, dword [rdx + rax]
mov dword [r9 + 0x7fc], ecx
mov ecx, dword [r10 + rax]
add rax, 4
mov dword [r9 + 0xbfc], ecx
cmp rax, 0x400
jne 0x4e9f65
xor r9d, r9d
xor ecx, ecx
movsxd rax, ecx
xor edx, edx
movzx eax, byte [rbx + rax]
mov byte [rsp + 0x37], al
lea eax, [rcx + 1]
div r8d
mov edx, edx
movzx eax, byte [rbx + rdx]
xor edx, edx
mov byte [rsp + 0x36], al
lea eax, [rcx + 2]
div r8d
mov edx, edx
movzx eax, byte [rbx + rdx]
xor edx, edx
mov byte [rsp + 0x35], al
lea eax, [rcx + 3]
div r8d
mov edx, edx
movzx eax, byte [rbx + rdx]
xor edx, edx
mov byte [rsp + 0x34], al
mov eax, dword [rsp + 0x34]
xor dword [rsi + r9 + 0x1000], eax
lea eax, [rcx + 4]
add r9, 4
div r8d
cmp r9, 0x48
mov ecx, edx
jne 0x4e9fa1
lea r12, [rsi + 0x48]
lea rbp, [rsp + 0x3c]
lea rdi, [rsp + 0x38]
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x38], 0
mov rbx, rsi
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.004e9300
mov eax, dword [rsp + 0x38]
add rbx, 8
mov dword [rbx + 0xff8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx + 0xffc], eax
cmp rbx, r12
jne 0x4ea023
lea r12, [rsi + 0x400]
mov rbx, rsi
nop dword [rax + rax]
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.004e9300
mov eax, dword [rsp + 0x38]
add rbx, 8
mov dword [rbx - 8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx - 4], eax
cmp rbx, r12
jne 0x4ea060
lea r12, [rsi + 0x800]
nop dword [rax]
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.004e9300
mov eax, dword [rsp + 0x38]
add rbx, 8
mov dword [rbx - 8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx - 4], eax
cmp rbx, r12
jne 0x4ea090
lea r12, [rsi + 0xc00]
nop dword [rax]
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.004e9300
mov eax, dword [rsp + 0x38]
add rbx, 8
mov dword [rbx - 8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx - 4], eax
cmp rbx, r12
jne 0x4ea0c0
lea r12, [rsi + 0x1000]
nop dword [rax]
mov r8, rbp
mov rdx, rdi
mov rcx, rsi
call fcn.004e9300
mov eax, dword [rsp + 0x38]
add rbx, 8
mov dword [rbx - 8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx - 4], eax
cmp rbx, r12
jne 0x4ea0f0
mov rcx, rsi
xor r9d, r9d
mov r8d, dword [rcx]
add r9d, 1
mov edx, r9d
movsxd rax, edx
lea rax, [rsi + rax*4]
cmp dword [rax], r8d
je 0x4ea180
mov edi, dword [rax + 0x400]
cmp dword [rcx + 0x400], edi
je 0x4ea180
mov edi, dword [rax + 0x800]
cmp dword [rcx + 0x800], edi
je 0x4ea180
mov eax, dword [rax + 0xc00]
cmp dword [rcx + 0xc00], eax
je 0x4ea180
add edx, 1
cmp edx, 0xff
jle 0x4ea125
add rcx, 4
cmp r9d, 0xff
jne 0x4ea11b
xor ebx, ebx
jmp 0x4e9ec9
mov ebx, 0x2b
jmp 0x4e9ec9