Function at 0x1000243c
Capabilities:
Check mutex on windows
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
xor ebx, ebx
cmp byte [0x10006c15], bl
push esi
push edi
je 0x100024f6
xor eax, eax
mov dword [ebp - 0xc], ebx
lea edi, [ebp - 8]
stosd dword es:[edi], eax
mov word [ebp - 0x2c], bx
lea edi, [ebp - 0x2a]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov dword [ebp - 0x14], ebx
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
push 8
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.10001c7c
mov ecx, dword [0x10006c28]
mov edx, dword [0x10006c2c]
mov eax, ecx
add esp, 0xc
or eax, edx
jne 0x100024c7
mov eax, dword [ebp - 0xc]
mov dword [0x10006c28], eax
mov eax, dword [ebp - 8]
mov dword [0x10006c2c], eax
xor al, al
jmp 0x1000263a
mov esi, dword [ebp - 0xc]
mov eax, esi
sub eax, ecx
mov ecx, dword [ebp - 8]
mov edi, ecx
sbb edi, edx
mov dword [ebp - 0x30], edi
js 0x100024c0
jg 0x100024e3
cmp eax, 0xb2d05e00
jb 0x100024c0
mov dword [0x10006c28], esi
mov dword [0x10006c2c], ecx
mov al, 1
jmp 0x1000263a
lea eax, [ebp - 0x148]
push eax
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 1], bl
call fcn.100023ed
pop ecx
lea eax, [ebp - 0x148]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x10002637
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1000262e
mov dword [ebp - 0x28], ebx
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 8], ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
push 8
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001c7c
add esp, 0xc
push ebx
lea eax, [ebp - 0x1c]
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push str.SOFTWAREMicrosoftWindowsCurrentVersionControl_PanelSettings
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x10002625
push 0xc
pop edi
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
push ebx
mov esi, str.Time
push esi
push dword [ebp - 0x1c]
mov dword [ebp - 8], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x10002607
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov byte [eax], bl
mov eax, dword [ebp - 0x24]
mov dword [0x1000d198], edx
mov edx, dword [ebp - 0x10]
cmp edx, eax
mov dword [0x1000d188], ecx
mov dword [0x1000d18c], eax
jl 0x100025ee
jg 0x100025e4
cmp esi, ecx
jbe 0x100025ee
sub esi, ecx
sbb edx, eax
mov ecx, esi
mov eax, edx
jmp 0x100025f2
sub ecx, esi
sbb eax, edx
cmp eax, 0x64
jl 0x10002625
jg 0x10002601
cmp ecx, 0x9534e000
jbe 0x10002625
mov byte [ebp - 1], 1
jmp 0x10002625
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
push edi
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push eax
push 3
push ebx
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
leave
ret