Function at 0x5ba99ccd
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2d4
mov eax, dword [0x5bb70c3c]
push ebx
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
mov esi, ecx
mov dword [ebp - 0x2a4], eax
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, dword [esi + 0x160]
and dword [ebp - 0x2d4], 0
test ebx, ebx
mov dword [ebp - 0x2d0], 0x2c
mov dword [ebp - 0x2cc], 6
mov edi, 0x9c61
je 0x5ba99d47
lea eax, [ebp - 0x2d0]
push eax
push 1
push dword [ebp + 0x10]
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
test eax, eax
je 0x5ba99d47
mov eax, dword [ebp - 0x2bc]
cmp eax, dword [ebp - 0x2a4]
je 0x5ba99e02
lea eax, [ebp - 0x2d0]
push eax
push 0
push 0x9c60
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
test eax, eax
je 0x5ba99d93
mov eax, dword [ebp - 0x2a4]
cmp dword [ebp - 0x2bc], eax
jne 0x5ba99d93
lea eax, [ebp - 0x2d0]
push eax
push 0
push 0x9c60
push ebx
mov dword [ebp - 0x2c0], edi
mov dword [ebp - 0x2cc], 2
call dword [sym.imp.USER32.dll_SetMenuItemInfoA]
lea eax, [ebp - 0x2d0]
push eax
push 0
push edi
push ebx
mov dword [ebp - 0x2cc], 6
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
test eax, eax
je 0x5ba9a17b
mov eax, dword [ebp - 0x2a4]
cmp dword [ebp - 0x2bc], eax
jne 0x5ba9a17b
mov ecx, esi
call fcn.5bad68aa
mov eax, dword [esi + 0xd0]
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2a4], eax
lea eax, [ebp - 0x2d0]
push eax
push 0
push edi
push ebx
mov dword [ebp - 0x2cc], 4
mov dword [ebp - 0x2c0], edi
call dword [sym.imp.USER32.dll_SetMenuItemInfoA]
mov eax, dword [ebp - 0x2c0]
sub eax, 0x9c49
je 0x5ba99f89
sub eax, 6
je 0x5ba99f6a
sub eax, 4
je 0x5ba99e8a
sub eax, 5
je 0x5ba99e78
dec eax
je 0x5ba99e4f
sub eax, 8
jne 0x5ba9a149
mov eax, dword [esi + 0x48]
test eax, eax
je 0x5ba9a149
mov ecx, dword [eax]
push edi
push dword [ebp - 0x2a4]
push eax
call dword [ecx + 0x2c]
jmp 0x5ba9a149
push 0x9deb
push 0x9de1
push 0x9c62
push dword [ebp - 0x2a4]
call fcn.5bab7851
mov dword [ebp - 0x2d4], 1
jmp 0x5ba9a149
push 0
push dword [ebp - 0x2a4]
call fcn.5bac9b8a
jmp 0x5ba9a149
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
xor ebx, ebx
test byte [esi + 0x140], 4
push ebx
je 0x5ba99ef5
push 0x9daf
push dword [ebp - 0x2a4]
call edi
call fcn.5ba8cb0f
test eax, eax
jne 0x5ba99ed5
push ebx
push 0x9db1
push dword [ebp - 0x2a4]
call edi
push ebx
push 0x9db2
push dword [ebp - 0x2a4]
call edi
and byte [esi + 0x143], 0xf7
call fcn.5ba8cb40
test eax, eax
jne 0x5ba99f35
push ebx
push 0x9db3
push dword [ebp - 0x2a4]
call edi
and byte [esi + 0x143], 0xef
jmp 0x5ba99f35
push 0x9db0
push dword [ebp - 0x2a4]
call edi
push ebx
push 0x9db1
push dword [ebp - 0x2a4]
call edi
push ebx
push 0x9db2
push dword [ebp - 0x2a4]
call edi
push ebx
push 0x9db3
push dword [ebp - 0x2a4]
call edi
and byte [esi + 0x143], 0xe7
xor ebx, ebx
lea eax, [ebp - 0x2d0]
push eax
push ebx
push 0x9c55
push dword [ebp - 0x2a4]
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
test eax, eax
je 0x5ba9a149
mov eax, dword [esi + 0x3c]
push dword [ebp - 0x2bc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
jmp 0x5ba9a149
push 0x9d9b
push 0x9d91
push 0x9c50
push dword [ebp - 0x2a4]
call fcn.5bab7851
jmp 0x5ba9a149
test byte [esi + 0x140], 8
je 0x5ba9a149
and dword [ebp - 0x2a0], 0
push 0x26
pop ecx
push 0x2c
xor eax, eax
pop ebx
lea edi, [ebp - 0x29c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2d0]
push eax
push 0
mov edi, 0x9e30
push edi
push dword [ebp - 0x2a4]
mov dword [ebp - 0x2d0], ebx
mov dword [ebp - 0x2cc], 2
mov dword [ebp - 0x2c0], edi
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
test eax, eax
jne 0x5ba9a149
lea eax, [ebp - 0x2a0]
push eax
mov dword [ebp - 0x2a0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x5ba9a149
cmp dword [ebp - 0x290], 2
jne 0x5ba9a149
cmp dword [ebp - 0x29c], 5
jne 0x5ba9a149
cmp dword [ebp - 0x298], 1
jne 0x5ba9a149
cmp word [ebp - 0x294], 0xa28
jne 0x5ba9a149
call fcn.5babcc7f
test eax, eax
je 0x5ba9a149
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0x1b20
call fcn.5babcc7f
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
and dword [ebp - 0x2c8], 0
lea eax, [ebp - 0x204]
mov dword [ebp - 0x2ac], eax
lea eax, [ebp - 0x2d0]
push eax
mov dword [ebp - 0x2d0], ebx
push 0
mov ebx, 0x9c4d
push ebx
push dword [ebp - 0x2a4]
mov dword [ebp - 0x2c0], edi
mov edi, dword [sym.imp.USER32.dll_InsertMenuItemA]
mov dword [ebp - 0x2cc], 0x12
call edi
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0x1b21
call fcn.5babcc7f
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
and dword [ebp - 0x2c8], 0
lea eax, [ebp - 0x204]
mov dword [ebp - 0x2ac], eax
lea eax, [ebp - 0x2d0]
push eax
push 0
push ebx
push dword [ebp - 0x2a4]
mov dword [ebp - 0x2d0], 0x2c
mov dword [ebp - 0x2cc], 0x12
mov dword [ebp - 0x2c0], 0x9e3f
call edi
and dword [ebp - 0x2ac], 0
or dword [ebp - 0x2c0], 0xffffffff
lea eax, [ebp - 0x2d0]
push eax
push 0
push ebx
push dword [ebp - 0x2a4]
mov dword [ebp - 0x2d0], 0x2c
mov dword [ebp - 0x2cc], 0x12
mov dword [ebp - 0x2c8], 0x800
call edi
lea eax, [esi + 0x24]
push eax
push dword [ebp - 0x2a4]
call fcn.5ba59eb8
cmp dword [ebp - 0x2d4], 0
je 0x5ba9a177
mov esi, dword [esi + 0x48]
test esi, esi
je 0x5ba9a177
push dword [ebp - 0x2a4]
mov eax, dword [esi]
push esi
call dword [eax + 0xdc]
xor eax, eax
jmp 0x5ba9a17e
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.5bb3f314
leave
ret 0xc