Function at 0x42a500
Capabilities:
Check os version
Get token membership

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x180
mov eax, dword [0x441cc0]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x178], 0x114
push 0x110
push 0
lea eax, [ebp - 0x174]
push eax
call fcn.00413d10
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x42a593
mov dword [ebp - 0x5c], 1
lea ecx, [ebp + 8]
push ecx
push 0xa
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x42a593
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
lea edx, [ebp - 0x178]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x42a5ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
cmp dword [ebp - 0x174], 6
jb 0x42a62f
lea eax, [ebp - 4]
push eax
push 4
lea ecx, [ebp - 0x180]
push ecx
push 0x12
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x42a5f6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
cmp dword [ebp - 0x180], 3
jne 0x42a62f
lea eax, [ebp - 4]
push eax
push 4
lea ecx, [ebp - 0x58]
push ecx
push 0x13
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x42a62f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
cmp dword [ebp - 0x58], 0
jne 0x42a659
lea eax, [ebp - 0x58]
push eax
push 1
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_DuplicateToken]
test eax, eax
jne 0x42a659
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
mov byte [ebp - 0x50], 0
push 0x43
push 0
lea edx, [ebp - 0x4f]
push edx
call fcn.00413d10
add esp, 0xc
mov dword [ebp - 4], 0x44
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x50]
push ecx
push 0
push 0x1a
call dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
jne 0x42a69a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
jmp 0x42a6bc
lea edx, [ebp - 0x54]
push edx
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x42a6bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x17c], eax
cmp dword [ebp + 8], 0
je 0x42a6d9
cmp dword [ebp - 0x5c], 0
je 0x42a6d9
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp + 8], 0
cmp dword [ebp - 0x58], 0
je 0x42a6f0
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x58], 0
cmp dword [ebp - 0x17c], 0
je 0x42a722
cmp dword [0x445d74], 0
je 0x42a71e
mov ecx, dword [ebp - 0x17c]
push ecx
push str.CUtility::IsUserInAdminGroup2
push str.__s__User_is_not_in_admin_group__error_code:_d
push 3
call dword [0x445d74]
add esp, 0x10
xor edx, edx
jne 0x42a6f9
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00413c2f
mov esp, ebp
pop ebp
ret