Function at 0x1800020e0
Capabilities:
Encode data using xor

Disassembly:
push rdi
sub rsp, 0x50
mov rax, qword [0x1800250f0]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov r8d, dword [0x180027a98]
mov qword [rsp + 0x60], rbx
mov eax, 0x38e38e39
lea ecx, [r8 + 1]
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
imul ecx, r8d
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 7
jne 0x18000215f
lea eax, [rcx + 0x38]
mov r8d, 0x52
nop dword [rax]
test r8d, r8d
je 0x180002155
cdq
mov ecx, r8d
idiv r8d
mov eax, ecx
mov r8d, edx
test ecx, ecx
jne 0x180002140
add r8d, eax
mov dword [0x180027a98], r8d
mov rax, qword [str.bhmodev1ll]
mov ecx, r8d
mov qword [rsp + 0x20], rax
mov rax, qword [0x180021600]
imul ecx, r8d
mov qword [rsp + 0x28], rax
mov eax, dword [0x180021608]
mov dword [rsp + 0x30], eax
movzx eax, word [0x18002160c]
mov word [rsp + 0x34], ax
mov eax, 0x72
mov word [rsp + 0x24], ax
mov eax, 0x78787879
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x11
sub ecx, edx
cmp ecx, 5
jne 0x180002222
movsd xmm3, qword [0x180021800]
movsd xmm5, qword [0x180021808]
movd xmm4, r8d
xorps xmm2, xmm2
movaps xmmword [rsp + 0x40], xmm6
movsd xmm6, qword [0x1800217f0]
cvtdq2pd xmm4, xmm4
nop word [rax + rax]
addsd xmm2, xmm3
movaps xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x180002209
subsd xmm2, xmm3
divsd xmm3, xmm5
movaps xmm1, xmm2
movaps xmm0, xmm4
mulsd xmm1, xmm2
subsd xmm0, xmm1
comisd xmm0, xmm6
ja 0x1800021f0
movaps xmm6, xmmword [rsp + 0x40]
mov eax, 0x2e
xor edi, edi
lea ecx, [r8 + 2]
mov word [rsp + 0x2c], ax
mov eax, 0x6d
mov ebx, edi
mov word [rsp + 0x28], ax
lea eax, [r8 + 1]
mov esi, 0x63
lea ebp, [rdi + 0x64]
imul ecx, eax
imul ecx, r8d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [0x180027c6c]
imul edx, edx, 0x16
sub ecx, edx
mov edx, 0x975015d7
cmp ecx, 0xe
cmove eax, edx
mov dword [0x180027c6c], eax
nop
xor ecx, ecx
mov word [rsp + 0x20], si
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
call fcn.180004560
mov word [rsp + 0x2e], bp
cmp eax, 1
jne 0x1800022c0
lea r8, [rsp + 0x20]
call fcn.180004a20
mov r8, qword [0x180027ae0]
test rax, rax
cmovne r8, rax
mov qword [0x180027ae0], r8
jmp 0x1800022c7
mov r8, qword [0x180027ae0]
test r8, r8
jne 0x1800022ea
mov ecx, 0x1f4
inc ebx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8, qword [0x180027ae0]
test r8, r8
jne 0x1800022ea
cmp ebx, 5
jl 0x180002280
mov r9d, dword [0x180027a98]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov ecx, r9d
mov eax, 0x6bca1af3
imul ecx, r9d
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
cmp ecx, 0x12
jne 0x1800023ce
mov r10d, edi
nop dword [rax]
mov ecx, r10d
mov eax, r10d
inc r10d
and ecx, 1
sar eax, 1
dec ecx
not ecx
and ecx, r9d
xor ecx, eax
mov eax, ecx
sar ecx, 1
and eax, 1
dec eax
not eax
and eax, r9d
xor eax, ecx
mov ecx, eax
sar eax, 1
and ecx, 1
dec ecx
not ecx
and ecx, r9d
xor ecx, eax
mov eax, ecx
sar ecx, 1
and eax, 1
dec eax
not eax
and eax, r9d
xor eax, ecx
mov ecx, eax
sar eax, 1
and ecx, 1
dec ecx
not ecx
and ecx, r9d
xor ecx, eax
mov eax, ecx
sar ecx, 1
and eax, 1
dec eax
not eax
and eax, r9d
xor eax, ecx
mov edx, eax
sar eax, 1
and edx, 1
dec edx
not edx
and edx, r9d
xor edx, eax
mov ecx, edx
sar edx, 1
and ecx, 1
dec ecx
not ecx
and ecx, r9d
xor ecx, edx
add r9d, ecx
cmp r10d, 0x100
jl 0x180002330
mov dword [0x180027a98], r9d
mov eax, 5
test r8, r8
cmove edi, eax
mov eax, edi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.180007ef0
add rsp, 0x50
pop rdi
ret