Function at 0x62456550
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 0x62456849
test r8, r8
je 0x62456830
mov ecx, edx
call fcn.6245c750
test eax, eax
jne 0x624565a1
movsxd rax, edi
lea rbx, [rax + rax*2]
mov eax, 0xa
shl rbx, 6
add rbx, qword [0x624d0b40]
cmp dword [rbx + 0x14], 0x10
je 0x624565ae
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 0x624565a1
lea rbp, [rsp + 0x30]
lea r12, [rsi + 0x10a0]
mov edx, 0x10
mov rcx, rbp
call fcn.6245d250
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call qword [rbx + 0x28]
test eax, eax
jne 0x624565a1
lea rcx, [rsi + 0x10e0]
mov edx, 0x10
mov dword [rsp + 0x2c], eax
lea rbx, [rsi + 0x1110]
call fcn.6245d250
lea rcx, [rsi + 0x10b0]
mov edx, 0x10
mov r13, rbx
call fcn.6245d250
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.6245d250
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.6245fc40
lea edx, [rdi + 1]
lea r8, [r13 + 0x10]
mov rcx, r12
mov byte [rsp + 0x30], dl
mov rdx, rbp
call fcn.6245fc40
lea ecx, [rdi + 2]
lea r8, [r13 + 0x20]
mov rdx, rbp
mov byte [rsp + 0x30], cl
mov rcx, r12
call fcn.6245fc40
lea r8d, [rdi + 3]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r8b
lea r8, [r13 + 0x30]
call fcn.6245fc40
lea r9d, [rdi + 4]
lea r8, [r13 + 0x40]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r9b
call fcn.6245fc40
lea r10d, [rdi + 5]
lea r8, [r13 + 0x50]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r10b
call fcn.6245fc40
lea r11d, [rdi + 6]
lea r8, [r13 + 0x60]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r11b
call fcn.6245fc40
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.6245fc40
cmp edi, 0x100
mov eax, dword [rsp + 0x2c]
jne 0x62456667
mov rdi, qword [0x624d0b70]
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 0x62456760
cmp r13, rsi
mov rbx, rsi
jne 0x62456745
jmp 0x624565a1
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x624cc1a7]
mov r8d, 0x24
call fcn.6245c710
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x624cc19b]
mov r8d, 0x23
call fcn.6245c710
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop