Function at 0x140085880
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x58
mov rsi, rcx
mov rcx, qword [rcx]
xor eax, eax
nop
test al, al
jne 0x140085890
cmp rcx, 0xffffffffffffffff
je 0x140085b40
lea rax, [rcx + 1]
nop word cs:[rax + rax]
mov r8d, dword [0x14158e180]
mov edx, dword [0x14158e184]
mov r9d, r8d
not r9d
and r9d, edx
not edx
and edx, r8d
sub edx, r9d
mov r8d, edx
xor r8d, 0xc38c7e0
and edx, 0x53c7381f
add edx, edx
sub edx, r8d
mov r8d, edx
and r8d, 0x108cef95
mov r9d, r8d
not r9d
mov r10d, edx
and r10d, 0xcc04
and r9d, 0x37af23f3
imul r9d, r10d
and edx, 0x108c2391
or r8d, 0x37af23f3
imul r8d, edx
add r8d, r9d
cmp r8d, 0xb333e2e5
je 0x1400858b0
lea rdx, [rcx + rcx]
cmp rdx, rax
cmova rax, rdx
cmp rax, 9
mov edi, 8
cmovae rdi, rax
mov r8, rdi
not r8
shr r8, 0x3f
test rcx, rcx
je 0x140085a49
mov eax, 0x960f9fb7
nop word cs:[rax + rax]
mov edx, dword [0x14158e188]
xor edx, dword [0x14158e18c]
xor edx, 0x4a725053
imul rdx, rax
shr rdx, 0x3f
imul edx, edx, 0xe292a4ee
cmp edx, 0xcbe30c59
je 0x140085960
mov eax, dword [0x14158e190]
xor edx, edx
div dword [0x14158e194]
add eax, 0x9e5cef60
or eax, 0x6880fe82
and eax, 0x78eafebf
cmp eax, 0x4ecc45da
jne 0x1400859c0
mov rax, qword [rsi + 8]
mov qword [rsp + 0x28], rax
nop word cs:[rax + rax]
mov eax, dword [0x14158e198]
xor edx, edx
div dword [0x14158e19c]
and eax, 0xef9a6337
xor eax, 0xd92c0744
add eax, 0xb0d306a0
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x28], rdx
cmp eax, 0x5b60b56
jb 0x1400859c0
xor eax, eax
test al, al
je 0x140085a00
mov qword [rsp + 0x38], rcx
nop dword [rax + rax]
mov eax, dword [0x14158e1a0]
mov edx, dword [0x14158e1a4]
mov r9d, eax
not r9d
and r9d, edx
mov r10d, edx
not r10d
and r10d, eax
imul r10d, r9d
mov r9d, eax
and r9d, edx
or eax, edx
imul eax, r9d
add eax, r10d
or eax, 0x20cc0abb
mov qword [rsp + 0x38], rcx
cmp eax, 0xc52f1f43
je 0x140085a00
mov eax, 1
jmp 0x140085a4b
xor eax, eax
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rdx, r8
mov r8, rdi
call fcn.14020c120
cmp qword [rsp + 0x40], 0
jne 0x140085ad0
mov rax, qword [rsp + 0x48]
mov qword [rsi + 8], rax
mov qword [rsi], rdi
nop dword [rax]
mov eax, dword [0x14158e1c0]
mov ecx, dword [0x14158e1c4]
not ecx
mov edx, eax
or edx, ecx
and ecx, eax
not edx
or edx, ecx
mov eax, edx
and eax, 0xa04b6b9
add eax, eax
neg eax
add eax, edx
add eax, 0xa04b6b9
mov ecx, eax
and ecx, 0xfbddbdc
or eax, 0xfbddbdc
add eax, ecx
or eax, 0xe5962abf
cmp eax, 0x94ee612d
jb 0x140085a80
add rsp, 0x58
pop rdi
pop rsi
ret
mov eax, dword [0x14158e1a8]
or eax, dword [0x14158e1ac]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x99346f9a
and ecx, 0x66cb9065
imul ecx, edx
mov edx, eax
and edx, 0x66cb9065
or eax, 0x66cb9065
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xaa4ce7f3
or eax, 0x55b3180c
and eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x4fca51c8
and ecx, 0xb035ae37
imul ecx, edx
mov edx, eax
and edx, 0xb035ae37
or eax, 0xb035ae37
imul eax, edx
add eax, ecx
cmp eax, 0x4159d4e5
ja 0x140085ad0
mov ecx, dword [0x14158e1b0]
mov edx, dword [0x14158e1b4]
mov eax, ecx
not eax
mov r8d, edx
not r8d
mov r9d, eax
and r9d, 0x5b3bb768
and ecx, 0xa4c44897
or ecx, r9d
or eax, r8d
and r8d, 0x5b3bb768
and edx, 0xa4c44897
or edx, r8d
xor edx, ecx
not eax
or eax, edx
mov ecx, eax
xor ecx, 0x3f726583
or eax, 0xc08d9a7c
and eax, ecx
mov ecx, eax
and ecx, 0x3f2967fd
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x5b0ccdc0
cmp eax, 0x761e8b89
ja 0x140085be0
mov eax, dword [0x14158e1b8]
xor edx, edx
div dword [0x14158e1bc]
imul eax, eax, 0x1610e7af
or eax, 0xf47b3f3e
mov ecx, eax
and ecx, 0x536c6553
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0xd36c6553
ud2
ud2