Function at 0x180002560
Capabilities:
Check mutex on windows
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm6
mov r14, rcx
movabs r12, 0xfed3ec5b4ca89b28
movabs r15, 0xf88823a962562703
xor edi, edi
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movabs rax, 0x2d370a416c1403af
mov qword [rsp + 0x28], rax
mov ecx, 0xe8
call fcn.18000395c
mov r13, rax
mov rsi, 0xffffffffffffffff
lea r8, section..data
mov r11, r15
not r11
mov r9, r15
and r9, 0xfffffffffffffffe
mov r10d, r12d
not r10d
or r10d, r12d
movzx ecx, byte [rdi + r8]
mov rbx, rdi
xor rbx, 0xfffffffffffffff9
and rbx, rdi
movzx edx, byte [rsp + rbx + 0x28]
mov ebx, edx
not bl
and bl, cl
not cl
and cl, dl
or cl, bl
mov byte [r13 + rdi], cl
mov rcx, rsi
and rcx, r15
mov rdx, rdi
and rdx, r11
or rdx, rcx
mov ebp, r11d
and ebp, 1
or rbp, r9
xor rbp, rdx
mov edx, esi
not edx
mov ebx, r15d
or ebx, r11d
and ebx, edx
and ebx, 1
or rbx, rbp
movzx edx, byte [rbx + r8]
mov ecx, ebx
and ecx, r10d
and ecx, 7
movzx eax, byte [rsp + rcx + 0x28]
mov ecx, eax
not cl
and cl, 0x53
and al, 0xac
or al, cl
mov ecx, edx
not cl
and cl, 0x53
and dl, 0xac
or dl, cl
xor dl, al
mov byte [r13 + rbx], dl
add rdi, 2
add rsi, 0xfffffffffffffffe
cmp rdi, 0xe8
jne 0x180002360
mov qword [rsp + 0x70], r13
lea rbx, [r13 + 0x62]
xor ecx, ecx
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
test rax, rax
je 0x180002540
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebp, 0xb7
je 0x180002540
xorps xmm6, xmm6
movups xmmword [rbx], xmm6
xor ecx, ecx
call fcn.180003fd8
mov ecx, eax
call fcn.180004038
mov dword [rsp + 0x20], 0x5c3a00
test r14, r14
je 0x18000245c
mov byte [rsp + 0x20], 0x43
lea rcx, [r13 + 0x12]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
movups xmmword [r13 + 0x12], xmm6
lea rcx, [fcn.180001170]
mov qword [rsp + 0x30], rcx
mov rdx, r13
add rdx, 0x22
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x38], rax
movups xmmword [r13 + 0x22], xmm6
mov qword [r13 + 0x32], 0
mov dword [rsp + 0x24], 0
mov edx, 0x100
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
movups xmmword [rax], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x40], xmm6
movups xmmword [rax + 0x50], xmm6
movups xmmword [rax + 0x60], xmm6
movups xmmword [rax + 0x70], xmm6
movups xmmword [rax + 0x80], xmm6
movups xmmword [rax + 0x90], xmm6
movups xmmword [rax + 0xa0], xmm6
movups xmmword [rax + 0xb0], xmm6
movups xmmword [rax + 0xc0], xmm6
movups xmmword [rax + 0xd0], xmm6
movups xmmword [rax + 0xe0], xmm6
movups xmmword [rax + 0xf0], xmm6
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x24]
mov qword [rsp + 0x68], rax
lea rsi, [rsp + 0x30]
mov rcx, rsi
call fcn.180001170
mov rcx, rsi
call qword [rsp + 0x30]
mov rcx, rsi
call qword [rsp + 0x30]
mov rcx, rsi
call qword [rsp + 0x30]
xor eax, eax
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp edx, 1
jne 0x18000256a
jmp 0x1800022b0
mov eax, 1
ret