Function at 0x667c9f30
Capabilities:
Check os version

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
mov eax, 0x94
push ebp
mov ebp, esp
sub esp, 0xd8
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov esi, dword [ecx]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetVersionExA]
sub esp, 4
test eax, eax
mov ebx, eax
je 0x667c9ff7
cmp esi, 0x25
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0x9c]
ja case.default.0x667c9f93
jmp dword [esi*4 + 0x667ce624]
cmp edi, 2
sete bl
cmp ecx, 4
seta al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
lea esi, [esi]
lea esi, [esi]
mov ecx, str.__lx__ret__d_n
mov esi, str.IsOS
mov dword [esp + 0xc], ecx
mov edi, 0x667cc034
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov ecx, dword [ebp - 0x10]
mov eax, ebx
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
lea esp, [ecx - 4]
ret 4
cmp ecx, 3
seta bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 3
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
xor ebx, ebx
dec edi
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov edx, 2
mov dword [esp + 0x10], edx
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 1
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 1
setbe bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp ecx, 5
seta bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov esi, 0x25
mov dword [esp + 0x10], esi
jmp 0x667c9fd0
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str.IsOS
mov edi, str._OS_APPLIANCE__What_should_we_return_here__n
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str._OS_MEDIACENTER__What_should_we_return_here__n
mov dword [esp + 0xc], eax
mov eax, str.IsOS
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov edx, str._OS_SERVERADMINUI__What_should_we_return_here__n
mov ecx, str.IsOS
mov dword [esp + 0xc], edx
mov esi, 0x667cc034
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str.IsOS
mov edi, str._OS_TABLETPC__What_should_we_return_here__n
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x20
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x1f
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
mov dword [esp], 0xffffffff
lea eax, [ebp - 0xb0]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_IsWow64Process]
mov ebx, dword [ebp - 0xb0]
sub esp, 8
jmp 0x667c9ff7
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x1d
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
test byte [0x667cc034], 1
mov ebx, 1
je 0x667c9ff7
mov edx, str._OS_DOMAINMEMBER__What_should_we_return_here__n
mov ecx, str.IsOS
mov dword [esp + 0xc], edx
mov esi, 0x667cc034
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str.IsOS
mov edi, str._OS_WELCOMELOGONUI__What_should_we_return_here__n
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
test byte [0x667cc034], 1
mov ebx, 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str._OS_FASTUSERSWITCHING__What_should_we_return_here__n
mov dword [esp + 0xc], eax
mov eax, str.IsOS
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
cmp edi, 2
sete bl
test edx, edx
setne al
and bl, al
cmp ecx, 4
seta al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov edx, 0x19
mov dword [esp + 0x10], edx
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov ecx, 0x18
mov dword [esp + 0x10], ecx
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov esi, 0x17
mov dword [esp + 0x10], esi
jmp 0x667c9fd0
cmp ecx, 4
seta bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov edi, 0x16
mov dword [esp + 0x10], edi
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x15
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
xor ebx, ebx
cmp edi, 2
sete bl
test byte [0x667cc034], 8
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x14
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp edi, 2
sete bl
cmp ecx, 4
seta al
and bl, al
test edx, edx
setne al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x13
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp edi, 2
sete bl
cmp ecx, 4
seta al
and bl, al
test edx, edx
setne al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x12
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
dec edi
sete bl
cmp edx, 0x59
seta al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 0x11
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
test edx, edx
sete bl
dec edi
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov edx, 0x10
mov dword [esp + 0x10], edx
jmp 0x667c9fd0
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov ecx, str._OS_TERMINALREMOTEADMIN__What_should_we_return_here__n
mov esi, str.IsOS
mov dword [esp + 0xc], ecx
mov edi, 0x667cc034
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str._OS_TERMINALCLIENT__What_should_we_return_here__n
mov dword [esp + 0xc], eax
mov eax, str.IsOS
mov dword [esp + 8], eax
mov eax, 0x667cc034
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
xor ebx, ebx
test byte [0x667cc034], 1
je 0x667c9ff7
mov dword [esp], 0
mov eax, str._OS_EMBEDDED__What_should_we_return_here__n
mov edx, 0x667cc034
mov dword [esp + 0xc], eax
mov eax, str.IsOS
mov dword [esp + 8], eax
mov dword [esp + 4], edx
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7
cmp edx, 1
setbe bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov ecx, 0xc
mov dword [esp + 0x10], ecx
jmp 0x667c9fd0
cmp edx, 1
setbe bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov esi, 0xb
mov dword [esp + 0x10], esi
jmp 0x667c9fd0
cmp edx, 1
setbe bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov edi, 0xa
mov dword [esp + 0x10], edi
jmp 0x667c9fd0
cmp edx, 1
setbe bl
cmp edi, 2
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 9
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp edi, 2
sete bl
cmp ecx, 4
seta al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 8
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp edx, 0xa
sete bl
dec edi
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 6
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
cmp edx, 9
seta bl
dec edi
sete al
and bl, al
test byte [0x667cc034], 8
movzx ebx, bl
je 0x667c9ff7
mov dword [esp + 0x14], ebx
mov eax, 5
mov dword [esp + 0x10], eax
jmp 0x667c9fd0
xor ebx, ebx
test byte [0x667cc034], 4
je 0x667c9ff7
mov edx, str.IsOS
mov ecx, 0x667cc034
mov dword [esp + 0x10], esi
mov eax, str.__lx__unknown_parameter_n
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0
jmp 0x667c9ff7