Function at 0x407ca0
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x98]
sub esp, 0x98
push 0xffffffffffffffff
push 0x440850
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x4558d0]
xor eax, ebp
mov dword [ebp + 0x94], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor edi, edi
mov dword [ebp - 4], edi
push 0x456d30
call fcn.004111d4
mov dword [ebp], 0x94
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x407d16
cmp dword [ebp + 0x10], 2
jne 0x407d16
cmp dword [ebp + 4], 6
jb 0x407d16
mov dword [0x456cc8], 1
cmp dword [0x456f8c], edi
je 0x407dd4
call fcn.00406e20
mov esi, eax
mov eax, dword [0x456cd0]
cmp eax, edi
je 0x407d39
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [0x456cd0], edi
cmp esi, edi
je 0x407dad
call fcn.00407c20
mov eax, dword [0x456cc0]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, edi
je 0x407d92
push edi
push 0x1495
push 0x111
push eax
call esi
push edi
push edi
push 2
mov ecx, dword [0x456cc0]
push ecx
call esi
mov edx, dword [0x456cc4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
push str.IDMGrabberHlp_class3
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, dword [0x456f7c]
cmp eax, edi
je 0x407dad
push 0x20f
push 0x1494
push 0x111
push eax
call esi
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x94]
xor ecx, ebp
call fcn.0042cc02
add ebp, 0x98
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call esi
push eax
push edi
push 0x404d70
push 0xa
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [0x456ca8], eax
push edi
call fcn.0041d924
add esp, 4
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push 0x404d40
call fcn.0042d9ce
add esp, 4
call fcn.00407c20
mov eax, dword [0x456d58]
mov eax, dword [eax - 0xc]
cmp eax, 3
jle 0x407f86
mov ecx, dword [0x456f7c]
mov dword [0x456cb8], ecx
mov edx, dword [0x456f84]
mov dword [0x456cb4], edx
call esi
mov dword [0x456cb0], eax
mov eax, dword [0x456cb4]
push eax
mov ecx, dword [0x456cc0]
push ecx
push 0x1441
mov edx, dword [0x456cb8]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.00401440
mov ebx, 1
cmp dword [0x456f78], ebx
jne 0x407f01
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x456f74
call fcn.00405640
mov byte [ebp - 4], bl
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x456f70
call fcn.00405640
mov byte [ebp - 4], 2
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
push 0x456f6c
call fcn.00405640
mov byte [ebp - 4], 3
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x456f68
call fcn.00405640
mov byte [ebp - 4], 4
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x456f64
call fcn.00405640
mov byte [ebp - 4], 5
push 0x456d5c
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x456d58
call fcn.00405640
mov byte [ebp - 4], 6
mov byte [ebp - 4], 0
call fcn.00402c90
add esp, 0x1c
jmp 0x407f40
mov eax, dword [0x456f80]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x456f64
call fcn.00405640
mov byte [ebp - 4], 7
push 0x456d5c
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x456d58
call fcn.00405640
mov byte [ebp - 4], 8
mov byte [ebp - 4], 0
call fcn.00403170
add esp, 0x10
mov byte [ebp - 4], 9
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea ecx, [ebp - 0x44]
push ecx
call esi
test eax, eax
je 0x407f7a
cmp dword [ebp - 0x40], 0x20
je 0x407f56
lea edx, [ebp - 0x44]
push edx
call edi
lea eax, [ebp - 0x44]
push eax
call ebx
jmp 0x407f56
mov dword [ebp - 4], 0
call fcn.00401520
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x456ca8]
test eax, eax
je 0x407f9c
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov eax, dword [0x456cac]
test eax, eax
je 0x407fac
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov ecx, 0x456d14
call fcn.00405070
mov eax, dword [0x456cc0]
test eax, eax
je 0x407fcc
push 0
push 0
push 2
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x456cc4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
push str.IDMGrabberHlp_class3
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov dword [ebp - 4], 0xffffffff
jmp 0x407dad