Function at 0x140201500
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov eax, dword [0x1415ab518]
xor edx, edx
div dword [0x1415ab51c]
mov rsi, rcx
nop
mov eax, dword [0x1415ab520]
mov ecx, dword [0x1415ab524]
mov edx, ecx
and edx, eax
add eax, ecx
sub eax, edx
imul eax, eax, 0x13a41bbf
add eax, 0x375ed671
mov ecx, eax
not ecx
or eax, 0xf790aa55
or ecx, 0x86f55aa
and ecx, eax
cmp ecx, 0xa4631da1
je 0x140201520
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
nop
mov ecx, dword [0x1415ab528]
add ecx, dword [0x1415ab52c]
mov r8d, ecx
and r8d, 0x7fffffff
xor r8d, 0x23b27b1f
and ecx, 0x23b27b1f
or ecx, r8d
add ecx, 0x48e098a8
and ecx, 0x61b1207c
cmp ecx, 0x2ab4da8
jb 0x140201560
mov rcx, qword [rdi + 0x18]
nop
mov r8d, dword [0x1415ab530]
mov r9d, dword [0x1415ab534]
mov r10d, r8d
xor r10d, r9d
not r10d
or r8d, r9d
and r8d, r10d
mov r9d, r8d
not r9d
or r9d, 0x32819baa
add r8d, r9d
inc r8d
xor r8d, 0x8150411c
or r8d, 0x3a0f9ce2
cmp r8d, 0xb3b8498d
jb 0x1402015a0
test rdx, rdx
jle 0x140201889
cmp rdx, 1
jne 0x1402018f5
nop word [rax + rax]
mov edx, dword [0x1415ab598]
mov r8d, dword [0x1415ab59c]
mov r9d, edx
not r9d
or edx, r8d
not r8d
or r8d, r9d
and r8d, edx
not r8d
or r8d, 0xd173f3c4
mov edx, r8d
not edx
and r8d, 0x824c39d5
mov r9d, edx
and r9d, 0x2c80042a
imul r9d, r8d
mov r8d, edx
and r8d, 0x20c0811
or edx, 0x824c39d5
imul edx, r8d
add edx, r9d
xor edx, 0xe6ac4d2d
cmp edx, 0x37a9a14b
jb 0x140201600
nop dword [rax + rax]
mov edx, dword [0x1415ab5a0]
add edx, dword [0x1415ab5a4]
imul edx, edx, 0x5da67bef
mov r8d, edx
xor r8d, 0x4680208
and r8d, 0x8668920a
xor edx, 0x9144134
and edx, 0x79976df5
or edx, r8d
cmp edx, 0x816cac54
ja 0x140201670
test rcx, rcx
jne 0x1402018f5
nop word cs:[rax + rax]
mov ecx, dword [0x1415ab554]
add ecx, dword [0x1415ab550]
mov edx, ecx
xor edx, 0x3518090a
xor ecx, 0x8ae7f4b5
mov r8d, ecx
and r8d, 0x4a217654
and edx, 0xb5de89ab
imul edx, r8d
mov r8d, ecx
and r8d, 0xb5de89ab
or ecx, 0xb5de89ab
imul ecx, r8d
add ecx, edx
or ecx, 0x5cf273d4
cmp ecx, 0x4bfec4a2
jb 0x1402016c0
mov rdi, qword [rax]
mov rbx, qword [rax + 8]
nop dword [rax]
mov eax, dword [0x1415ab558]
mov ecx, dword [0x1415ab55c]
mov edx, eax
and edx, ecx
or eax, ecx
not eax
or eax, edx
not eax
mov ecx, eax
and ecx, 0x69747986
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x69747986
mov ecx, eax
not ecx
or ecx, 0x30230817
and ecx, 0xb0f30b1f
and eax, 0xf043060
or eax, ecx
cmp eax, 0xb8951ea1
ja 0x140201720
nop dword [rax]
mov eax, dword [0x1415ab564]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [0x1415ab560]
xor ecx, eax
mov eax, ecx
and eax, 0xfe127e6f
xor eax, 0xea103a4f
and ecx, 0xebfdbbdf
or ecx, eax
mov eax, ecx
or eax, 0x12d0000
and eax, 0x352f004c
or ecx, 0x35ef81dc
add ecx, eax
cmp ecx, 0xca69eada
ja 0x140201770
test rbx, rbx
je 0x1402019ad
xor eax, eax
nop
test al, al
jne 0x1402017c0
test rbx, rbx
js 0x1402019c4
mov eax, dword [0x1415ab578]
mov ecx, dword [0x1415ab57c]
not eax
not ecx
and ecx, eax
not ecx
add ecx, 0xdd8c2b6e
xor ecx, 0xe2068ab5
add ecx, 0x67f2c285
cmp ecx, 0x215e9f22
jae 0x140201810
movzx eax, byte [0x1415acbd0]
nop word cs:[rax + rax]
mov eax, dword [0x1415ab580]
or eax, dword [0x1415ab584]
xor eax, 0x8cec546a
add eax, 0xf44bd813
movzx ecx, byte [0x1415acbd0]
cmp eax, 0x3eae5182
jb 0x140201810
xor ecx, ecx
mov rdx, rbx
call fcn.1401ac910
mov r14, rax
nop word cs:[rax + rax]
mov eax, dword [0x1415ab588]
imul eax, dword [0x1415ab58c]
mov ecx, eax
and ecx, 0x1c5f28c4
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x4986d989
not eax
and eax, 0x4e235cd9
cmp eax, 0x99234d51
je 0x140201850
test r14, r14
jne 0x14020199e
ud2
jne 0x1402018f5
xor eax, eax
nop dword [rax]
test al, al
jne 0x140201890
nop word cs:[rax + rax]
mov eax, dword [0x1415ab538]
xor edx, edx
div dword [0x1415ab53c]
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x418db857
and edx, 0x3e7247a8
imul edx, r8d
mov r8d, eax
and r8d, 0x3e7247a8
or eax, 0x3e7247a8
imul eax, r8d
add eax, edx
add eax, 0xe3f6a380
and eax, 0x63a23c58
cmp eax, 0xc4aa2acf
ja 0x1402018a0
test rcx, rcx
je 0x140201991
mov eax, dword [0x1415ab540]
mov ecx, dword [0x1415ab544]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
xor eax, 0x468ce116
imul eax, eax, 0xd8faf10
mov ecx, 0xfc07e47f
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x246b5ee3
jbe 0x140201950
mov rcx, rsi
mov rdx, rdi
call fcn.140082280
nop dword [rax]
mov eax, dword [0x1415ab548]
imul eax, dword [0x1415ab54c]
and eax, 0xe9e8bcba
add eax, 0x8f5e7d90
imul rbx, rax, 0x172128df
shr rbx, 0x3b
mov rcx, rsi
mov rdx, rdi
call fcn.140082280
cmp ebx, 0xad92ac88
jae 0x140201950
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov edi, 1
xor ebx, ebx
mov r14d, 1
xor eax, eax
test al, al
je 0x140201a66
jmp 0x140201ab4
mov r14d, 1
xor ebx, ebx
xor eax, eax
test al, al
je 0x140201a66
jmp 0x140201ab4
xor eax, eax
test al, al
jne 0x1402019ee
mov eax, dword [0x1415ab568]
xor eax, dword [0x1415ab56c]
add eax, 0xf1212b2b
and eax, 0xdac9cc4f
add eax, 0xa3703d75
ud2
ud2
mov eax, dword [0x1415ab590]
or eax, dword [0x1415ab594]
imul rax, rax, 0x4d89b57
shr rax, 0x3a
imul eax, eax, 0xa0ad6d9f
imul r15, rax, 0xb463e13
shr r15, 0x3b
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call fcn.14021bb50
mov qword [rsi], rbx
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
cmp r15d, 0x115788d4
jbe 0x140201985
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call fcn.14021bb50
mov qword [rsi], rbx
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], rbx
jmp 0x140201a66