Function at 0x180021fc0
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Create thread
Terminate process

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x560]
sub rsp, 0x660
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x6b8], rbx
mov rax, qword [0x1800a5088]
xor rax, rsp
mov qword [rbp + 0x550], rax
mov r13d, r9d
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x48], r8
mov r12, rdx
mov qword [rsp + 0x50], rdx
mov r15, rcx
mov qword [rsp + 0x58], rcx
movdqa xmm0, xmmword [0x18009b600]
movdqa xmmword [rbp + 0x50], xmm0
mov byte [rbp + 0x40], 0
movdqa xmm1, xmm0
movdqa xmmword [rbp + 0x70], xmm0
mov byte [rbp + 0x60], 0
movdqa xmmword [rbp + 0x90], xmm0
mov byte [rbp + 0x80], 0
mov word [rbp + 0xa0], 0
xor eax, eax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc0], 0xf
mov byte [rbp + 0xa8], al
mov dword [rbp + 0xc8], eax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], 0xf
mov byte [rbp + 0xd8], al
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
lea rcx, [rbp + 0x100]
call fcn.180022bd0
nop
mov esi, r13d
lea r14d, [r13 - 0xa]
lea rcx, [0x180000000]
movzx ebx, byte [rsp + 0x30]
mov byte [rsp + 0x30], bl
cmp r13d, r14d
jbe 0x180022354
lea edi, [r13 - 0x34]
mov edx, 0x6f
lea r8d, [rdx + 3]
mov r11d, 0x6976
lea r9d, [rdx - 6]
lea r10d, [rdx - 0xc]
nop dword [rax]
cmp edi, 0x14
ja case.default.0x18002210a
mov ecx, dword [rcx + rdi*4 + 0x22a6c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
lea rdx, [r12 + 0x18]
xor r8d, r8d
lea ecx, [r8 + 0x50]
call fcn.180016100
jmp 0x180022323
movzx eax, word [0x180095e4c]
mov word [rbp + 0x2fe], ax
movzx eax, byte [0x180095e4e]
mov byte [rbp + 0x300], al
mov byte [rsp + 0x30], 1
lea r8, [r12 + 0x18]
xor edx, edx
lea ecx, [rdx + 0x55]
call fcn.180024cc0
test al, al
je 0x1800223a6
mov qword [r15], 0
jmp 0x180022323
mov dword [rbp + 0x2fa], 0x416c61
lea rdx, [0x18008fc0c]
lea rcx, [rbp + 0x2fd]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x180022323
mov dword [rbp + 0x33d], 0x6d654d6b
mov word [rbp + 0x341], dx
mov word [rbp + 0x342], r8w
mov dword [rbp + 0x343], 0x725079
jmp case.0x18002210a.1
mov dword [rbp + 0x347], 0x656c6976
mov eax, 0x6567
mov word [rbp + 0x34b], ax
mov byte [rbp + 0x34d], 0
jmp case.0x18002210a.1
mov eax, 0x41
mov word [rbp + 0x2f0], ax
lea rcx, [rbp + 0x2f0]
dec rcx
nop dword [rax + rax]
lea rcx, [rcx + 1]
cmp byte [rcx], 0
jne 0x1800221f0
movzx eax, word [0x18008ffac]
mov word [rcx], ax
mov eax, 0x64
mov word [rbp + 0x2f2], ax
jmp case.0x18002210a.1
mov word [rbp + 0x346], r9w
jmp case.0x18002210a.1
mov dword [rbp + 0x338], 0x4c6553
mov word [rbp + 0x33b], dx
mov word [rbp + 0x33c], r10w
jmp case.0x18002210a.1
movzx eax, word [0x180095e50]
mov word [rbp + 0x2f3], ax
movzx eax, byte [0x180095e52]
mov byte [rbp + 0x2f5], al
lea rdx, [0x180095e54]
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov r8d, 3
lea rdx, [0x180095e58]
lea rcx, [rbp + 0x2f8]
call fcn.18005c310
jmp 0x180022323
lea rdx, [0x1800a62d0]
mov ecx, 0x31
call fcn.180029e10
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 0x21]
call fcn.18000d760
test al, al
je 0x180022526
mov ebx, 0xc3
mov eax, ebx
sub eax, 0xbe
je 0x180022323
sub eax, 1
je 0x180022323
sub eax, 4
je 0x1800222f7
cmp eax, 4
jne 0x180022319
mov ecx, 0xb7
mov eax, ecx
sub eax, 0xb7
je 0x1800222e4
cmp eax, 0xa
je 0x180022323
jmp 0x1800222ec
mov ecx, 0xb7
lea ebx, [rcx + 0x10]
add ecx, 0xa
cmp ecx, 0xcb
jb 0x1800222d4
mov r8, qword [0x1800a6430]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x18002251d
dec ebx
cmp ebx, 0xbf
ja 0x1800222b7
mov r11d, 0x6976
mov r10d, 0x63
lea r9d, [r10 + 6]
lea r8d, [r10 + 0xf]
lea edx, [r10 + 0xc]
lea rcx, [0x180000000]
dec esi
dec edi
cmp esi, r14d
ja 0x1800220f0
movzx ebx, byte [rsp + 0x30]
lea r15d, [r13 + 0xa0]
mov dword [rsp + 0x40], r15d
cmp r13d, r15d
jae case.0x1800223a4.7
lea r14d, [r13 - 0x3e]
mov esi, 1
movzx r13d, word [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
mov r12, qword [rsp + 0x48]
nop
cmp r14d, 0x50
ja case.0x1800223a4.10
movzx eax, byte [rcx + r14 + 0x22aec]
mov ecx, dword [rcx + rax*4 + 0x22ac0]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov byte [rsp + 0x34], 0
mov esi, dword [rsp + 0x34]
lea rcx, [rbp + 0x280]
call fcn.180022ff0
lea rcx, [rbp + 0x1e0]
call fcn.18001d7c0
mov rdx, qword [rbp + 0x1d8]
cmp rdx, 0x10
jb 0x180022408
inc rdx
mov rcx, qword [rbp + 0x1c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180022403
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180022a65
call fcn.180051f84
movdqa xmm0, xmmword [0x18009b600]
movdqa xmmword [rbp + 0x1d0], xmm0
mov byte [rbp + 0x1c0], 0
lea rcx, [rbp + 0x118]
call fcn.180022f00
mov rcx, qword [rbp + 0x108]
mov rbx, qword [rcx + 8]
cmp byte [rbx + 0x19], 0
jne 0x180022474
nop dword [rax]
mov r8, qword [rbx + 0x10]
lea rdx, [rbp + 0x108]
lea rcx, [rbp + 0x108]
call fcn.180046530
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, 0x38
call fcn.180051f84
cmp byte [rbx + 0x19], 0
je 0x180022440
mov rcx, qword [rbp + 0x108]
mov edx, 0x38
call fcn.180051f84
nop
lea rcx, [rsp + 0x60]
call fcn.1800451c0
nop
mov rdx, qword [rbp + 0xf0]
cmp rdx, 0x10
jb 0x1800224cb
inc rdx
mov rcx, qword [rbp + 0xd8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800224c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180022a5f
call fcn.180051f84
mov qword [rbp + 0xe8], 0
mov qword [rbp + 0xf0], 0xf
mov byte [rbp + 0xd8], 0
lea rcx, [rbp + 0x40]
call fcn.1800102c0
mov eax, esi
mov rcx, qword [rbp + 0x550]
xor rcx, rsp
call fcn.180051f60
mov rbx, qword [rsp + 0x6b8]
add rsp, 0x660
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov esi, 1
jmp 0x1800223af
xor ebx, ebx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor edx, edx
mov r8d, 0xba
lea rcx, [rbp + 0x338]
call fcn.180012e00
test al, al
jne 0x180022564
mov r9d, 0xc5
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18002d200
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
call fcn.180057488
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], bl
xor r8d, r8d
lea rdx, [0x18008f4a8]
lea rcx, [rbp - 0x50]
call fcn.180044ec0
nop
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
xor r8d, r8d
lea rdx, [0x18008f4a8]
lea rcx, [rbp - 0x30]
call fcn.180044ec0
nop
mov qword [rbp], rbx
mov qword [rbp + 8], 0xf
mov byte [rbp - 0x10], 0
xor r8d, r8d
lea rdx, [0x18008f4a8]
lea rcx, [rbp - 0x10]
call fcn.180044ec0
nop
mov word [rbp + 0x10], 1
mov qword [rbp + 0x28], rbx
mov qword [rbp + 0x30], 0xf
mov byte [rbp + 0x18], 0
xor r8d, r8d
lea rdx, [0x18008f4a8]
lea rcx, [rbp + 0x18]
call fcn.180044ec0
nop
mov dword [rsp + 0x38], 0x1bb
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
lea r9, [0x1800a6338]
lea r8, [rsp + 0x38]
lea rdx, [rbp + 0x40]
mov ecx, 0x18
call fcn.18001d910
nop
lea rcx, [rbp - 0x50]
call fcn.1800102c0
jmp case.0x1800223a4.10
lea rcx, [rbp + 0x2f0]
call qword [sym.imp.KERNEL32.dll_GlobalAddAtomA]
movzx r13d, ax
mov rax, qword [rsp + 0x50]
mov rdi, qword [rax + 0x18]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x180022702
mov r15, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x48]
lea r8, [rbx + 0x20]
mov rdx, rsi
mov ecx, 0x57
call fcn.1800045b0
mov qword [rsp + 0x38], rax
movsd xmm0, qword [rsp + 0x38]
addsd xmm0, qword [r15]
movsd qword [r15], xmm0
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x1800226c8
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1800226c3
nop dword [rax + rax]
cmp rbx, qword [rax + 0x10]
jne 0x1800226c3
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x1800226b0
mov rbx, rax
jmp 0x1800226ef
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x1800226ef
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x1800226e0
cmp rbx, rdi
jne 0x180022671
mov esi, 1
mov r15d, dword [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov rdi, rax
jmp case.0x1800223a4.10
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp case.0x1800223a4.10
mov eax, dword [0x1800a6424]
mov dword [rsp + 0x38], eax
lea r9, [rsp + 0x38]
lea r8, [rbp + 0x40]
lea rcx, [rsp + 0x60]
call fcn.18002c340
lea rax, [rsp + 0x60]
mov qword [rbp + 0x308], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0x310], rax
mov eax, dword [0x1800a6424]
mov dword [rbp + 0x318], eax
mov eax, dword [0x1800a6428]
mov dword [rbp + 0x31c], eax
movups xmm0, xmmword [rbp + 0x308]
movups xmmword [rbp - 0x70], xmm0
movsd xmm1, qword [rbp + 0x318]
movsd qword [rbp - 0x60], xmm1
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x70]
lea r8, [0x180023d00]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r12, rax
jmp case.0x1800223a4.10
mov ebx, 0x5b
nop
mov eax, ebx
sub eax, 0x5b
je 0x1800227c3
cmp eax, 1
jne 0x18002280d
xor esi, esi
jmp 0x1800223af
lea r9, [rbp + 0x100]
mov r8d, 0xac
lea rdx, [rsp + 0x60]
lea rcx, [0x1800a62d0]
call fcn.1800073b0
mov dword [rsp + 0x20], 0x3b
xor r9d, r9d
lea r8, [rbp + 0x100]
xor edx, edx
xor ecx, ecx
call fcn.180042550
mov edx, 0xf
lea rcx, [rbp + 0x100]
call fcn.1800309a0
inc ebx
cmp ebx, 0x5d
jb 0x1800227b0
xor eax, eax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], eax
xor r9d, r9d
lea r8, [0x18002d1d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
je 0x1800223af
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [0x180013630]
mov qword [rsp + 0x38], rax
mov r9d, 0x8d
xor r8d, r8d
lea rdx, [rsp + 0x38]
xor ecx, ecx
call fcn.180030780
jmp case.0x1800223a4.10
mov byte [rsp + 0x34], 1
jmp case.0x1800223a4.10
test r12, r12
je 0x1800223af
jmp case.0x1800223a4.10
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x20]
xorps xmm1, xmm1
test rcx, rcx
js 0x18002289b
cvtsi2sd xmm1, rcx
jmp 0x1800228b0
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mov rax, qword [rsp + 0x58]
movsd xmm0, qword [rax]
divsd xmm0, xmm1
movsd qword [rax], xmm0
test rdi, rdi
jne 0x180022a1f
mov ebx, 0x86
lea r15d, [rdi + 0x6e]
mov eax, ebx
sub eax, 0x82
je 0x1800229b1
sub eax, 1
je 0x180022964
sub eax, 1
je 0x18002291f
sub eax, 1
je 0x180022904
cmp eax, 1
jne 0x180022a04
mov byte [rbp + 0x308], 0
jmp 0x180022a04
mov r8, rsi
lea rdx, [0x180095e64]
lea rcx, [rbp + 0x308]
call fcn.180062ed0
jmp 0x180022a04
mov r8, rsi
lea rdx, [0x18008fc10]
lea rcx, [rbp + 0x308]
call fcn.180062ed0
mov word [rbp + 0x30a], r15w
mov eax, dword [str.dle]
mov dword [rbp + 0x30b], eax
mov eax, dword [str.to_t]
mov dword [rbp + 0x30f], eax
mov dword [rbp + 0x313], 0x206568
jmp 0x180022a04
lea rdx, [0x180095e78]
lea rcx, [rbp + 0x308]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [rbp + 0x318], 0x766974
mov dword [rbp + 0x31b], 0x772065
mov dword [rbp + 0x31e], 0x646e69
mov eax, dword [str.ow_n]
mov dword [rbp + 0x321], eax
movzx eax, byte [0x180095e80]
mov byte [rbp + 0x325], al
jmp 0x180022a04
movzx eax, word [0x180095e5c]
mov word [rbp + 0x325], ax
mov dword [rbp + 0x327], 0x657220
mov dword [rbp + 0x32a], 0x696563
lea rcx, [rbp + 0x308]
dec rcx
nop dword [rax]
lea rcx, [rcx + 1]
cmp byte [rcx], 0
jne 0x1800229e0
mov eax, dword [0x180095e60]
mov dword [rcx], eax
lea rdx, [rbp + 0x308]
lea rcx, [rbp + 0x350]
call fcn.1800011d0
dec ebx
cmp ebx, 0x81
ja 0x1800228d3
mov r15d, dword [rsp + 0x40]
xor al, al
mov byte [rsp + 0x30], al
jmp 0x180022a2c
test bl, bl
je 0x180022a2c
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetActiveWindow]
movzx ecx, r13w
call qword [sym.imp.KERNEL32.dll_GlobalDeleteAtom]
mov ebx, dword [rsp + 0x44]
add ebx, 0x10
mov dword [rsp + 0x44], ebx
add r14d, 0x10
cmp ebx, r15d
jae case.0x1800223a4.7
movzx ebx, byte [rsp + 0x30]
lea rcx, [0x180000000]
jmp 0x180022380
call fcn.180063ba4
nop
call fcn.180063ba4
int3