Function at 0x404245
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x150
mov eax, dword [0x496ab0]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push 2
push dword [0x4981c8]
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0xc], eax
push 0x400
push 2
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_RemoveMenu]
push 0x400
push 2
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_RemoveMenu]
push 0x400
push 2
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_RemoveMenu]
push 0x400
push 2
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_RemoveMenu]
push 0x400
push 2
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_RemoveMenu]
and dword [ebp - 8], 0
or dword [0x498088], 0xffffffff
or dword [0x49808c], 0xffffffff
or dword [0x498090], 0xffffffff
or dword [0x498094], 0xffffffff
or dword [0x49810c], 0xffffffff
cmp dword [0x497ef0], 0
je 0x404385
lea eax, [ebp - 0x144]
push eax
push 0x4862c8
mov eax, dword [0x497ef0]
mov eax, dword [eax]
push dword [0x497ef0]
call dword [eax]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404385
lea eax, [ebp - 0x14c]
push eax
mov eax, dword [ebp - 0x144]
mov eax, dword [eax]
push dword [ebp - 0x144]
call dword [eax + 0xc]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404374
cmp dword [ebp - 0x14c], 0
jbe 0x404374
push str.Audio_Capture_Filter...
mov eax, dword [ebp - 8]
add eax, 0x2a
push eax
push 0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 8]
mov dword [0x49808c], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
push dword [ebp - 0x148]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x144]
mov eax, dword [eax]
push dword [ebp - 0x144]
call dword [eax + 8]
cmp dword [0x497eec], 0
je 0x404414
lea eax, [ebp - 0x14]
push eax
push 0x4862c8
mov eax, dword [0x497eec]
mov eax, dword [eax]
push dword [0x497eec]
call dword [eax]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404414
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 0xc]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404409
cmp dword [ebp - 0x140], 0
jbe 0x404409
push str.Video_Capture_Filter...
mov eax, dword [ebp - 8]
add eax, 0x2a
push eax
push 0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 8]
mov dword [0x498088], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
push dword [ebp - 0x13c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 8]
cmp dword [0x497ecc], 0
je 0x4044df
lea eax, [ebp - 0x10]
push eax
push 0x47cd90
push dword [0x497eec]
push 0x47ecc0
push 0x47d8f0
mov eax, dword [0x497ecc]
mov eax, dword [eax]
push dword [0x497ecc]
call dword [eax + 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4044df
lea eax, [ebp - 0x14]
push eax
push 0x4862c8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [ebp - 0x10]
call dword [eax]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4044d4
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 0xc]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x4044c9
cmp dword [ebp - 0x140], 0
jbe 0x4044c9
push str.Video_Capture_Pin...
mov eax, dword [ebp - 8]
add eax, 0x2a
push eax
push 0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 8]
mov dword [0x498090], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
push dword [ebp - 0x13c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [ebp - 0x10]
call dword [eax + 8]
push 0x114
push 0
lea eax, [ebp - 0x138]
push eax
call fcn.0044a620
add esp, 0xc
mov dword [ebp - 0x138], 0x114
lea eax, [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x134], 5
jne 0x40452a
cmp dword [ebp - 0x130], 1
jb 0x40452a
mov dword [ebp - 0x150], 1
jmp 0x404531
and dword [ebp - 0x150], 0
mov eax, dword [ebp - 0x150]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
jne 0x404566
push str.PowerLine_Frequency...
mov eax, dword [ebp - 8]
add eax, 0x2a
push eax
push 0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 8]
mov dword [0x49810c], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp dword [0x497ef0], 0
jne 0x404574
jmp 0x40463f
cmp dword [0x497ecc], 0
je 0x40463f
lea eax, [ebp - 0x10]
push eax
push 0x47cd90
push dword [0x497ef0]
push 0x47ecb0
push 0x47d8f0
mov eax, dword [0x497ecc]
mov eax, dword [eax]
push dword [0x497ecc]
call dword [eax + 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x40463f
lea eax, [ebp - 0x14]
push eax
push 0x4862c8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [ebp - 0x10]
call dword [eax]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404634
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 0xc]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404629
cmp dword [ebp - 0x140], 0
jbe 0x404629
push str.Audio_Capture_Pin...
mov eax, dword [ebp - 8]
add eax, 0x2a
push eax
push 0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [ebp - 8]
mov dword [0x498094], eax
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
push dword [ebp - 0x13c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push dword [ebp - 0x14]
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
push dword [ebp - 0x10]
call dword [eax + 8]
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0044a605
leave
ret