Function at 0x14005c660
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
mov rdi, rdx
mov r9, rcx
nop dword [rax]
test rdi, rdi
sete al
mov edx, dword [0x141dc7ea0]
add edx, dword [0x141dc7ea4]
xor edx, 0xc56dbe82
add edx, 0x4da1a063
xor edx, 0xda55539c
cmp r9, 0xfffffffffffffeaa
setl cl
cmp edx, 0xfb051ed6
ja 0x14005c670
or cl, al
je 0x14005c6b4
xor r8d, r8d
xor eax, eax
jmp 0x14005ca30
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14005c6c0
mov r8d, 0x7ff
cmp r9, 0x134
jle 0x14005c6da
xor eax, eax
jmp 0x14005ca30
test rdi, rdi
je 0x14005c6e9
bsr rsi, rdi
xor rsi, 0x3f
jmp 0x14005c6ee
mov esi, 0x40
mov ecx, esi
shl rdi, cl
mov rcx, r9
shl rcx, 4
lea rbx, [0x141db55f8]
mov rax, rdi
mul qword [rcx + rbx + 0x1560]
mov r10, rax
mov r11, rdx
mov eax, r11d
not eax
test eax, 0x1ff
jne 0x14005c764
add rcx, rbx
add rcx, 0x1560
nop dword [rax + rax]
mov ebx, dword [0x141dc7ea8]
and ebx, dword [0x141dc7eac]
add ebx, 0x1495b96
mov rax, rdi
mul qword [rcx + 8]
xor ebx, 0x129023c
or ebx, 0x38525543
cmp ebx, 0x25a18ef8
je 0x14005c730
add r10, rdx
adc r11, 0
mov eax, 0xa516cf77
lea rcx, [r9 + 0x1b]
nop dword [rax]
mov edi, dword [0x141dc7eb0]
add edi, dword [0x141dc7eb4]
xor edi, 0xf16eee99
add edi, 0xbb4f4505
imul rdi, rax
shr rdi, 0x3e
cmp r10, 0xffffffffffffffff
setne dl
cmp rcx, 0x53
setb bl
cmp edi, 0x67a84ed0
ja 0x14005c770
or bl, dl
je 0x14005c901
mov rax, r11
shr rax, 0x3f
lea rcx, [rax + 9]
nop dword [rax]
mov edx, dword [0x141dc7eb8]
or edx, dword [0x141dc7ebc]
imul rdx, rdx, 0x54c8758f
shr rdx, 0x3e
imul edx, edx, 0xd5eb1e08
imul rdx, rdx, 0x5ee3095b
shr rdx, 0x3e
mov rdi, r11
shr rdi, cl
cmp edx, 0xb7b15643
je 0x14005c7c0
imul ebx, r9d, 0x3526a
sar ebx, 0x10
add ebx, 0x3f
sub ebx, esi
add ebx, eax
nop word [rax + rax]
mov eax, dword [0x141dc7ec0]
sub eax, dword [0x141dc7ec4]
add eax, 0x857941c5
or eax, 0xa8627b65
xor eax, 0xb0154613
cmp eax, 0x345a0160
jb 0x14005c810
cmp ebx, 0xfffffc02
jge 0x14005c90e
nop
mov eax, dword [str.__r_D]
and eax, dword [0x141dc7edc]
and eax, 0x97f67e4b
imul eax, eax, 0xa0cd0a37
add eax, 0x2f1cec85
cmp eax, 0xe6285eb6
jb 0x14005c840
cmp ebx, 0xfffffbc3
jb 0x14005c6aa
mov ecx, 2
sub ecx, ebx
and ecx, 0x3f
nop dword [rax]
mov eax, dword [0x141dc7ef8]
sub eax, dword [0x141dc7efc]
add eax, 0x12e159cd
or eax, 0x21ee716d
imul rdx, rax, 0x182ff8d5
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
cmp eax, 0xc00c61de
ja 0x14005c880
nop word cs:[rax + rax]
mov eax, dword [0x141dc7f00]
and eax, dword [0x141dc7f04]
add eax, 0x28829250
or eax, 0xca1eab9f
mov rdx, rdi
shr rdx, cl
bt rdi, rcx
adc rdx, 0
cmp eax, 0xee966153
je 0x14005c8c0
mov rax, rdx
shr rax, 1
xor r8d, r8d
shr rdx, 0x35
setne r8b
jmp 0x14005ca30
mov r8d, 0xffffffff
xor eax, eax
jmp 0x14005ca30
mov eax, dword [0x141dc7ec8]
xor edx, edx
div dword [0x141dc7ecc]
add r9, 4
mov eax, dword [0x141dc7ed0]
add eax, dword [0x141dc7ed4]
imul eax, eax, 0x8b6b73d9
add eax, 0x795c9fcf
cmp eax, 0x513148df
jb 0x14005c920
movabs rax, 0xfffffffffffffe
movabs rsi, 0x3fffffffffffff
and rax, rdi
xor edx, edx
jmp 0x14005c974
cmp r10, 2
cmovae r14, rdi
cmp r9, 0x1c
cmovae r14, rdi
test dl, dl
je 0x14005c995
mov r14d, edi
and r14d, 3
mov r15, rdi
shl r15, cl
xor r14, 1
xor r15, r11
or r15, r14
mov r14, rax
je 0x14005c960
mov r14, rdi
jmp 0x14005c960
mov ecx, r14d
and ecx, 1
add rcx, r14
cmp rsi, rcx
adc ebx, 0x3ff
cmp ebx, 0x7fe
jbe 0x14005c9b3
xor eax, eax
jmp 0x14005ca30
mov r8, rcx
shr r8, 1
movabs r9, 0x7fefffffffffffff
mov eax, dword [0x141dc7ee0]
xor edx, edx
div dword [0x141dc7ee4]
and r8, r9
xor edx, edx
nop word cs:[rax + rax]
mov r9d, dword [0x141dc7ee8]
xor r9d, dword [0x141dc7eec]
add r9d, 0x1ca7e2af
imul rax, r9, 0x38a79c6b
shr rax, 0x20
sub r9d, eax
shr r9d, 1
add r9d, eax
shr r9d, 0x1f
cmp rcx, rsi
mov rax, r8
cmova rax, rdx
cmp r9d, 0x7544333e
ja 0x14005c9e0
mov r8d, ebx
nop word cs:[rax + rax]
mov ecx, dword [0x141dc7ef0]
sub ecx, dword [0x141dc7ef4]
imul ecx, ecx, 0x5afaf50
and ecx, 0xed6c03f0
cmp ecx, 0x72a31ef7
je 0x14005ca30
mov edx, r8d
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret