Function at 0x1401fabd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov esi, r9d
test ecx, ecx
je 0x1401faca0
mov eax, esi
xor eax, 0x66bebaf7
mov ecx, edx
mov edx, eax
mov r8d, 0x49ceac20
call fcn.1400712d0
test al, 1
je 0x1401facf8
movzx eax, byte [0x140538a47]
nop
cmp al, 0xee
je 0x1401fac94
movzx ecx, byte [0x140538bd0]
mov edx, ecx
xor dl, 0xc2
mov eax, ecx
and al, 0x42
add al, al
add al, dl
add cl, 0x88
lock cmpxchg byte [0x140538a47], cl
jne 0x1401fac10
xor edx, edx
lea rax, [0x140538a20]
lea rcx, [0x140453810]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, 1
mov r10d, edx
and r10d, 0xfffffffe
or r10d, r9d
xor edx, 1
and r8d, 0x7ffffffe
or r8d, edx
not r8d
lea edx, [r10 + r8*2]
cmp edx, 0x27
jl 0x1401fac50
mov al, 0xee
xchg byte [0x140538a47], al
lea rax, [0x140538a20]
jmp 0x1401faf2e
test edx, edx
je 0x1401fad5a
movzx eax, byte [0x140538ae3]
cmp al, 0xdd
je 0x1401faeb8
mov edi, esi
xor edi, 0x97252a02
mov ebp, 0x75dffce7
lea rbx, [rsp + 0x3c]
nop dword [rax]
mov r8d, dword [0x140538bd4]
add r8d, ebp
mov rcx, rbx
mov edx, edi
call fcn.1401fb200
test al, 1
jne 0x1401fae15
cmp byte [rsp + 0x3c], 0xdd
jne 0x1401facd0
jmp 0x1401faeb8
movzx eax, byte [0x140538ad2]
cmp al, 0x6b
je 0x1401fae09
mov edi, esi
xor edi, 0xce423dc3
lea rbx, [rsp + 0x40]
lea r14, [rsp + 0x3f]
xor esi, 0xd305a6d6
nop
mov rcx, rbx
mov rdx, r14
mov r8d, edi
mov r9d, 0x17ca5124
call fcn.1401fb1e0
cmp byte [rsp + 0x41], 0
jne 0x1401fadbc
movzx ecx, byte [rsp + 0x3f]
mov edx, esi
mov r8d, 0x6ca9ba64
call fcn.1401fb240
test al, 1
je 0x1401fad20
jmp 0x1401fae09
movzx eax, byte [0x140538a90]
cmp al, 0x51
je 0x1401faf27
mov bl, 0x85
mov eax, esi
not eax
and eax, 0xfd614c55
mov edi, esi
xor edi, 0x29eb3aa
or edi, eax
not edi
or edi, eax
mov ebp, 0x6ac525be
nop word [rax + rax]
mov al, 3
lock cmpxchg byte [0x140538a90], bl
je 0x1401faec1
mov r8d, dword [0x140538bd4]
add r8d, ebp
mov ecx, eax
mov edx, edi
call fcn.1401fb1c0
test al, 1
je 0x1401fad90
jmp 0x1401faf27
xor edx, edx
lea rax, [0x140538ac0]
lea rcx, [0x1404538a0]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rdx + rax]
xor r9b, r8b
mov byte [rdx + rax], r9b
mov r8d, dword [0x140538bd4]
add edx, r8d
add edx, 0x1440fe9c
cmp edx, 0x12
jl 0x1401fadd0
mov al, 0x6b
xchg byte [0x140538ad2], al
lea rax, [0x140538ac0]
jmp 0x1401faf2e
xor edi, edi
lea r12, [0x140538ae0]
mov eax, esi
not eax
mov ecx, esi
and ecx, 0xf584967e
mov ebp, eax
and ebp, 0xa7b6981
or ebp, ecx
lea rbx, [rsp + 0x3d]
lea r14, [rsp + 0x48]
xor esi, 0xbd000de6
and eax, 0x42fff219
or esi, eax
not esi
or esi, eax
lea r15, [rsp + 0x3e]
nop word cs:[rax + rax]
lea rcx, [r12 + rdi]
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x28], 0xc46a9c15
mov edx, edi
mov r8, rbx
mov r9, r14
call fcn.1401fb260
movzx edx, byte [rsp + 0x3d]
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 0xef1be8da
mov r8, r15
mov r9d, esi
call fcn.1401f67c0
movzx eax, byte [rsp + 0x3e]
mov byte [rdi + r12], al
lea eax, [rdi + 1]
cmp eax, 2
jg 0x1401faeb0
inc rdi
jmp 0x1401fae60
mov al, 0xdd
xchg byte [0x140538ae3], al
lea rax, [0x140538ae0]
jmp 0x1401faf2e
xor eax, eax
lea rdi, [0x140538a80]
lea rbx, [0x140453870]
xor esi, 0x60b1ed6d
nop word [rax + rax]
movsxd r14, eax
lea rdx, [rdi + r14]
movzx ecx, byte [r14 + rdi]
movzx eax, byte [r14 + rbx]
mov r8d, ecx
xor r8b, al
and cl, al
add cl, cl
add cl, r8b
mov r8d, esi
mov r9d, 0x4703834b
call fcn.14015a0c0
mov eax, r14d
xor eax, 1
and r14d, 1
lea eax, [rax + r14*2]
cmp eax, 0x10
jl 0x1401faee0
mov al, 0x51
xchg byte [0x140538a90], al
lea rax, [0x140538a80]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret