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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x174
mov eax, dword [0x5254e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
push esi
push 0x110
lea eax, [ebp - 0x158]
push ebx
push eax
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x168], ebx
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x15c], 0x114
call fcn.004ac360
add esp, 0xc
lea ecx, [ebp - 0x170]
push ecx
push 0xa
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x41fc8f
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
lea edx, [ebp - 0x15c]
push edx
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
test eax, eax
jne 0x41fcb1
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x158], 6
jb 0x41fd29
mov edx, dword [ebp - 0x170]
mov esi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
lea eax, [ebp - 0x164]
push eax
push 4
lea ecx, [ebp - 0x174]
push ecx
push 0x12
push edx
call esi
test eax, eax
jne 0x41fcf0
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x174], 3
jne 0x41fd29
mov edx, dword [ebp - 0x170]
lea eax, [ebp - 0x164]
push eax
push 4
lea ecx, [ebp - 0x168]
push ecx
push 0x13
push edx
call esi
test eax, eax
jne 0x41fd29
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x168], ebx
jne 0x41fd5c
mov ecx, dword [ebp - 0x170]
lea eax, [ebp - 0x168]
push eax
push 1
push ecx
call dword [sym.imp.ADVAPI32.dll_DuplicateToken]
test eax, eax
jne 0x41fd5c
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
mov esi, dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x48]
push eax
push 0
mov ebx, 0x44
push 0x1a
mov dword [ebp - 0x164], ebx
call esi
test eax, eax
jne 0x41fd93
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
mov eax, dword [ebp - 0x168]
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x48]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x41fdc0
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x16c], 0
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x48]
push eax
push 0
setne cl
push 0x1b
mov byte [edi], cl
mov dword [ebp - 0x164], ebx
call esi
test eax, eax
jne 0x41fdf8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
mov eax, dword [ebp - 0x168]
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x48]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x41fe25
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x16c], 0
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x48]
push eax
push 0
setne cl
push 0x1c
mov byte [edi + 1], cl
mov dword [ebp - 0x164], ebx
call esi
test eax, eax
jne 0x41fe5e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
mov eax, dword [ebp - 0x168]
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x48]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x41fe88
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x16c], 0
lea edx, [ebp - 0x164]
push edx
lea eax, [ebp - 0x48]
push eax
push 0
setne cl
push 0x1d
mov byte [edi + 2], cl
mov dword [ebp - 0x164], ebx
call esi
test eax, eax
jne 0x41febe
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
mov eax, dword [ebp - 0x168]
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x48]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0x41fee8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [ebp - 0x160], eax
jmp 0x41fef5
cmp dword [ebp - 0x16c], 0
setne cl
mov byte [edi + 3], cl
mov eax, dword [ebp - 0x170]
mov esi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, eax
je 0x41ff12
push eax
call esi
mov dword [ebp - 0x170], 0
mov eax, dword [ebp - 0x168]
test eax, eax
je 0x41ff1f
push eax
call esi
cmp dword [ebp - 0x160], 0
mov ecx, dword [ebp - 4]
sete al
pop esi
xor ecx, ebp
pop ebx
call fcn.004a91d2
mov esp, ebp
pop ebp
ret