Function at 0x5ba67d54
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x77c
mov eax, dword [0x5bb70c3c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebx + 0x64]
test eax, eax
push esi
mov esi, dword [sym.imp.USER32.dll_GetMenuItemInfoA]
push edi
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 6
je 0x5ba67dbd
lea ecx, [ebp - 0x6d4]
push ecx
xor edi, edi
inc edi
push edi
push dword [ebp + 0x10]
push eax
call esi
test eax, eax
je 0x5ba67dbd
mov eax, dword [ebp - 0x6c0]
cmp eax, dword [ebp - 0x6a4]
je 0x5ba67e83
lea eax, [ebp - 0x6d4]
push eax
push 0
mov edi, 0x9c60
push edi
push dword [ebx + 0x64]
call esi
test eax, eax
je 0x5ba67e0a
mov eax, dword [ebp - 0x6a4]
cmp dword [ebp - 0x6c0], eax
jne 0x5ba67e0a
lea eax, [ebp - 0x6d4]
push eax
push 0
push edi
push dword [ebx + 0x64]
mov dword [ebp - 0x6d0], 2
mov dword [ebp - 0x6c4], 0x9c61
call dword [sym.imp.USER32.dll_SetMenuItemInfoA]
push dword [ebp + 0x10]
push dword [ebx + 0x64]
call dword [sym.imp.USER32.dll_GetSubMenu]
test eax, eax
mov dword [ebp - 0x6a8], eax
je 0x5ba6840f
push eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov edi, eax
cmp edi, 0xffffffff
je 0x5ba6840f
dec edi
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 6
js 0x5ba6840f
lea eax, [ebp - 0x6d4]
push eax
push 1
push edi
push dword [ebp - 0x6a8]
call esi
test eax, eax
je 0x5ba67e75
mov eax, dword [ebp - 0x6a4]
cmp eax, dword [ebp - 0x6c0]
je 0x5ba67e78
dec edi
jns 0x5ba67e51
test edi, edi
jl 0x5ba6840f
xor edi, edi
inc edi
mov eax, dword [ebp - 0x6c4]
mov dword [ebp - 0x6a8], eax
sub eax, 0x9c41
je 0x5ba682c6
sub eax, 8
je 0x5ba6810c
sub eax, 6
je 0x5ba680bd
sub eax, 4
jne 0x5ba683cc
cmp dword [ebx + 0x58], 0
je 0x5ba67eff
push dword [ebx + 0x36c]
push dword [ebp - 0x6a4]
call fcn.5ba5d1fb
cmp dword [ebx + 0x58], 0
je 0x5ba67eff
lea eax, [ebp - 0x6d4]
push eax
push 0
push 0x9c54
push dword [ebx + 0x64]
call esi
test eax, eax
je 0x5ba67eff
lea eax, [ebx + 0x36c]
push eax
push dword [ebp - 0x6c0]
call fcn.5ba685c3
and dword [ebx + 0x58], 0
cmp dword [ebx + 0x5c], 0
jne 0x5ba67f13
push dword [ebp - 0x6a4]
call fcn.5ba6886f
mov dword [ebx + 0x5c], edi
push 0x69
call fcn.5ba5c700
mov edi, eax
cmp edi, 0xffffffff
mov esi, 0x200
lea eax, [ebp - 0x204]
push esi
push eax
je 0x5ba67f58
push 0x1387
call fcn.5ba56439
push edi
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x604]
push esi
push eax
call sub.SHLWAPI.dll_wnsprintfA
add esp, 0x10
lea eax, [ebp - 0x604]
jmp 0x5ba67f68
push 0x186a
call fcn.5ba56439
lea eax, [ebp - 0x204]
push eax
mov eax, 0x9d06
push eax
push 0
push eax
push dword [ebp - 0x6a4]
call dword [sym.imp.USER32.dll_ModifyMenuA]
cmp dword [ebx + 0x78], 0
je 0x5ba67fa8
mov edi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0
push 0x9d0b
push dword [ebp - 0x6a4]
call edi
push 0
push 0x9c6b
push dword [ebp - 0x6a4]
call edi
and dword [ebp - 0x700], 0
push 0xa
xor eax, eax
and dword [ebp - 0x680], eax
pop ecx
push 0x1e
lea edi, [ebp - 0x6fc]
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x67c]
rep stosd dword es:[edi], eax
mov byte [ebp - 0x404], al
push 0x7f
pop ecx
lea edi, [ebp - 0x403]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x5bb73870]
test eax, eax
je 0x5ba68095
mov ecx, dword [eax]
lea edx, [ebp - 0x680]
push edx
push dword [ebx + 0x38]
push eax
call dword [ecx + 0xe0]
test eax, eax
jl 0x5ba68095
test byte [ebp - 0x65c], 8
je 0x5ba68019
mov eax, 0x87f
jmp 0x5ba6802d
mov al, byte [ebp - 0x63f]
neg al
sbb eax, eax
and eax, 0x1247
add eax, 0x876
push esi
lea ecx, [ebp - 0x404]
push ecx
push eax
push dword [0x5bb73708]
call dword [sym.imp.USER32.dll_LoadStringA]
and dword [ebp - 0x6f8], 0
lea eax, [ebp - 0x404]
mov dword [ebp - 0x6dc], eax
lea eax, [ebp - 0x700]
push eax
push 0
push 0x9d04
push dword [ebp - 0x6a4]
mov dword [ebp - 0x700], 0x2c
mov dword [ebp - 0x6fc], 0x10
call dword [sym.imp.USER32.dll_SetMenuItemInfoA]
mov eax, dword [0x5bb73870]
mov ecx, dword [eax]
lea edx, [ebp - 0x680]
push edx
push eax
call dword [ecx + 0x28]
test dword [0x5bb7381c], 0x40
jne 0x5ba683cc
push 0
push 0x9dfc
push dword [ebp - 0x6a4]
call dword [sym.imp.USER32.dll_DeleteMenu]
jmp 0x5ba683cc
push 0x9d9b
push 0x9d91
push 0x9c50
push dword [ebp - 0x6a4]
call fcn.5bab7851
lea esi, [ebx + 0x380]
cmp dword [esi], 0
jne 0x5ba683cc
push 0xb8
call fcn.5ba5c700
test eax, eax
je 0x5ba683cc
push 2
push dword [ebp - 0x6a4]
call fcn.5bb4f8b1
mov dword [esi], edi
jmp 0x5ba683cc
and dword [ebp - 0x6a0], 0
push 0x26
pop ecx
xor eax, eax
lea edi, [ebp - 0x69c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x6d4]
push eax
push 0
mov edi, 0x9e30
push edi
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 2
mov dword [ebp - 0x6c4], edi
call esi
test eax, eax
jne 0x5ba683cc
lea eax, [ebp - 0x6a0]
push eax
mov dword [ebp - 0x6a0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x5ba683cc
cmp dword [ebp - 0x690], 2
jne 0x5ba683cc
cmp dword [ebp - 0x69c], 5
jne 0x5ba683cc
cmp dword [ebp - 0x698], 1
jne 0x5ba683cc
cmp word [ebp - 0x694], 0xa28
jne 0x5ba683cc
call fcn.5babcc7f
test eax, eax
je 0x5ba683cc
mov esi, 0x200
push esi
lea eax, [ebp - 0x204]
push eax
push 0x1b20
call fcn.5babcc7f
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
and dword [ebp - 0x6cc], 0
lea eax, [ebp - 0x204]
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6d4]
push eax
push 0
push 0x9c4d
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6c4], edi
mov edi, dword [sym.imp.USER32.dll_InsertMenuItemA]
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 0x12
call edi
push esi
lea eax, [ebp - 0x204]
push eax
push 0x1b21
call fcn.5babcc7f
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
and dword [ebp - 0x6cc], 0
lea eax, [ebp - 0x204]
mov dword [ebp - 0x6b0], eax
lea eax, [ebp - 0x6d4]
push eax
push 0
mov esi, 0x9c4d
push esi
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 0x12
mov dword [ebp - 0x6c4], 0x9e3f
call edi
and dword [ebp - 0x6b0], 0
or dword [ebp - 0x6c4], 0xffffffff
lea eax, [ebp - 0x6d4]
push eax
push 0
push esi
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6d4], 0x2c
mov dword [ebp - 0x6d0], 0x12
mov dword [ebp - 0x6cc], 0x800
call edi
jmp 0x5ba683cc
mov eax, dword [0x5bb73870]
mov ecx, dword [eax]
lea edx, [ebp - 0x77c]
push edx
push dword [ebx + 0x38]
push eax
call dword [ecx + 0xe0]
test eax, eax
jl 0x5ba68397
cmp byte [ebp - 0x73b], 1
mov esi, 0x200
lea eax, [ebp - 0x204]
push esi
push eax
jne 0x5ba68333
push 0x188b
call fcn.5ba56439
mov edi, dword [sym.imp.USER32.dll_ModifyMenuA]
lea eax, [ebp - 0x204]
push eax
mov eax, 0x9caa
push eax
push 0
push eax
push dword [ebp - 0x6a4]
call edi
push esi
lea eax, [ebp - 0x204]
push eax
push 0x188c
jmp 0x5ba68368
push 0x188d
call fcn.5ba56439
mov edi, dword [sym.imp.USER32.dll_ModifyMenuA]
lea eax, [ebp - 0x204]
push eax
mov eax, 0x9caa
push eax
push 0
push eax
push dword [ebp - 0x6a4]
call edi
push esi
lea eax, [ebp - 0x204]
push eax
push 0x188e
call fcn.5ba56439
lea eax, [ebp - 0x204]
push eax
mov eax, 0x9cab
push eax
push 0
push eax
push dword [ebp - 0x6a4]
call edi
mov eax, dword [0x5bb73870]
mov ecx, dword [eax]
lea edx, [ebp - 0x77c]
push edx
push eax
call dword [ecx + 0x28]
push dword [ebp - 0x6a4]
call fcn.5ba65b4e
cmp dword [ebx + 0x78], 0
je 0x5ba683cc
mov esi, dword [sym.imp.USER32.dll_DeleteMenu]
push 0
push 0x9cb0
push dword [ebp - 0x6a4]
call esi
push 0
push 0x9cb1
push dword [ebp - 0x6a4]
call esi
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x5ba68400
push dword [ebp - 0x6a8]
mov ecx, dword [eax]
push dword [ebp - 0x6a4]
push dword [ebx + 0x64]
push eax
call dword [ecx + 0x28]
cmp dword [ebp - 0x6a8], 0x9c61
jne 0x5ba68400
mov eax, dword [ebx + 0x37c]
mov dword [ebp - 0x6a4], eax
add ebx, 4
push ebx
push dword [ebp - 0x6a4]
call fcn.5ba59eb8
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.5bb3f314
leave
ret 0x10