Function at 0x1401f0160
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], rcx
mov eax, 0x10
mov qword [rbp - 0x20], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x20]
mov rcx, rsp
mov qword [rbp - 0x18], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x10], rax
sub rsp, 0x20
call fcn.1401f245b
mov rcx, qword [rbp - 8]
add rsp, 0x20
mov qword [rbp + 8], rax
add rax, 0x50
mov qword [rbp], rax
sub rsp, 0x20
call fcn.1401ed360
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 8]
mov dword [rbp + 0x14], ecx
cmp byte [rax + 0x50], 0
jne 0x1401f0594
mov rcx, qword [rbp - 8]
sub rsp, 0x20
call fcn.1401ef8e0
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp]
mov dword [rbp - 0x24], ecx
cmp byte [rax], 0
jne 0x1401f0594
mov eax, dword [rbp - 0x24]
mov ecx, dword [rbp + 0x14]
movsxd r8, ecx
movsxd rdx, eax
mov rcx, rdx
add rcx, r8
mov qword [rbp - 0x30], rcx
mov rax, rcx
xor rax, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x1401f023d
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x1401f0594
mov rax, qword [rbp - 0x30]
xor ecx, ecx
sub rcx, rax
movabs rax, 0x3700a4b025850a12
movabs rdx, 0x3700a4b025850a12
xor rax, rdx
movabs rdx, 0xa37caf6a09ad207c
movabs r8, 0x5c83509589ad207c
xor rdx, r8
sub rax, rdx
add rcx, rax
xor eax, eax
sub rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x1401f02a4
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
jmp 0x1401f0594
mov ecx, 0x983
sub rsp, 0x20
call fcn.14006fe60
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp]
mov qword [rbp - 0x38], rcx
mov al, byte [rax]
mov cl, 0xae
xor cl, 0xae
cmp al, cl
jne 0x1401f0579
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
cmp rax, rcx
jl 0x1401f02e6
jmp 0x1401f0606
mov ecx, 0x30
mov edx, 8
sub rsp, 0x20
call fcn.14001ec20
add rsp, 0x20
mov qword [rbp - 0x50], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x52c
sub rsp, 0x20
call fcn.1400704f9
mov rdx, qword [rbp]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x50]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401f054e
mov eax, dword [0x140223a20]
mov ecx, dword [0x140223a24]
xor ecx, 0xc5dcc6f8
xor edx, edx
div ecx
mov r8d, 0xd0c4ef54
xor r8d, 0xc4c25c62
mov ecx, 0x8278d475
xor ecx, 0x7d872b8a
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x1406b336
or eax, 0x1406b336
imul eax, edx
add eax, ecx
mov edx, 0xffffffff
xor edx, 0x9e8a4b32
mov ecx, eax
and ecx, edx
mov r8d, 0x7ffc0884
xor r8d, 0xe17643b6
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
xor ecx, ecx
sub ecx, 0xd9ef2517
add eax, ecx
cmp eax, 0x8d92783e
jbe 0x1401f060c
mov ecx, dword [0x140223a28]
mov eax, 0xf24b9aef
xor eax, 0x674e0c32
xor ecx, eax
imul ecx, dword [0x140223a2c]
mov eax, 0xb559e56f
xor eax, 0x1f5cfcc0
or ecx, eax
mov edx, 0xce8bd9a2
xor edx, 0x4b483e25
mov eax, ecx
and eax, edx
mov edx, 0xb256aea6
xor edx, 0x37954921
xor ecx, edx
or eax, ecx
xor eax, 0x90d65ee9
mov dword [rbp - 0x64], eax
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov qword [rbp - 0x70], rax
mov word [rbp + 0x2e], 0x90a
lea rcx, [rbp + 0x2e]
sub rsp, 0x20
call fcn.140070140
mov rcx, qword [rbp]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x64]
mov qword [rbp - 0x60], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x51], cl
cmp eax, 0xfa61c302
je 0x1401f03cf
mov dl, byte [rbp - 0x51]
mov cl, 1
xor eax, eax
test dl, 1
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401f048a
jmp 0x1401f054e
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x60]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001fd14
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x70]
add rsp, 0x20
mov rcx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rax
lea rcx, [rbp + 0x18]
sub rsp, 0x20
call fcn.140081440
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp]
mov rax, qword [rbp - 0x70]
add rsp, 0x20
mov r8, qword [rbp + 0x18]
mov qword [rcx + 0x10], r8
mov r8, qword [rbp + 0x20]
mov qword [rcx + 0x18], r8
mov cl, 1
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401f054e
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp - 8]
mov rcx, qword [0x14022d568]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x14022d570]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.14002c7a0
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x70]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
mov rax, qword [rbp]
mov dl, byte [rbp - 0x41]
mov rcx, qword [rbp - 0x40]
mov byte [rbp - 0x71], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401e5c53
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
je 0x1401f057e
jmp 0x1401f0594
mov al, byte [rbp - 0x71]
mov rdx, qword [rbp]
mov cl, 0x51
xor cl, 0x51
mov byte [rdx], al
cmp al, cl
je 0x1401f0606
sub rsp, 0x20
call fcn.1401e7dfe
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x1401f0606
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x1401f0606
mov rax, qword [rbp]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401e7e10
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.1400a4060
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401f0606
sub rsp, 0x20
call fcn.1401e7e3d
add rsp, 0x20
lea rsp, [rbp + 0x30]
pop rbp
ret
xchg ebp, eax
not dword [rsi - 0x42]
jmp 0x1401f03cf