Function at 0x1401ff030
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x18], rcx
call fcn.1401ffdd0
mov rax, qword [rbp - 0x18]
lea rcx, [rax + 0x168]
mov qword [rbp - 0x10], rcx
mov r8, qword [rax + 0x168]
mov rcx, qword [rax + 0x170]
mov qword [rbp - 0x30], rcx
add rax, 0xe8
mov qword [rbp - 0x20], rax
lea rax, [0x140473258]
neg rax
mov qword [rbp - 0x28], rax
jmp 0x1401ff0a8
mov r8, qword [rbp - 0x38]
add r8, 2
movsxd rax, dword [0x140473258]
mov ecx, dword [0x1405b3ce4]
nop word cs:[rax + rax]
mov ecx, dword [0x1405b3ce4]
cmp ecx, 0x1d
jg 0x1401ff0c0
neg rax
mov rcx, rax
mov rdx, qword [rbp - 0x28]
xor rcx, rdx
and rax, rdx
lea rsi, [rcx + rax*2]
neg rsi
mov eax, dword [0x1405b3ce0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14055a030]
mov edx, 0x284f3555
add eax, edx
cmp ecx, eax
jne 0x1401ff127
nop word cs:[rax + rax]
mov edi, dword [0x140473260]
mov eax, dword [0x1405b3ce0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401ff130
mov eax, dword [0x140473260]
jmp 0x1401ff110
cmp r8, qword [rbp - 0x30]
setne cl
sete al
movzx edx, byte [0x1405b35b9]
xor al, dl
not dl
and dl, cl
or dl, al
test dl, 1
je 0x1401ff171
test al, 1
jne 0x1401ff171
mov qword [rbp - 0x38], r8
movzx edx, word [r8]
test dx, dx
je 0x1401ff0a0
mov rcx, qword [rbp - 0x20]
call fcn.140204c60
jmp 0x1401ff0a0
lea rcx, [rbp - 0x40]
call fcn.1401ff620
mov rax, qword [rbp - 0x10]
mov rax, qword [rax]
mov cl, 1
test cl, cl
jne 0x1401ff334
jmp 0x1401ff36c
mov rdx, qword [rsi + 0x178]
sub rdx, rax
cmp rdx, 0x1000
jb 0x1401ff233
mov rcx, qword [rax - 8]
mov r8, rax
xor r8, 0xfffffffffffffff8
and rax, 0xfffffffffffffff8
movabs r9, 0x1a32c43005526bb4
add r9, qword [0x14055a038]
imul r9, rax
add r9, r8
sub r9, rcx
cmp r9, 0x20
setb al
movzx r8d, byte [0x1405b3c80]
mov r9d, r8d
xor r9b, al
mov r10d, r8d
and r10b, r9b
not r9b
and r9b, r10b
test r9b, 1
jne 0x1401ff203
or al, r8b
test al, 1
je 0x1401ff32f
mov rax, rdx
xor rax, 0x27
not rdx
movabs r8, 0x7fffffffffffffd8
and r8, rdx
or r8, rax
not r8
add r8, r8
mov rdx, rax
xor rdx, r8
and r8, rax
lea rdx, [rdx + r8*2]
mov rax, rcx
mov dword [rsp + 0x20], 0xbafd4ff4
mov rcx, rax
mov r8d, 0x7426d26a
mov r9d, 0xcb1de850
call fcn.1400a7e20
xorps xmm0, xmm0
mov rax, qword [rbp - 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
and ebx, r14d
movzx eax, word [0x140473240]
xor ecx, ecx
cmp ebx, 1
sbb ecx, ecx
add eax, 0x6d55
sub eax, r15d
movsx ecx, cx
not ecx
lea rdx, [fcn.1401ff030]
add edx, edx
add edx, 0xb20
nop
mov r8d, dword [0x1405b3ce4]
cmp r8d, 0x60
jg 0x1401ff319
mov r8d, dword [0x14055a040]
lea r9d, [rax + r8]
add r9d, 0x3f02
not r9d
mov r10d, ecx
xor r10d, r9d
and r10d, ecx
or r10d, r9d
not r10d
add r8d, 0xffffac57
cmp r10w, r8w
setne r8b
or r8b, byte [0x1405b3c80]
and r8b, 1
mov byte [0x1405b3c80], r8b
mov r8d, dword [0x14055a030]
mov r9d, r8d
xor r9d, 0x284f3556
and r8d, 0x284f3556
add r8d, r8d
mov r10d, r9d
xor r10d, r8d
and r8d, r9d
lea r8d, [r10 + r8*2]
xor r8d, edx
not r8d
test r8d, edx
je 0x1401ff4e2
mov r8d, dword [0x1405b3ce4]
cmp r8d, 0xb
jge 0x1401ff290
jmp 0x1401ff29d
call fcn.14040686c
mov ecx, 0xe70418b6
add ecx, dword [0x14055a030]
mov ebx, dword [0x140559f64]
mov edx, ebx
xor edx, ecx
and ecx, ebx
lea r14d, [rdx + rcx*2]
add r14d, 0x414b1ca0
mov dword [0x140559f64], r14d
mov ecx, dword [0x1405b3ce4]
cmp ecx, 0x48
jle 0x1401ff47c
mov ecx, 0xfb146391
add ecx, dword [0x140559f64]
mov edx, ecx
xor edx, 0x4eb9c6f
and ecx, 0x4eb9c6f
lea r8d, [rdx + rcx*2]
mov ecx, 0xbeb4e361
sub ecx, r8d
mov edx, dword [0x14055a030]
mov r9d, edx
not r9d
mov r10d, edx
and r10d, 0xd7b0caaa
mov r11d, r9d
and r11d, 0x284f3555
or r11d, r10d
mov r10d, edx
xor r10d, 0x284f3555
and r9d, 0x57b0caaa
or r9d, r10d
not r9d
lea r9d, [r11 + r9*2]
sub r9d, r8d
mov r8d, r9d
xor r8d, ecx
and r9d, ecx
lea r9d, [r8 + r9*2]
mov r8d, r9d
shl r8d, cl
add r8d, r9d
lea ecx, [r8 + r8]
mov r9d, r8d
sub r9d, ecx
imul r9d, ecx
mov ecx, r8d
neg ecx
mov r10d, ecx
xor r10d, r9d
and ecx, r9d
lea ecx, [r10 + rcx*2]
sub r8d, ecx
imul r8d, ecx
mov r9d, r8d
xor r9d, ecx
and r8d, ecx
lea ecx, [r9 + r8*2]
mov r8d, edx
sub r8d, ecx
neg ecx
lea r9d, [rdx + rcx]
add r9d, 0x284f3555
add r8d, edx
add r8d, 0x284f3555
lea ecx, [rdx + r8]
add ecx, 0xf534e0b
imul r9d, ecx
shl r9d, cl
neg r9d
lea ecx, [rdx + r9]
add ecx, 0x284f3555
add edx, r8d
mov r8d, 0xf0acb1f5
sub r8d, edx
mov edx, ecx
sub edx, r8d
imul r8d, ecx
add edx, edx
add edx, r8d
mov dword [0x140559f64], edx
jmp 0x1401ff334
test ebx, r14d
je 0x1401ff486
xor r15d, r15d
jmp 0x1401ff4d5
xor edx, edx
mov r15d, 0
test edi, edi
jle 0x1401ff4d5
mov ecx, 0x284f3557
xor r8d, r8d
nop word [rax + rax]
movsxd rdx, edx
movzx r9d, word [rsi + rdx]
mov r15d, r9d
xor r15d, r9d
not r15d
and r15d, r8d
xor r15d, r9d
mov r8d, dword [0x14055a030]
add r8d, ecx
mov r9d, edx
xor r9d, r8d
and r8d, edx
lea edx, [r9 + r8*2]
mov r8d, r15d
cmp edx, edi
jl 0x1401ff4a0
test rax, rax
mov rsi, qword [rbp - 0x18]
jne 0x1401ff190
mov rcx, qword [rbp - 0x20]
call fcn.140200680
lea rcx, [rsi + 0x98]
call fcn.14042df38
lea rcx, [rsi + 0x50]
call fcn.14042df38
mov rcx, rsi
call fcn.140427a04
nop
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret