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

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
test rcx, rcx
mov rsi, rcx
mov edi, edx
mov rbp, r8
mov r12d, r9d
je 0x65397719
test r8, r8
je 0x65397700
mov ecx, edx
call fcn.6539d620
test eax, eax
jne 0x65397471
movsxd rax, edi
lea rbx, [rax + rax*2]
mov eax, 0xa
shl rbx, 6
add rbx, qword [0x65411ca0]
cmp dword [rbx + 0x14], 0x10
je 0x6539747e
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor r8d, r8d
mov r9, rsi
mov edx, r12d
mov rcx, rbp
call qword [rbx + 0x20]
test eax, eax
jne 0x65397471
lea rbp, [rsp + 0x30]
lea r12, [rsi + 0x10a0]
mov edx, 0x10
mov rcx, rbp
call fcn.6539e120
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call qword [rbx + 0x28]
test eax, eax
jne 0x65397471
lea rcx, [rsi + 0x10e0]
mov edx, 0x10
mov dword [rsp + 0x2c], eax
lea rbx, [rsi + 0x1110]
call fcn.6539e120
lea rcx, [rsi + 0x10b0]
mov edx, 0x10
mov r13, rbx
call fcn.6539e120
mov dword [rsi + 0x10f0], edi
mov dword [rsi + 0x10f8], 0
mov edx, 0x10
mov dword [rsi + 0x10f4], 0
mov dword [rsi + 0x10fc], 0
mov rcx, rbp
mov qword [rsi + 0x1100], 0
mov qword [rsi + 0x1108], 0
xor edi, edi
call fcn.6539e120
mov eax, dword [rsp + 0x2c]
mov r8, r13
mov rdx, rbp
mov rcx, r12
mov dword [rsp + 0x2c], eax
mov byte [rsp + 0x30], dil
call fcn.653a0b10
lea edx, [rdi + 1]
lea r8, [r13 + 0x10]
mov rcx, r12
mov byte [rsp + 0x30], dl
mov rdx, rbp
call fcn.653a0b10
lea ecx, [rdi + 2]
lea r8, [r13 + 0x20]
mov rdx, rbp
mov byte [rsp + 0x30], cl
mov rcx, r12
call fcn.653a0b10
lea r8d, [rdi + 3]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r8b
lea r8, [r13 + 0x30]
call fcn.653a0b10
lea r9d, [rdi + 4]
lea r8, [r13 + 0x40]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r9b
call fcn.653a0b10
lea r10d, [rdi + 5]
lea r8, [r13 + 0x50]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r10b
call fcn.653a0b10
lea r11d, [rdi + 6]
lea r8, [r13 + 0x60]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r11b
call fcn.653a0b10
lea eax, [rdi + 7]
lea r8, [r13 + 0x70]
mov rdx, rbp
mov rcx, r12
add edi, 8
sub r13, 0xffffffffffffff80
mov byte [rsp + 0x30], al
call fcn.653a0b10
cmp edi, 0x100
mov eax, dword [rsp + 0x2c]
jne 0x65397537
mov rdi, qword [0x65411cd0]
lea r13, [rsi + 0x10110]
lea rsi, [rbx + 0x1000]
lea rbp, [rbx + 0x2000]
mov r12, rsi
nop word cs:[rax + rax]
movzx ecx, byte [rbx + 0xe]
movzx edx, byte [rbx + 0xf]
add r12, 0x10
add rbx, 0x10
mov byte [r12 - 1], cl
movzx r8d, byte [rbx - 3]
add edx, edx
mov byte [r12 - 2], r8b
movzx r9d, byte [rbx - 4]
mov byte [r12 - 3], r9b
movzx r10d, byte [rbx - 5]
mov byte [r12 - 4], r10b
movzx r11d, byte [rbx - 6]
mov byte [r12 - 5], r11b
movzx ecx, byte [rbx - 7]
mov byte [r12 - 6], cl
movzx r8d, byte [rbx - 8]
mov byte [r12 - 7], r8b
movzx r9d, byte [rbx - 9]
mov byte [r12 - 8], r9b
movzx r10d, byte [rbx - 0xa]
mov byte [r12 - 9], r10b
movzx r11d, byte [rbx - 0xb]
mov byte [r12 - 0xa], r11b
movzx ecx, byte [rbx - 0xc]
movsxd r11, edx
add edx, 1
movsxd rdx, edx
mov byte [r12 - 0xb], cl
movzx r8d, byte [rbx - 0xd]
mov byte [r12 - 0xc], r8b
movzx r9d, byte [rbx - 0xe]
movzx r8d, byte [rdi + r11]
mov byte [r12 - 0xd], r9b
movzx r10d, byte [rbx - 0xf]
mov byte [r12 - 0xe], r10b
movzx ecx, byte [rbx - 0x10]
mov byte [r12 - 0x10], r8b
xor cl, byte [rdi + rdx]
mov byte [r12 - 0xf], cl
cmp r12, rbp
jne 0x65397630
cmp r13, rsi
mov rbx, rsi
jne 0x65397615
jmp 0x65397471
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x6540d307]
mov r8d, 0x24
call fcn.6539d5e0
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x6540d2fb]
mov r8d, 0x23
call fcn.6539d5e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop