Function at 0x140015df0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
mov rcx, qword [rcx]
mov rdx, rcx
dec rdx
mov qword [rsp + 0x50], rdx
test rdx, rdx
setns al
or rcx, rdx
sets cl
add al, cl
inc al
test al, 1
jne 0x140015f28
mov eax, dword [0x1401d5b18]
xor eax, dword [0x1401d5b1c]
add eax, 0x8fabc1ac
mov ecx, 0x55e63e9b
xor ecx, 0x514089b4
add eax, ecx
sub eax, 0x8fabc1ac
mov ecx, 0xc51d8f6c
xor ecx, 0x7e6a41e2
add eax, ecx
or eax, 0x788ccee1
mov ecx, 0xdc1f5aee
xor ecx, 0x5a56f0f1
cmp eax, ecx
ja 0x140016175
mov rcx, qword [rsp + 0x48]
mov edx, dword [0x1401d5b20]
mov r8d, dword [0x1401d5b24]
xor eax, eax
sub eax, r8d
sub edx, eax
mov r8d, 0xf5a07192
xor r8d, 0xf5a07193
mov eax, edx
add eax, r8d
xor edx, 0xffffffff
or edx, 0xddf69111
add edx, eax
mov eax, edx
or eax, eax
xor eax, 0xffffffff
mov r8d, 0x1a7011a6
or r8d, 0x1a7011a6
xor r8d, 0xffffffff
or eax, r8d
mov r8d, 0x3ccfaa59
xor r8d, 0xc33055a6
xor eax, r8d
or edx, 0x1a7011a6
xor edx, 0xffffffff
mov r8d, 0xd890db5f
xor r8d, 0x276f24a0
xor eax, r8d
mov r8d, 0x3ddbac1c
xor r8d, 0xc22453e3
xor edx, r8d
and eax, edx
mov edx, 0x5f49094b
xor edx, 0x63ee4d82
xor eax, edx
add rcx, 8
mov qword [rsp + 0x38], rcx
cmp eax, 0x391eeca7
jbe 0x140016175
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x30], rax
jmp 0x140015f32
call fcn.1400077a3
jmp 0x140016170
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
cmp rax, rcx
jl 0x140016163
mov rax, qword [rsp + 0x28]
cmp rax, 0
jl 0x140016069
mov eax, dword [0x1401d5b28]
xor eax, 0x83b21aa9
mov edx, dword [0x1401d5b2c]
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
and eax, 0xb164c12e
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x3457cc6
xor edx, 0x4735b266
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x4470cea0
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x4470cea0
or eax, 0x4470cea0
imul eax, edx
add eax, ecx
mov edx, 0x8ff36f10
xor edx, 0xdb7e56ec
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, 0x548d39fc
sub eax, ecx
cmp eax, 0x6ea5a27e
jb 0x14001617e
mov r8, qword [rsp + 0x48]
mov eax, dword [str._eDr]
xor eax, 0xc7b29f01
xor edx, edx
div dword [0x1401d5b34]
mov ecx, 0x7138127d
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x28]
mov ecx, eax
and ecx, 0xfe860b52
xor eax, 0xfe860b52
or ecx, eax
mov eax, ecx
and eax, 0xdd20c336
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xdd20c336
or ecx, r9d
and eax, ecx
mov ecx, 0x6ed5a115
xor ecx, 0x912a5eea
xor eax, ecx
mov ecx, 0x903953b6
xor ecx, 0x1d0f8491
cmp rdx, qword [r8]
setl dl
mov byte [rsp + 0x27], dl
cmp eax, ecx
jbe 0x14001617e
mov al, byte [rsp + 0x27]
test al, 1
jne 0x140016076
jmp 0x140016069
mov rcx, rdx
call fcn.140013580
jmp 0x140016170
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
call fcn.140015dd3
mov rcx, qword [rsp + 0x28]
movabs rdx, 0xd1405146d07ae2dd
movabs rax, 0x2ebfaeb92f851d22
xor rdx, rax
mov rax, rcx
add rax, rdx
mov rdx, rax
xor rdx, rcx
cmp rdx, 0
setl dl
cmp rcx, 0
setne cl
and cl, dl
test cl, 1
mov qword [rsp + 0x30], rax
jne 0x1400160de
jmp 0x140015f32
mov eax, dword [0x1401d5b38]
xor eax, 0x9363c835
sub eax, dword [0x1401d5b3c]
mov ecx, 0xed398315
xor ecx, 0xb0db277f
or eax, ecx
and eax, 0x8eaf7e36
or eax, 0xd0b05e70
mov ecx, 0xc99930f4
xor ecx, 0x5ae6c83d
cmp eax, ecx
je 0x140016187
mov eax, dword [0x1401d5b40]
mov ecx, dword [0x1401d5b44]
xor ecx, 0xb1af366b
imul eax, ecx
imul eax, eax, 0x855711f5
mov ecx, 0x706009b
xor edx, edx
div ecx
mov ecx, 0xc0db50e9
xor edx, edx
div ecx
mov dword [rsp + 0x20], eax
call fcn.1400077a3
mov eax, dword [rsp + 0x20]
cmp eax, 0xf7fabb6c
ja 0x140016119
jmp 0x140016170
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
add rsp, 0x58
ret
or byte [rax], ch
sub al, 0xa0
jmp 0x140015e6c
add eax, 0x53e96f89
invalid
lahf
adc al, 0xb2
jge 0x140016175
mov edi, edi
invalid