Function at 0x140045f70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
sub rsp, 0x48
mov rax, qword [rcx]
mov rdi, r9
mov rsi, r8
mov rbx, rdx
mov r14, rcx
call qword [rax + 0x20]
test al, al
jne 0x140045fa1
mov rcx, r14
call fcn.14000dd30
mov ecx, 4
mov qword [rsp + 0x78], rbp
call fcn.140029470
test al, al
je 0x140045ff2
cmp rdi, 8
jb 0x140045ff2
mov rbp, rdi
shr rbp, 3
imul rax, rbp, 0xfffffffffffffff8
add rdi, rax
mov qword [rsp + 0x88], rdi
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.14008d960
add rbx, 0x100
add rsi, 0x100
sub rbp, 1
jne 0x140045fd0
call fcn.140081770
test al, al
je 0x14004603c
cmp rdi, 4
jb 0x14004603c
mov rbp, rdi
shr rbp, 2
imul rax, rbp, 0xfffffffffffffffc
add rdi, rax
mov qword [rsp + 0x88], rdi
nop word [rax + rax]
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.14008c380
sub rbx, 0xffffffffffffff80
sub rsi, 0xffffffffffffff80
sub rbp, 1
jne 0x140046020
test rdi, rdi
je 0x1400463d4
mov qword [rsp + 0x40], r12
lea rdi, [rbx + 8]
lea rax, [rsi + 8]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r15
sub rbx, rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rax
nop dword [rax]
mov esi, dword [rbx + rax - 8]
mov r11d, dword [rdi]
mov r10d, dword [rdi - 4]
mov ebp, dword [rdi + 4]
mov r14d, dword [rdi + 8]
mov r15d, dword [rdi + 0xc]
mov r12d, dword [rdi + 0x10]
mov r13d, dword [rdi + 0x14]
mov edi, 8
mov rcx, qword [rsp + 0x70]
bswap r11d
mov r9d, r11d
bswap r10d
mov rax, qword [rcx + 8]
xor r9d, r10d
add rax, 0xf8
bswap esi
bswap ebp
bswap r14d
bswap r15d
bswap r12d
bswap r13d
nop
mov edx, r10d
mov ecx, r10d
ror ecx, 0xd
mov r8d, ebp
ror edx, 0x16
xor r8d, r11d
xor edx, ecx
mov ecx, r10d
ror ecx, 2
xor edx, ecx
mov ecx, r8d
and ecx, r9d
xor ecx, r11d
add edx, ecx
mov ecx, r15d
ror ecx, 0xb
sub esi, edx
sub r14d, esi
mov edx, r15d
ror edx, 0x19
mov r9d, r14d
xor edx, ecx
xor r9d, ebp
mov ecx, r15d
ror ecx, 6
xor edx, ecx
mov ecx, r13d
xor ecx, r12d
and ecx, r15d
xor ecx, r13d
add edx, ecx
mov ecx, r11d
add edx, dword [rax + 4]
ror ecx, 0xd
sub esi, edx
mov edx, r11d
ror edx, 0x16
xor edx, ecx
mov ecx, r11d
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, ebp
add edx, ecx
mov ecx, r12d
ror ecx, 0xb
sub r10d, edx
sub r15d, r10d
mov edx, r12d
ror edx, 0x19
mov r8d, r15d
xor edx, ecx
xor r8d, r14d
mov ecx, r12d
ror ecx, 6
xor edx, ecx
mov ecx, r13d
xor ecx, esi
and ecx, r12d
xor ecx, esi
add edx, ecx
mov ecx, ebp
add edx, dword [rax]
ror ecx, 0xd
sub r10d, edx
mov edx, ebp
ror edx, 0x16
xor edx, ecx
mov ecx, ebp
ror ecx, 2
xor edx, ecx
mov ecx, r8d
and ecx, r9d
xor ecx, r14d
add edx, ecx
mov ecx, r13d
sub r11d, edx
mov edx, r13d
sub r12d, r11d
ror edx, 0x19
ror ecx, 0xb
mov r9d, r12d
xor edx, ecx
xor r9d, r15d
mov ecx, r13d
ror ecx, 6
xor edx, ecx
mov ecx, r10d
xor ecx, esi
and ecx, r13d
xor ecx, r10d
add edx, ecx
mov ecx, r14d
add edx, dword [rax - 4]
ror ecx, 0xd
sub r11d, edx
mov edx, r14d
ror edx, 0x16
xor edx, ecx
mov ecx, r14d
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r15d
add edx, ecx
mov ecx, esi
ror ecx, 0xb
sub ebp, edx
sub r13d, ebp
mov edx, esi
ror edx, 0x19
mov r8d, r13d
xor edx, ecx
xor r8d, r12d
and r9d, r8d
mov ecx, esi
ror ecx, 6
xor r9d, r12d
xor edx, ecx
mov ecx, r11d
xor ecx, r10d
and ecx, esi
xor ecx, r11d
add edx, ecx
mov ecx, r15d
add edx, dword [rax - 8]
sub ebp, edx
ror ecx, 0xd
mov edx, r15d
ror edx, 0x16
xor edx, ecx
mov ecx, r15d
ror ecx, 2
xor edx, ecx
mov ecx, r10d
add edx, r9d
ror ecx, 0xb
sub r14d, edx
mov r9d, r13d
sub esi, r14d
mov edx, r10d
ror edx, 0x19
xor r9d, esi
xor edx, ecx
mov ecx, r10d
ror ecx, 6
xor edx, ecx
mov ecx, ebp
xor ecx, r11d
and ecx, r10d
xor ecx, ebp
add edx, ecx
mov ecx, r12d
add edx, dword [rax - 0xc]
sub r14d, edx
ror ecx, 0xd
mov edx, r12d
ror edx, 0x16
xor edx, ecx
mov ecx, r12d
ror ecx, 2
xor edx, ecx
mov ecx, r9d
and ecx, r8d
xor ecx, r13d
add edx, ecx
mov ecx, r11d
ror ecx, 0xb
sub r15d, edx
sub r10d, r15d
mov edx, r11d
ror edx, 0x19
mov r8d, r10d
xor edx, ecx
xor r8d, esi
mov ecx, r11d
ror ecx, 6
xor edx, ecx
mov ecx, r14d
xor ecx, ebp
and ecx, r11d
xor ecx, r14d
add edx, ecx
mov ecx, r13d
add edx, dword [rax - 0x10]
ror ecx, 0xd
sub r15d, edx
mov edx, r13d
ror edx, 0x16
xor edx, ecx
mov ecx, r13d
ror ecx, 2
xor edx, ecx
mov ecx, r8d
and ecx, r9d
xor ecx, esi
add edx, ecx
mov ecx, ebp
ror ecx, 0xb
sub r12d, edx
sub r11d, r12d
mov edx, ebp
ror edx, 0x19
mov r9d, r11d
xor edx, ecx
xor r9d, r10d
mov ecx, ebp
and r8d, r9d
ror ecx, 6
xor r8d, r10d
xor edx, ecx
mov ecx, r15d
xor ecx, r14d
and ecx, ebp
xor ecx, r15d
add edx, ecx
mov ecx, esi
add edx, dword [rax - 0x14]
sub r12d, edx
ror ecx, 0xd
mov edx, esi
ror edx, 0x16
xor edx, ecx
mov ecx, esi
ror ecx, 2
xor edx, ecx
mov ecx, r14d
ror ecx, 0xb
add edx, r8d
sub r13d, edx
mov edx, r14d
ror edx, 0x19
sub ebp, r13d
xor edx, ecx
mov ecx, r14d
ror ecx, 6
xor edx, ecx
mov ecx, r12d
xor ecx, r15d
and ecx, r14d
xor ecx, r12d
add edx, ecx
add edx, dword [rax - 0x18]
lea rax, [rax - 0x20]
sub r13d, edx
sub rdi, 1
jne 0x1400460c0
mov rax, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x20]
add rdi, 0x20
bswap esi
mov dword [rax - 8], esi
bswap r10d
mov dword [rax - 4], r10d
bswap r11d
mov dword [rax], r11d
bswap ebp
mov dword [rax + 4], ebp
bswap r14d
mov dword [rax + 8], r14d
bswap r15d
mov dword [rax + 0xc], r15d
bswap r12d
mov dword [rax + 0x10], r12d
bswap r13d
mov dword [rax + 0x14], r13d
add rax, 0x20
sub qword [rsp + 0x88], 1
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rax
jne 0x140046070
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x78]
add rsp, 0x48
pop r14
pop rdi
pop rsi
pop rbx
ret