Function at 0x10007130
Capabilities:
Check mutex on windows
Get number of processors
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10028192
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x10034110]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 0x6a40
push 8
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0x6a40
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push str.mtx_945A5B5F_32A8_4ccb_9609_66A1A5F230E6
xor edi, edi
push edi
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0x2710
push eax
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call fcn.10015015
mov dword [esp + 0x30], eax
add esp, 4
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], 0xffffffff
call fcn.10006340
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
push ebx
lea edx, [esp + 0x20]
push edx
push edi
push str.6BC54C43_A499_4e5e_8F40_A0015905F5E2
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, edi
jne 0x1000733a
cmp dword [esp + 0x18], 3
jne 0x1000733a
lea esi, [ebx + 0x10]
mov ecx, dword [esi - 4]
mov eax, dword [esi - 8]
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push ecx
push edx
call fcn.10014fd2
fstp qword [esp + 0x44]
add esp, 0x10
call fcn.10006ff0
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fcomp qword [esp + 0x34]
fnstsw ax
test ah, 0x41
jp 0x1000723f
push esi
mov dword [esi - 0x10], 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x10007259
mov eax, dword [ebp + 8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100072a7
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x1000725d
mov dword [esp + 0x10], edi
inc edi
add esi, 0x110
cmp edi, 0x64
jl 0x100071f6
cmp dword [esp + 0x10], 0xffffffff
jle 0x100072b1
mov eax, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x2c]
imul eax, eax, 0x110
mov edx, dword [esp + 0x30]
add eax, ebx
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 8]
push 0xff
mov dword [eax], 1
mov dword [eax + 0xc], edx
push ecx
add eax, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x100072b3
imul edi, edi, 0x110
add edi, ebx
inc dword [edi]
xor edi, edi
mov edx, dword [esp + 0x24]
push 0x6a40
push ebx
push 3
push edi
push str.6BC54C43_A499_4e5e_8F40_A0015905F5E2
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, dword [esp + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esp + 0x48], 1
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, edi
je 0x10007308
push eax
call esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], 0xffffffff
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x10007323
push eax
call esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x10007276