Function at 0x1401fc420
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov rax, qword [rcx]
mov r12, rcx
mov rsi, rdx
mov ebp, r8d
mov rbx, r9
test r9, r9
je 0x1401fc550
cmp rax, r9
je 0x1401fc555
test rdx, rdx
je 0x1401fc5a0
test r8d, r8d
js 0x1401fc5a0
mov qword [rcx], r9
test byte [r9 + 0xc], 2
jne 0x1401fc5a0
mov eax, dword [r9 + 0x38]
cmp eax, 0x90
jg 0x1401fc5a0
mov edx, r8d
cmp r8d, eax
jg 0x1401fc5b5
lea r13, [rsp + 0x40]
mov rdi, r13
cmp ebp, 8
jae 0x1401fc6f0
xor eax, eax
test bpl, 4
jne 0x1401fc6d6
test bpl, 2
jne 0x1401fc6c5
test bpl, 1
jne 0x1401fc6e4
mov dword [rsp + 0x3c], ebp
cmp edx, 0x90
jne 0x1401fc6ab
movdqa xmm1, xmmword [0x140432f20]
xor eax, eax
lea rsi, [rsp + 0xd0]
nop
movdqa xmm0, xmmword [r13 + rax]
pxor xmm0, xmm1
movaps xmmword [rsi + rax], xmm0
add rax, 0x10
cmp rax, 0x90
jne 0x1401fc4e0
mov rcx, qword [r12 + 0x10]
mov r8, qword [rsp + 0x1c0]
mov rdx, rbx
call fcn.1401e9d60
test eax, eax
jne 0x1401fc609
xor eax, eax
mov rcx, r13
mov edx, 0x90
mov dword [rsp + 0x2c], eax
call fcn.1402f5e00
mov edx, 0x90
mov rcx, rsi
call fcn.1402f5e00
mov eax, dword [rsp + 0x2c]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
test rax, rax
je 0x1401fc5a0
test byte [rax + 0xc], 2
jne 0x1401fc5a0
test rsi, rsi
jne 0x1401fc580
mov rdx, qword [r12 + 0x10]
mov rcx, qword [r12 + 8]
call fcn.1401ea170
test eax, eax
setne al
movzx eax, al
jmp 0x1401fc5a2
mov edx, dword [rax + 0x38]
cmp edx, 0x90
jg 0x1401fc5a0
cmp ebp, edx
jg 0x1401fc5b2
mov edx, ebp
cmp ebp, 0x90
jbe 0x1401fc6fd
nop dword [rax]
xor eax, eax
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rbx, rax
mov rcx, qword [r12 + 8]
mov r8, qword [rsp + 0x1c0]
mov rdx, rbx
call fcn.1401e9d60
test eax, eax
je 0x1401fc5a0
movsxd r8, ebp
mov rcx, qword [r12 + 8]
test r8, r8
je 0x1401fc5ea
mov rdx, rsi
call qword [rcx + 0x28]
test eax, eax
je 0x1401fc5a0
mov rcx, qword [r12 + 8]
lea r13, [rsp + 0x40]
lea r8, [rsp + 0x3c]
mov rdx, r13
call fcn.1401ea020
test eax, eax
je 0x1401fc5a0
mov edx, dword [rsp + 0x3c]
jmp 0x1401fc4c0
movsxd r8, dword [rbx + 0x38]
mov rax, qword [r12 + 0x10]
test r8, r8
je 0x1401fc628
mov rdx, rsi
mov rcx, rax
call qword [rax + 0x28]
test eax, eax
je 0x1401fc518
movdqa xmm1, xmmword [0x140432f30]
xor eax, eax
nop word [rax + rax]
movdqa xmm0, xmmword [r13 + rax]
pxor xmm0, xmm1
movaps xmmword [rsi + rax], xmm0
add rax, 0x10
cmp rax, 0x90
jne 0x1401fc638
mov rcx, qword [r12 + 0x18]
mov r8, qword [rsp + 0x1c0]
mov rdx, rbx
call fcn.1401e9d60
test eax, eax
je 0x1401fc518
movsxd r8, dword [rbx + 0x38]
mov rax, qword [r12 + 0x18]
test r8, r8
je 0x1401fc68f
mov rdx, rsi
mov rcx, rax
call qword [rax + 0x28]
test eax, eax
je 0x1401fc518
mov rdx, qword [r12 + 0x10]
mov rcx, qword [r12 + 8]
call fcn.1401ea170
test eax, eax
setne al
movzx eax, al
jmp 0x1401fc51a
mov ecx, edx
mov r8d, 0x90
sub r8d, edx
add rcx, r13
xor edx, edx
call fcn.14034f288
jmp 0x1401fc4cc
movzx ecx, word [rsi + rax]
mov word [rdi + rax], cx
add rax, 2
jmp 0x1401fc4b2
mov eax, dword [rsi]
mov dword [rdi], eax
mov eax, 4
jmp 0x1401fc4a8
movzx ecx, byte [rsi + rax]
mov byte [rdi + rax], cl
jmp 0x1401fc4bc
mov ecx, ebp
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x1401fc49c
mov rbx, rax
jmp 0x1401fc48b