Function at 0x1401f7dc0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r13, r8
mov rdi, rdx
mov rsi, rcx
mov r12, qword [rsp + 0xb0]
mov rcx, qword [rcx + 0x38]
add rcx, r12
setb dl
xor eax, eax
movabs r8, 0xfffffffe0
cmp rcx, r8
ja 0x1401f8041
test dl, dl
jne 0x1401f8041
mov r14, r9
mov rbx, qword [rsi + 0x170]
mov r15, qword [rsi + 0x160]
mov rax, qword [rsi + 0x168]
mov qword [rsp + 0x28], rax
mov qword [rsi + 0x38], rcx
cmp dword [rsi + 0x184], 0
je 0x1401f7e4d
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
mov rax, r15
call qword [case.0x1401e7f70.0]
mov dword [rsi + 0x184], 0
mov eax, dword [rsi + 0x180]
test eax, eax
je 0x1401f7eb1
test r12, r12
je 0x1401f8036
mov cl, byte [r13]
inc r13
mov edx, eax
mov r8b, byte [rsi + rdx + 0x10]
xor r8b, cl
mov byte [r14], r8b
xor byte [rsi + rdx + 0x40], cl
inc r14
lea r8, [r12 - 1]
inc eax
and eax, 0xf
je 0x1401f7e90
cmp r12, 1
mov r12, r8
jne 0x1401f7e60
test eax, eax
jne 0x1401f8036
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
mov rax, r15
mov r15, r8
call qword [case.0x1401e7f70.0]
mov r8, r15
jmp 0x1401f7eb4
mov r8, r12
mov ebp, dword [rsi + 0xc]
bswap ebp
cmp r8, 0xc00
jb 0x1401f7f7a
lea rax, [rsi + 0x60]
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x40]
mov qword [rsp + 0x30], rax
lea r12, [rsi + 0x10]
mov rax, r14
mov rcx, r13
mov qword [rsp + 0x40], r8
mov r15, rcx
mov r14, rax
mov r9d, 0xc00
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
mov r8, r15
mov rax, qword [rsp + 0x28]
call qword [case.0x1401e7f70.0]
xor r13d, r13d
mov rcx, rsi
mov rdx, r12
mov r8, rdi
mov rax, rbx
call qword [case.0x1401e7f70.0]
inc ebp
mov eax, ebp
bswap eax
mov dword [rsi + 0xc], eax
mov rax, qword [rsi + 0x10]
xor rax, qword [r15 + r13]
mov qword [r14 + r13], rax
mov rax, qword [rsi + 0x18]
xor rax, qword [r15 + r13 + 8]
mov qword [r14 + r13 + 8], rax
add r13, 0x10
cmp r13, 0xc00
jne 0x1401f7f0e
mov r8, qword [rsp + 0x40]
add r8, 0xfffffffffffff400
lea rax, [r14 + r13]
lea rcx, [r15 + r13]
cmp r8, 0xbff
ja 0x1401f7ee2
add r14, r13
add r15, r13
mov r13, r15
mov r9, r8
and r9, 0xff0
je 0x1401f7ff0
lea rdx, [rsi + 0x60]
lea rcx, [rsi + 0x40]
mov r15, r8
mov r8, r13
mov rax, qword [rsp + 0x28]
call qword [case.0x1401e7f70.0]
mov r8, r15
lea r15, [rsi + 0x10]
mov rcx, rsi
mov rdx, r15
mov r12, r8
mov r8, rdi
mov rax, rbx
call qword [case.0x1401e7f70.0]
mov r8, r12
inc ebp
mov eax, ebp
bswap eax
mov dword [rsi + 0xc], eax
mov rax, qword [rsi + 0x10]
xor rax, qword [r13]
mov qword [r14], rax
mov rax, qword [rsi + 0x18]
xor rax, qword [r13 + 8]
mov qword [r14 + 8], rax
add r14, 0x10
add r13, 0x10
add r8, 0xfffffffffffffff0
cmp r8, 0xf
ja 0x1401f7fa6
test r8, r8
je 0x1401f8034
lea rdx, [rsi + 0x10]
mov rcx, rsi
mov r15, r8
mov r8, rdi
mov rax, rbx
call qword [case.0x1401e7f70.0]
mov r8, r15
inc ebp
bswap ebp
mov dword [rsi + 0xc], ebp
xor eax, eax
mov ecx, eax
mov dl, byte [r13 + rcx]
xor byte [rsi + rcx + 0x40], dl
xor dl, byte [rsi + rcx + 0x10]
mov byte [r14 + rcx], dl
inc rax
cmp r8, rax
jne 0x1401f8017
jmp 0x1401f8036
xor eax, eax
mov dword [rsi + 0x180], eax
mov eax, 1
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret