Function at 0x10007660
Capabilities:
Check os version
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1bc
push ebx
mov ebx, ecx
mov dword [esp + 0xc], edx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov ecx, dword [ebx + 0x64]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x24], ebx
test ecx, ecx
je 0x100076d0
mov eax, dword [ebp + 8]
mov dword [esp + 0x80], edx
lea edx, [esp + 0x18]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], edi
mov eax, dword [ecx + 0xc]
push edx
lea edx, [esp + 0x84]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x100076cc
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, 0x113
ja 0x10007db7
je 0x1000796e
add eax, 0xfffffffa
cmp eax, 0x78
ja case.0x100076f7.8
movzx eax, byte [eax + 0x10007fa0]
jmp dword [eax*4 + 0x10007f70]
mov ecx, ebx
call fcn.10009d90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test esi, esi
jne 0x1000777d
cmp dword [ebx + 0xa8], esi
je 0x1000777d
push 3
push edi
call dword [sym.imp.USER32.dll_GetAncestor]
cmp eax, dword [ebx + 4]
je case.0x100076f7.24
mov eax, dword [ebx + 0x2c]
cmp edi, dword [eax + 4]
je case.0x100076f7.24
cmp edi, dword [ebx + 0xc0]
je case.0x100076f7.24
mov esi, dword [sym.imp.USER32.dll_GetPropW]
push str.TaskbarStartButton
push edi
call esi
test eax, eax
jne 0x10007768
push str.StartButtonTag
push edi
call esi
test eax, eax
je 0x1000781c
push 0
push 0
push 0x10
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp case.0x100076f7.8
push dword [ebx + 0x88]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je case.0x100076f7.8
push dword [ebx + 0x88]
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [ebx + 0x88], 0
jmp case.0x100076f7.8
test esi, esi
jne case.0x100076f7.8
cmp dword [ebx + 0xa8], esi
je case.0x100076f7.8
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0x30
push eax
push edi
call dword [sym.imp.USER32.dll_GetGUIThreadInfo]
test eax, eax
je case.0x100076f7.8
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x88]
cmp ecx, eax
je case.0x100076f7.8
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
jne case.0x100076f7.8
push 3
push dword [esp + 0x8c]
call dword [sym.imp.USER32.dll_GetAncestor]
cmp eax, dword [ebx + 4]
je case.0x100076f7.8
mov ecx, ebx
call fcn.10009d90
jmp case.0x100076f7.8
cmp dword [ebx + 0xa8], 0
je case.0x100076f7.8
push dword [ebx + 0x88]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10007791
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x80]
test eax, eax
je 0x10007869
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x10]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x100076f7.8
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + 8]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x100076f7.8
call dword [sym.imp.USER32.dll_GetFocus]
push eax
push dword [ebx + 4]
mov dword [ebx + 0x88], eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
jne case.0x100076f7.8
mov dword [ebx + 0x88], eax
jmp case.0x100076f7.8
test byte [edi + 0x18], 0xc0
je case.0x100076f7.8
push 0
mov ecx, ebx
call fcn.100090d0
jmp case.0x100076f7.8
mov eax, edi
mov ecx, ebx
shr eax, 0x10
cwde
push eax
movsx eax, di
push eax
push esi
call fcn.1000b700
jmp case.0x100076f7.8
test edi, edi
je 0x100078f5
cmp dword [edi + 8], 0xfffffdf7
jne 0x100078f5
push 0x13
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [edi]
call dword [sym.imp.USER32.dll_SetWindowPos]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0xc
push eax
push 0
xorps xmm0, xmm0
push 0x42
movlpd qword [esp + 0x3c], xmm0
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test byte [esp + 0x2c], 1
je case.0x100076f7.8
mov ecx, ebx
call fcn.1000bf70
jmp case.0x100076f7.8
push str.ImmersiveColorSet
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne case.0x100076f7.8
mov ecx, ebx
call fcn.1000bf70
jmp case.0x100076f7.8
push 0
push 0xfa
push 0x50
push edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp case.0x100076f7.8
push esi
push edx
call dword [sym.imp.USER32.dll_KillTimer]
cmp esi, 0xa
jne 0x10007987
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x34]
jmp case.0x100076f7.8
cmp esi, 0x28
jne 0x1000799a
push 1
mov ecx, ebx
call fcn.100090d0
jmp case.0x100076f7.8
cmp esi, 0x50
jne case.0x100076f7.8
cmp dword [ebx + 0xa8], 0
je case.0x100076f7.8
mov esi, dword [sym.imp.USER32.dll_MonitorFromWindow]
push 0
push dword [ebx + 4]
call esi
push 1
push dword [0x1005dc0c]
mov edi, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], 0
call esi
mov ecx, dword [esp + 0x28]
cmp eax, edi
lea eax, [esp + 0x28]
cmove ecx, dword [0x1005dc0c]
push eax
push 0x1003ffa0
push dword [0x1005dc48]
mov dword [esp + 0x34], ecx
call dword [sym.imp.USER32.dll_EnumThreadWindows]
cmp dword [esp + 0x28], 0
je case.0x100076f7.8
lea eax, [esp + 0x48]
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push SHChangeNotifyRegister
push str.Tempest_Double
push str.Static
push 0xffffffffffffffec
push dword [0x1005dc0c]
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x400000
or eax, 0x8080008
push eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edx, dword [esp + 0x48]
mov edi, eax
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
sub ecx, edx
push dword [ebx + 4]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x58]
sub ecx, esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], ecx
call dword [sym.imp.USER32.dll_GetWindowDC]
push 2
mov esi, eax
mov dword [esp + 0x20], 0xff0000
lea eax, [esp + 0x20]
mov dword [esp + 0x5c], 0
push eax
push 0
lea eax, [esp + 0x64]
mov dword [esp + 0x68], 0
push eax
push esi
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x80]
push eax
push 0
push edi
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
push esi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
push pe_nt_image_headers32
lea eax, [esp + 0xb8]
mov dword [esp + 0xb4], 0x114
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esp + 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0xbc], 0x42a7
mov dword [esp + 0x10], 4
sbb eax, eax
add eax, 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
push 0
push 0x10
push str.StartMenuBlur
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvanced
push SHChangeNotifyRegister
mov esi, dword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
call esi
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 4
push eax
lea eax, [esp + 0x24]
push eax
push 0
push 0x10
push str.StartMenuBlur
push str.SoftwareStartIsBack
push SHChangeNotifyRegister
call esi
mov cl, byte [0x1005dbdc]
mov eax, 1
cmp eax, dword [esp + 0x20]
mov edi, dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
sbb esi, esi
neg esi
add esi, 3
test cl, cl
jne 0x10007bc4
push 0x29c
call edi
add esp, 4
test eax, eax
je 0x10007bb3
mov ecx, eax
call fcn.10032660
mov cl, 1
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], cl
jmp 0x10007bc9
xor eax, eax
mov cl, 1
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], cl
jmp 0x10007bc9
mov eax, dword [0x1005e0e4]
cmp byte [eax + 0x247], 0xff
mov edx, 2
mov dword [esp + 0x3c], 0x13
cmove esi, edx
mov dword [esp + 0x38], esi
test cl, cl
jne 0x10007c0d
push 0x29c
call edi
add esp, 4
test eax, eax
je 0x10007bff
mov ecx, eax
call fcn.10032660
jmp 0x10007c01
xor eax, eax
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], 1
cmp byte [eax], 0
mov eax, dword [eax + 0x244]
je 0x10007c1d
and eax, 0xffffff
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x70]
push eax
push esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x78], 0x13
mov dword [esp + 0x80], 0x10
call dword [0x1005dc40]
mov ebx, dword [sym.imp.dwmapi.dll_DwmSetWindowAttribute]
lea eax, [esp + 0x10]
push 4
push eax
push 0xd
push esi
mov dword [esp + 0x20], 1
call ebx
mov edi, dword [sym.imp.USER32.dll_SetWindowPos]
push 0x53
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
push esi
call edi
push 1
push 1
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov esi, eax
push esi
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_GetWindowRgn]
push 0
push esi
mov esi, dword [esp + 0x20]
push esi
call dword [sym.imp.USER32.dll_SetWindowRgn]
push 4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0xd
push esi
call ebx
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.USER32.dll_SetWindowLongW]
push 0
push 0xfffffffffffffff8
mov eax, dword [eax + 0x2c]
push dword [eax + 4]
call esi
mov eax, dword [esp + 0x24]
push 0x13
push 0
push 0
mov eax, dword [eax + 0x2c]
push 0
push 0
push 0xffffffffffffffff
push dword [eax + 4]
call edi
push 4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 1
push eax
push 0xd
push dword [esp + 0x20]
call ebx
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x80]
push eax
mov ecx, edi
call fcn.10008b00
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x84]
push 0x417
push 0x100075b0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_EnumChildWindows]
push 0x385
push 0
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_RedrawWindow]
push 4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0xd
push dword [esp + 0x20]
call ebx
push dword [esp + 0x14]
mov eax, dword [edi + 0x2c]
push 0xfffffffffffffff8
push dword [eax + 4]
call esi
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x10]
push 4
push eax
push 0xd
push esi
mov dword [esp + 0x20], 1
call ebx
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
mov ecx, edi
cmp dword [0x1005d044], eax
setne al
push eax
call fcn.100090d0
jmp case.0x100076f7.8
cmp eax, 0x430
ja 0x10007e6f
je 0x10007e53
sub eax, 0x2e0
je 0x10007df7
sub eax, 0x3e
jne case.0x100076f7.8
mov ecx, ebx
call fcn.1000bf70
push 0x31e
push 0x100075b0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_EnumChildWindows]
jmp case.0x100076f7.8
cmp byte [0x1005dbdc], 0
jne 0x10007e45
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x10007e2e
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], 1
mov byte [eax + 4], 1
jmp case.0x100076f7.8
xor eax, eax
mov byte [0x1005dbdc], 1
mov dword [0x1005e0e4], eax
mov byte [eax + 4], 1
jmp case.0x100076f7.8
mov eax, dword [0x1005e0e4]
mov byte [eax + 4], 1
jmp case.0x100076f7.8
mov ecx, dword [ebx + 0x68]
test ecx, ecx
je case.0x100076f7.8
call fcn.100074e0
mov dword [ebx + 0x68], 0
jmp case.0x100076f7.8
sub eax, 0x431
je 0x10007f4c
sub eax, 1
je 0x10007ebe
sub eax, 1
jne case.0x100076f7.8
push 0x50
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebx + 0x18]
push 0
push 0xa
push 0x14
push dword [eax + 0x50]
mov dword [eax + 0x9c], 1
mov dword [eax + 0x90], 1
call dword [sym.imp.USER32.dll_SetTimer]
jmp case.0x100076f7.8
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x70]
push eax
push dword [ebx + 4]
call esi
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebx + 0x18]
push dword [eax + 0x50]
call esi
lea eax, [esp + 0x80]
push eax
mov eax, dword [ebx + 0x1c]
push dword [eax + 4]
call esi
lea eax, [esp + 0x48]
push eax
mov eax, dword [ebx + 0x20]
push dword [eax + 8]
call esi
lea eax, [esp + 0x38]
push eax
mov eax, dword [ebx + 0x10]
push dword [eax + 0x10]
call esi
mov eax, dword [ebx + 0x14]
mov ecx, edi
mov eax, dword [eax + 0x24]
add eax, dword [esp + 0x8c]
cmp edi, eax
cmovl ecx, eax
sub ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x44]
push ecx
mov ecx, dword [ebx + 0x18]
call fcn.10020410
mov ecx, dword [ebx + 0x18]
cmp dword [ecx + 0xb8], eax
je case.0x100076f7.8
push eax
call fcn.100204a0
push 0
push 0x19
push 0x50
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetTimer]
jmp case.0x100076f7.8
mov ecx, ebx
call fcn.10009cf0
push dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
push eax
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc