Function at 0x44e750
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x61311b
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x6963f4]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push esi
push edi
mov eax, dword [0x6963f4]
xor eax, esp
push eax
lea eax, [esp + 0xc8]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
cmp dword [edi + 0xd4], ebx
je 0x44ed1d
mov eax, dword [edi + 0x1a18]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x44e7c9
mov eax, dword [edi + 0x20]
push 1
push eax
call dword [sym.imp.user32.dll_KillTimer]
push 1
mov esi, edi
mov dword [edi + 0x1a18], ebx
call fcn.0044e4d0
mov dword [esp + 0x1c], vtable.CMenu.0
mov dword [esp + 0x20], ebx
mov dword [esp + 0xd0], ebx
call fcn.00568851
mov eax, dword [eax + 0xc]
push 0x7d2
push eax
call dword [sym.imp.user32.dll_LoadMenuA]
push eax
lea ecx, [esp + 0x20]
call fcn.0057d5fc
mov ecx, dword [esp + 0x20]
push ebx
push ecx
call dword [sym.imp.user32.dll_GetSubMenu]
push eax
call fcn.0057d5d4
lea edx, [esp + 0x10]
push edx
mov dword [edi + 0x1a58], eax
call dword [sym.imp.user32.dll_GetCursorPos]
cmp dword [edi + 0x54], ebx
mov esi, dword [sym.imp.user32.dll_DeleteMenu]
je 0x44e83a
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0x80ba
push eax
call esi
mov eax, dword [edi + 0x5c]
add eax, 0xffffffff
cmp eax, 6
ja case.default.0x44e849
jmp dword [eax*4 + 0x44ed44]
mov eax, dword [edi + 0x1a58]
mov ecx, dword [eax + 4]
push 0x400
push 4
push ecx
call esi
cmp dword [edi + 0x5c], 4
je 0x44e88d
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push ebx
push 0x80ba
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0x8010
push eax
call esi
mov eax, dword [edi + 0x1a58]
mov ecx, dword [eax + 4]
push ebx
push 0x800e
push ecx
call esi
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push ebx
push 0x8011
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0xda
push eax
call esi
cmp dword [edi + 0xe4], ebx
jne case.default.0x44e849
push ebx
push 0x8010
jmp 0x44e97d
mov eax, dword [edi + 0x60]
cmp eax, 0xfffffffe
je 0x44e8e7
cmp eax, 0xffffffff
jne 0x44e8fa
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push 0x400
push 4
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0x8011
push eax
jmp 0x44e987
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push 0x400
push 4
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0x800c
push eax
jmp 0x44e987
mov eax, dword [edi + 0x1a58]
mov ecx, dword [eax + 4]
push 0x400
push 4
push ecx
call esi
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push ebx
push 0x80ba
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push ebx
push 0x8011
push eax
call esi
mov eax, dword [edi + 0x1a44]
cmp eax, ebx
jle case.default.0x44e849
cmp eax, 3
jge case.default.0x44e849
push ebx
push 0xda
mov eax, dword [edi + 0x1a58]
mov ecx, dword [eax + 4]
push ecx
call esi
cmp dword [edi + 0x54], ebx
je 0x44e9a0
mov eax, dword [edi + 0x1a58]
mov edx, dword [eax + 4]
push ebx
push 0x800c
push edx
call esi
mov eax, dword [edi + 0x1a58]
mov eax, dword [eax + 4]
push 1
push 1
push eax
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x28], 0x94
call dword [sym.imp.kernel32.dll_GetVersionExA]
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp ecx, 4
ja 0x44e9db
jne 0x44e9e0
cmp dword [esp + 0x2c], 0xa
jb 0x44e9e0
mov eax, 0x4000
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x14]
push ebx
push edx
mov edx, dword [esp + 0x18]
push ebx
push ecx
push edx
or eax, 0x102
push eax
mov eax, dword [edi + 0x1a58]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.user32.dll_TrackPopupMenu]
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [esp + 0x10]
push edx
push eax
call dword [sym.imp.user32.dll_SetCursorPos]
cmp dword [edi + 0x7c], ebx
mov dword [edi + 0x1a58], ebx
je 0x44ea2d
push ebx
xor edx, edx
mov ecx, edi
call fcn.0044cad0
cmp esi, 0x8005
jg 0x44eb02
je 0x44eaf3
cmp esi, 0xda
jne case.0x44eb1a.32781
mov eax, dword [edi + 0x5c]
cmp eax, 1
mov dword [esp + 0x18], ebx
mov dword [edi + 0xe0], 2
je 0x44ea66
cmp eax, 7
jne 0x44eadb
mov ecx, dword [edi + 0xd0]
push ecx
call fcn.0044d2a0
mov eax, dword [edi + 0x68]
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x6c]
mov dword [edi + 0x1a2c], eax
mov eax, dword [edi + 0x1a50]
mov dword [edi + 0x1a28], edx
mov edx, dword [edi + 0x70]
push eax
mov dword [edi + 0x1a30], ecx
mov dword [edi + 0x1a34], edx
call fcn.0044c240
mov ecx, dword [edi + 0x1a30]
mov edx, dword [edi + 0x1a34]
lea esi, [esp + 0x10]
mov dword [edi + 0x1a50], 0xffffffff
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0044af80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call dword [sym.imp.user32.dll_SetCursorPos]
xor ebx, ebx
mov dword [edi + 0x5c], 6
mov dword [edi + 0x1a14], ebx
mov dword [edi + 0x1a44], ebx
jmp 0x44ecd0
mov dword [edi + 0x88], 2
jmp case.0x44eb1a.32781
lea eax, [esi - 0x8007]
cmp eax, 0xb3
ja case.0x44eb1a.32781
movzx edx, byte [eax + 0x44ed8c]
jmp dword [edx*4 + 0x44ed60]
cmp dword [edi + 0xd0], ebx
je 0x44eb40
cmp dword [edi + 0x1a44], 2
jle 0x44eb40
push 1
call fcn.0044d2a0
xor ebx, ebx
jmp case.0x44eb1a.32781
mov eax, 1
mov dword [edi + 0x88], eax
mov dword [edi + 0x84], eax
jmp case.0x44eb1a.32781
xor ebx, ebx
mov eax, edi
call fcn.0044e5e0
jmp case.0x44eb1a.32781
mov ebx, 1
mov eax, edi
call fcn.0044e5e0
xor ebx, ebx
jmp case.0x44eb1a.32781
mov ebx, 2
mov eax, edi
call fcn.0044e5e0
xor ebx, ebx
jmp case.0x44eb1a.32781
mov ebx, 3
mov eax, edi
call fcn.0044e5e0
xor ebx, ebx
jmp case.0x44eb1a.32781
mov ebx, 4
mov eax, edi
call fcn.0044e5e0
xor ebx, ebx
jmp case.0x44eb1a.32781
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x1a14], ebx
mov dword [edi + 0x1a44], ebx
push eax
jmp 0x44ecd2
mov eax, dword [edi + 0x60]
cmp eax, 0xfffffffe
mov dword [edi + 0x1a50], 0xffffffff
mov dword [esp + 0x18], ebx
jne 0x44ebf1
mov eax, 2
mov dword [edi + 0x5c], eax
jmp 0x44ecb3
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
add ecx, 3
mov eax, ecx
mov dword [edi + 0x5c], eax
jmp 0x44ecb3
cmp dword [edi + 0x5c], 1
mov dword [esp + 0x18], ebx
jne 0x44ec4c
mov eax, dword [edi + 0x68]
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x6c]
mov dword [edi + 0x1a2c], eax
mov eax, dword [edi + 0x1a50]
mov dword [edi + 0x1a28], edx
mov edx, dword [edi + 0x70]
push eax
mov dword [edi + 0x1a30], ecx
mov dword [edi + 0x1a34], edx
call fcn.0044c240
mov dword [edi + 0x1a50], 0xffffffff
xor ebx, ebx
mov eax, dword [edi + 0x74]
cmp eax, ebx
je 0x44ec5d
push eax
call dword [sym.imp.gdi32.dll_DeleteObject]
mov dword [edi + 0x74], ebx
mov ecx, dword [edi + 0x1a30]
mov edx, dword [edi + 0x1a34]
lea esi, [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0044af80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call dword [sym.imp.user32.dll_SetCursorPos]
push 1
mov ecx, edi
mov dword [edi + 0x5c], 5
call fcn.0044b080
xor ebx, ebx
jmp case.0x44eb1a.32781
mov dword [edi + 0x1a50], 0xffffffff
mov dword [esp + 0x18], ebx
mov dword [edi + 0x5c], 7
mov eax, dword [edi + 0x74]
cmp eax, ebx
mov dword [edi + 0x1a44], ebx
mov dword [edi + 0x1a14], ebx
je 0x44ecd0
push eax
call dword [sym.imp.gdi32.dll_DeleteObject]
mov dword [edi + 0x74], ebx
push 1
mov ecx, edi
call fcn.0044b080
push ebx
xor edx, edx
mov ecx, edi
call fcn.0044cad0
cmp dword [esp + 0x18], ebx
je 0x44ed01
mov edx, dword [edi + 0x20]
push ebx
push 0x1f4
push 1
push edx
call dword [sym.imp.user32.dll_SetTimer]
mov dword [edi + 0x1a18], eax
mov dword [esp + 0xd0], 0xffffffff
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], vtable.CMenu.0
call fcn.0057d64f
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.0059e0c2
mov esp, ebp
pop ebp
ret 0xc