Function at 0x140015480
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov qword [rbp - 8], rcx
mov eax, dword [0x1401f1c28]
xor edx, edx
div dword [0x1401f1c2c]
add eax, 0xdc33d624
mov ecx, 0xe39488b0
xor ecx, 0xb16be13b
add eax, ecx
mov ecx, eax
and ecx, 0x14a6313d
xor ecx, 0xffffffff
mov edx, 0xf4a5a7b3
xor edx, 0xe003968e
add eax, edx
add eax, 1
add eax, ecx
cmp eax, 0xfd9b9ed7
jae 0x14001572d
mov rcx, qword [rbp - 8]
mov eax, dword [0x1401f1c30]
xor eax, 0xabd4e498
mov r9d, dword [0x1401f1c34]
mov r8d, r9d
not r8d
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, r9d
add eax, r8d
sub eax, edx
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x1e8c2bf5
and edx, 0xe173d40a
imul edx, r8d
mov r8d, eax
and r8d, 0xe173d40a
or eax, 0xe173d40a
imul eax, r8d
add eax, edx
mov edx, 0x88fa0db1
imul rax, rdx
shr rax, 0x3c
add eax, 0xa1ebbe62
mov dword [rbp - 0x1c], eax
mov eax, 0x10
mov qword [rbp - 0x30], rax
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp - 0x30]
mov rdx, rsp
mov qword [rbp - 0x28], rdx
call fcn.1401f0aa0
sub rsp, rax
mov eax, dword [rbp - 0x1c]
mov rdx, rsp
mov qword [rbp - 0x18], rdx
cmp rcx, 1
setl cl
mov byte [rbp - 9], cl
cmp eax, 0x39585e7d
jb 0x1400154d6
mov cl, byte [rbp - 9]
mov eax, 4
test cl, 1
mov qword [rbp - 0x38], rax
jne 0x140015724
jmp 0x1400155a1
mov rax, qword [rbp - 8]
cmp rax, 0x8000
jae 0x140015614
mov r8, qword [rbp - 0x28]
mov rcx, qword [rbp - 8]
movabs rdx, 0xbd5687b719e09a2d
movabs rax, 0xbd5687b719e09a2f
xor rdx, rax
sub rsp, 0x20
call fcn.14000d54b
add rsp, 0x20
test al, 1
jne 0x1400155ea
jmp 0x1400155fc
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x140015607
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x38], rax
jmp 0x140015724
mov r8, qword [rbp - 0x18]
mov rcx, qword [rbp - 8]
mov edx, 3
sub rsp, 0x20
call fcn.14000d54b
add rsp, 0x20
test al, 1
jne 0x14001563b
jmp 0x140015707
mov eax, dword [0x1401f1c38]
xor edx, edx
div dword [0x1401f1c3c]
mov ecx, 0x2a13c847
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0xebb377c1
xor eax, 0x6e089bf5
or ecx, eax
mov edx, 0x27439046
xor edx, 0xd8bc6fb9
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0xa8caf842
xor eax, 0xffffffff
mov edx, 0xa8caf842
and edx, 0xa8caf842
xor edx, 0xffffffff
and ecx, edx
mov edx, 0xb469f533
xor edx, 0x4b960acc
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x1e3e8d1e
jbe 0x140015736
mov eax, dword [0x1401f1c40]
mov r8d, dword [0x1401f1c44]
mov edx, r8d
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov ecx, 0x4e017c4c
xor ecx, 0x48b6bb6c
xor edx, edx
div ecx
xor eax, 0x79ed6d93
add eax, 0xdd84d677
mov dword [rbp - 0x44], eax
sub rsp, 0x20
call fcn.1400091c0
mov eax, dword [rbp - 0x44]
add rsp, 0x20
cmp eax, 0x587c335b
je 0x140015736
jmp 0x14001571c
mov rax, qword [rbp - 0x18]
mov rax, qword [rax]
mov ecx, 2
cqo
idiv rcx
mov qword [rbp - 0x50], rax
mov rax, qword [rbp - 0x50]
mov eax, dword [rbp - 0x50]
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 0x38]
mov rsp, rbp
pop rbp
ret
xor al, 0x4b
mov byte [rcx - 0x25f17], dh
push qword [rcx + rdx*2 + 0x6e]
je 0x140015789
outsb dx, byte [rsi]
jmp 0x1400156ab
rol dword [rcx], 1
ror dword [rcx - 0x7c3fde38], 0xf0
inc dword [rbx - 0x13450010]
sub al, 0x6b
jge 0x14001571d
sbb byte [rdx], al
retf 0x41bc