Function at 0x45d3c0
Capabilities:
Check os version

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
push 0
mov esi, eax
mov eax, dword [esi + 0x69c]
mov eax, dword [eax + 0x2b8]
push 0
push 0x1032
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [esi + 0x218]
mov edi, eax
sub edi, 1
neg edi
sbb edi, edi
add edi, 1
xor eax, eax
test ebp, ebp
jne 0x45d426
test edi, edi
mov ecx, dword [esi + 0x208]
jne 0x45d40d
mov eax, 1
push eax
push 0x9c49
push 0
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
jmp 0x45d436
test edi, edi
jne 0x45d42f
mov eax, 1
push eax
push 0x9c49
push ebp
call dword [sym.imp.USER32.dll_EnableMenuItem]
test ebx, ebx
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
je 0x45d477
push 0
push 0x9c49
push 0x412
push ebx
call ebp
test edi, edi
movzx eax, ax
je 0x45d461
or eax, 4
jmp 0x45d466
and eax, 0xfffb
movzx ecx, ax
push ecx
push 0x9c49
push 0x411
push ebx
call ebp
mov eax, dword [esi + 0x69c]
cmp dword [eax + 0x2f8], 0
je 0x45d493
mov edi, dword [eax + 0x2b8]
call fcn.00471d00
jmp 0x45d4a5
mov eax, dword [eax + 0x2b8]
push 0
push 0
push 0x1032
push eax
call ebp
mov ecx, dword [esp + 0x14]
mov edi, dword [esi + 0x218]
xor edx, edx
cmp eax, 1
setge dl
xor eax, eax
test ecx, ecx
mov ebp, edx
jne 0x45d4e7
test ebp, ebp
mov ecx, dword [esi + 0x208]
jne 0x45d4ce
mov eax, 1
push eax
push 0x9c41
push 0
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
jmp 0x45d4f7
test ebp, ebp
jne 0x45d4f0
mov eax, 1
push eax
push 0x9c41
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
test edi, edi
je 0x45d538
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x9c41
push 0x412
push edi
call ebx
test ebp, ebp
movzx eax, ax
je 0x45d522
or eax, 4
jmp 0x45d527
and eax, 0xfffb
movzx eax, ax
push eax
push 0x9c41
push 0x411
push edi
call ebx
test ebp, ebp
jne 0x45d54c
mov ecx, dword [esi + 0x698]
cmp dword [ecx + 0x14], 2
je 0x45d54c
xor edi, edi
jmp 0x45d551
mov edi, 1
mov ebx, dword [esi + 0x218]
xor eax, eax
cmp dword [esp + 0x14], eax
jne 0x45d587
test edi, edi
mov ecx, dword [esi + 0x208]
jne 0x45d56e
mov eax, 1
push eax
push 0x9c48
push 1
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
jmp 0x45d59b
test edi, edi
jne 0x45d590
mov eax, 1
mov edx, dword [esp + 0x14]
push eax
push 0x9c48
push edx
call dword [sym.imp.USER32.dll_EnableMenuItem]
test ebx, ebx
je 0x45d5de
push 0
push 0x9c48
push 0x412
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
movzx eax, ax
je 0x45d5c4
or eax, 4
jmp 0x45d5c9
and eax, 0xfffb
movzx eax, ax
push eax
push 0x9c48
push 0x411
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
cmp dword [esp + 0x14], eax
jne 0x45d618
test ebp, ebp
mov ecx, dword [esi + 0x208]
jne 0x45d5f5
mov eax, 1
mov ebx, dword [sym.imp.USER32.dll_GetMenu]
push eax
push 0x9c4a
push 2
push ecx
call ebx
mov ebp, dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableMenuItem]
jmp 0x45d63e
test ebp, ebp
jne 0x45d621
mov eax, 1
mov ecx, dword [esp + 0x14]
push eax
push 0x9c4a
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov ebp, dword [sym.imp.USER32.dll_GetSubMenu]
mov ebx, dword [sym.imp.USER32.dll_GetMenu]
mov edx, dword [esi + 0x69c]
mov eax, dword [edx + 0x2b8]
push 0
push 0
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esp + 0x14]
xor ecx, ecx
test edi, edi
jne 0x45d684
test eax, eax
mov edx, dword [esi + 0x208]
jne 0x45d673
mov ecx, 1
push ecx
push 0x9c4c
push 2
push edx
call ebx
push eax
call ebp
push eax
jmp 0x45d694
test eax, eax
jne 0x45d68d
mov ecx, 1
push ecx
push 0x9c4c
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esi + 0x69c]
mov eax, dword [eax + 0x2b8]
push 0
push 0
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
test edi, edi
jne 0x45d6dc
test eax, eax
mov edx, dword [esi + 0x208]
jne 0x45d6cb
mov ecx, 1
push ecx
push 0x9c58
push 2
push edx
call ebx
push eax
call ebp
push eax
jmp 0x45d6ec
test eax, eax
jne 0x45d6e5
mov ecx, 1
push ecx
push 0x9c58
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov edx, dword [esi + 0x698]
mov ecx, dword [esi + 0x208]
xor eax, eax
cmp dword [edx + 4], eax
je 0x45d70a
mov eax, 8
push eax
push 0x9c45
push 2
push ecx
call ebx
push eax
call ebp
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
push eax
call edi
mov edx, dword [esi + 0x698]
mov ecx, dword [esi + 0x208]
xor eax, eax
cmp dword [edx + 8], eax
je 0x45d739
mov eax, 8
push eax
push 0x9c56
push 2
push ecx
call ebx
push eax
call ebp
push eax
call edi
mov edx, dword [esi + 0x698]
mov ecx, dword [esi + 0x208]
xor eax, eax
cmp dword [edx + 0xc], eax
je 0x45d762
mov eax, 8
push eax
push 0x9c5c
push 2
push ecx
call ebx
push eax
call ebp
push eax
call edi
mov edx, dword [esi + 0x698]
mov ecx, dword [esi + 0x208]
xor eax, eax
cmp dword [edx + 0x18], eax
je 0x45d78b
mov eax, 8
push eax
push 0x9c5d
push 2
push ecx
call ebx
push eax
call ebp
push eax
call edi
mov eax, dword [esi + 0x698]
mov edi, dword [eax + 0x14]
mov eax, dword [esi + 0x208]
push 2
push eax
add edi, 0xac44
call ebx
push eax
call ebp
push 0
push edi
push 0xac46
push 0xac45
push eax
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
cmp dword [0x48c8c4], 0
jne 0x45d7eb
push 0x48c8c0
mov dword [0x48c8c0], 0x114
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
cmp dword [0x48c8c4], 5
jbe 0x45d822
cmp dword [0x48e16c], 0
jne 0x45d812
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
call fcn.0045b0c0
mov dword [0x48e16c], 1
cmp dword [0x48e170], 0
jne 0x45d822
mov edi, 1
jmp 0x45d824
xor edi, edi
mov ebx, dword [esi + 0x218]
xor eax, eax
cmp dword [esp + 0x14], eax
jne 0x45d856
test edi, edi
mov ecx, dword [esi + 0x208]
jne 0x45d841
mov eax, 1
push eax
push 0x9c6c
push 4
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call ebp
push eax
jmp 0x45d86a
test edi, edi
jne 0x45d85f
mov eax, 1
mov ecx, dword [esp + 0x14]
push eax
push 0x9c6c
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
test ebx, ebx
je 0x45d8ad
push 0
push 0x9c6c
push 0x412
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test edi, edi
movzx eax, ax
je 0x45d893
or eax, 4
jmp 0x45d898
and eax, 0xfffb
movzx edx, ax
push edx
push 0x9c6c
push 0x411
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x69c]
mov eax, dword [eax + 0x2b8]
push 0
push 0
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
test eax, eax
setg cl
xor eax, eax
mov edi, ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x45d900
test edi, edi
mov ecx, dword [esi + 0x208]
jne 0x45d8eb
mov eax, 1
push eax
push 0x9c46
push 2
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call ebp
push eax
jmp 0x45d910
test edi, edi
jne 0x45d909
mov eax, 1
push eax
push 0x9c46
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov ebx, dword [esi + 0x218]
xor eax, eax
cmp dword [esp + 0x14], eax
jne 0x45d948
test edi, edi
mov esi, dword [esi + 0x208]
jne 0x45d933
mov eax, 1
push eax
push 0x9c4e
push 1
push esi
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call ebp
push eax
jmp 0x45d95c
test edi, edi
jne 0x45d951
mov eax, 1
mov edx, dword [esp + 0x14]
push eax
push 0x9c4e
push edx
call dword [sym.imp.USER32.dll_EnableMenuItem]
test ebx, ebx
je 0x45d99d
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x9c4e
push 0x412
push ebx
call esi
test edi, edi
movzx eax, ax
je 0x45d987
or eax, 4
jmp 0x45d98c
and eax, 0xfffb
movzx eax, ax
push eax
push 0x9c4e
push 0x411
push ebx
call esi
pop edi
pop esi
pop ebp
pop ebx
ret 4