Function at 0x65397440
Capabilities:
Encode data using xor

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 0x65397739
test r8, r8
je 0x65397720
mov ecx, edx
call fcn.6539d640
test eax, eax
jne 0x65397491
movsxd rax, edi
lea rbx, [rax + rax*2]
mov eax, 0xa
shl rbx, 6
add rbx, qword [0x65411ca0]
cmp dword [rbx + 0x14], 0x10
je 0x6539749e
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 0x65397491
lea rbp, [rsp + 0x30]
lea r12, [rsi + 0x10a0]
mov edx, 0x10
mov rcx, rbp
call fcn.6539e140
mov r8, rsi
mov rdx, r12
mov rcx, rbp
call qword [rbx + 0x28]
test eax, eax
jne 0x65397491
lea rcx, [rsi + 0x10e0]
mov edx, 0x10
mov dword [rsp + 0x2c], eax
lea rbx, [rsi + 0x1110]
call fcn.6539e140
lea rcx, [rsi + 0x10b0]
mov edx, 0x10
mov r13, rbx
call fcn.6539e140
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.6539e140
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.653a0b30
lea edx, [rdi + 1]
lea r8, [r13 + 0x10]
mov rcx, r12
mov byte [rsp + 0x30], dl
mov rdx, rbp
call fcn.653a0b30
lea ecx, [rdi + 2]
lea r8, [r13 + 0x20]
mov rdx, rbp
mov byte [rsp + 0x30], cl
mov rcx, r12
call fcn.653a0b30
lea r8d, [rdi + 3]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r8b
lea r8, [r13 + 0x30]
call fcn.653a0b30
lea r9d, [rdi + 4]
lea r8, [r13 + 0x40]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r9b
call fcn.653a0b30
lea r10d, [rdi + 5]
lea r8, [r13 + 0x50]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r10b
call fcn.653a0b30
lea r11d, [rdi + 6]
lea r8, [r13 + 0x60]
mov rdx, rbp
mov rcx, r12
mov byte [rsp + 0x30], r11b
call fcn.653a0b30
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.653a0b30
cmp edi, 0x100
mov eax, dword [rsp + 0x2c]
jne 0x65397557
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 0x65397650
cmp r13, rsi
mov rbx, rsi
jne 0x65397635
jmp 0x65397491
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x6540d307]
mov r8d, 0x24
call fcn.6539d600
lea rdx, str.src_encauth_gcm_gcm_init.c
lea rcx, [0x6540d2fb]
mov r8d, 0x23
call fcn.6539d600
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop