Function at 0x47ead4
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdec
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], edx
mov ebx, eax
lea eax, [ebp - 0x58]
mov edx, dword [0x46d838]
call fcn.004056d0
lea eax, [ebp - 0x98]
mov edx, dword [0x46d838]
call fcn.004056d0
xor eax, eax
push ebp
push 0x47f02b
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
mov edx, dword [0x470528]
call fcn.00406074
lea eax, [ebp - 0xc]
mov edx, dword [0x470528]
call fcn.00406074
mov byte [ebp - 0xa1], 0
xor eax, eax
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x14]
lea edx, [ebp + 0x14]
lea eax, [ebp + 0x18]
call fcn.0047c2b0
test al, al
je 0x47efd9
call fcn.00472578
mov eax, dword [ebp - 0xa0]
or eax, 8
and eax, 0xffffffef
cmp eax, 0xffffffed
je 0x47eb95
cmp eax, 0xffffffec
je 0x47eb95
cmp eax, 0xffffffeb
jne 0x47ef86
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x47ebcd
call fcn.00470bb4
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
jne 0x47ebc1
push 5
call sub.kernel32.dll_SetLastError
jmp 0x47efd9
mov eax, dword [ebp - 0xa8]
push eax
call sub.kernel32.dll_CloseHandle
mov esi, dword [ebp - 0xa0]
or esi, 8
and esi, 0xffffffef
cmp esi, 0xffffffeb
jne 0x47ebf2
call sub.kernel32.dll_GetCurrentProcess
lea edx, [ebp - 0xbc]
call fcn.00472a98
test al, al
jne 0x47ebfa
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x47ec0d
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
jmp 0x47ec0f
xor eax, eax
cmp esi, 0xffffffec
je 0x47ec1e
mov dword [ebp - 0x9c], 0xffffffff
push eax
mov eax, dword [ebp - 0x9c]
push eax
test byte [ebp - 0xa0], 0x10
setne al
push eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0xb1]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, ebx
call fcn.0047bb10
mov byte [ebp - 0xa1], al
cmp dword [ebp - 0xbc], 0
je 0x47ec67
mov eax, dword [ebp - 0xbc]
push eax
call sub.kernel32.dll_LocalFree
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
sete al
and al, byte [ebp - 0xb1]
je 0x47ec9b
lea ecx, [ebp - 0x98]
lea edx, [ebp - 0x58]
lea eax, [ebp - 0x211]
call fcn.0047e094
test al, al
jne 0x47ec9b
mov byte [ebp - 0xb1], 0
mov byte [ebp - 0xbd], 0
xor eax, eax
mov dword [ebp - 0xc4], eax
cmp byte [ebp - 0xbd], 0
je 0x47ecba
push 0xa
call sub.kernel32.dll_Sleep_1
mov byte [ebp - 0xbd], 0
mov byte [ebp - 0xaa], 1
lea eax, [ebp - 8]
call fcn.00470864
mov eax, dword [ebp - 8]
call fcn.00405eac
push eax
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x46b340]
call fcn.00406068
add esp, 4
mov eax, dword [ebp - 8]
call fcn.00405eb4
test eax, eax
jl 0x47ef0d
inc eax
mov dword [ebp - 0xc8], eax
xor ebx, ebx
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax + ebx*4], edx
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax*8 + 4]
call fcn.0047c99c
mov byte [ebp - 0xa9], al
mov eax, dword [ebp - 0xc]
call fcn.00405eb4
test eax, eax
jl 0x47ed58
inc eax
xor edx, edx
mov ecx, edx
add ecx, ecx
mov esi, dword [ebp - 0xc]
mov ecx, dword [esi + ecx*8]
mov esi, ebx
add esi, esi
mov edi, dword [ebp - 8]
cmp ecx, dword [edi + esi*8]
jne 0x47ed54
mov byte [ebp - 0xa9], 0
jmp 0x47ed58
inc edx
dec eax
jne 0x47ed35
cmp byte [ebp - 0xa9], 0
je 0x47ef00
call sub.kernel32.dll_GetCurrentProcessId
mov edx, ebx
add edx, edx
mov ecx, dword [ebp - 8]
cmp eax, dword [ecx + edx*8]
jne 0x47ed83
test byte [ebp - 0xa0], 8
je 0x47ef00
mov byte [ebp - 0xaa], 0
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax*8]
push eax
push 0
push 0x47a
call sub.kernel32.dll_OpenProcess
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0
je 0x47eed0
mov eax, dword [ebp - 0xa8]
call fcn.00479b40
test al, al
jne 0x47eec2
cmp byte [ebp - 0xb1], 0
je 0x47ee02
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x47ee02
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x98]
push eax
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*8]
lea ecx, [ebp - 0x211]
mov eax, dword [ebp - 0xa8]
call fcn.0047e978
mov eax, dword [ebp - 0xa0]
or eax, 8
and eax, 0xffffffef
cmp eax, 0xffffffeb
jne 0x47ee31
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*8 + 0xc]
mov eax, dword [ebp - 0xa8]
call fcn.00479c38
test al, al
je 0x47eec2
test byte [ebp - 0xa0], 0x10
jne 0x47ee54
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*8 + 0xc]
mov eax, dword [ebp - 0xa8]
call fcn.00479a04
test al, al
jne 0x47eec2
mov eax, dword [ebp - 0xa0]
or eax, 8
and eax, 0xffffffef
cmp eax, 0xffffffec
jne 0x47eea5
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax*8]
call fcn.00479bb0
cmp eax, dword [ebp - 0x9c]
je 0x47eea5
mov esi, ebx
add esi, esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + esi*8]
call fcn.00479bb0
test eax, eax
jne 0x47eec2
mov eax, dword [ebp - 8]
mov edx, dword [eax + esi*8 + 0xc]
mov eax, dword [ebp - 0xa8]
call fcn.00479a04
test al, al
je 0x47eec2
push ebp
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
mov edx, dword [edx + eax*8]
mov eax, dword [ebp - 0x10]
lea ecx, [eax + ebx*4]
mov eax, dword [ebp - 0xa8]
call fcn.0047d540
pop ecx
mov eax, dword [ebp - 0xa8]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x47ef00
call sub.kernel32.dll_GetLastError
mov dword [ebp - 0xa8], eax
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 8]
cmp dword [edx + eax*8], 0
je 0x47ef00
cmp dword [ebp - 0xa8], 5
je 0x47ef00
mov edx, dword [ebp - 8]
xor ecx, ecx
mov dword [edx + eax*8], ecx
mov byte [ebp - 0xbd], 1
inc ebx
dec dword [ebp - 0xc8]
jne 0x47ed08
cmp dword [ebp - 0xb8], 0
jne 0x47ef21
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x10]
call fcn.00405eb4
test eax, eax
jl 0x47ef57
inc eax
mov dword [ebp - 0xc8], eax
xor ebx, ebx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x47ef4e
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp + 0x10]
call fcn.0047c928
inc ebx
dec dword [ebp - 0xc8]
jne 0x47ef36
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [0x470528]
call fcn.004060b0
inc dword [ebp - 0xc4]
cmp byte [ebp - 0xaa], 0
jne 0x47efd9
cmp dword [ebp - 0xc4], 5
jne 0x47ecaa
jmp 0x47efd9
push ebp
mov eax, dword [ebp - 0xa0]
push eax
call fcn.004721d8
mov edx, eax
lea ecx, [ebp - 0xa8]
mov eax, dword [ebp - 0xa0]
call fcn.0047d540
pop ecx
test al, al
je 0x47efcd
cmp dword [ebp - 0xa8], 0
je 0x47efd1
call sub.kernel32.dll_GetTickCount_1
mov ecx, eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xa8]
call fcn.0047c928
test al, al
jne 0x47efd1
xor eax, eax
jmp 0x47efd3
mov al, 1
mov byte [ebp - 0xa1], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47f032
lea eax, [ebp - 0x98]
mov edx, dword [0x46d838]
mov ecx, 2
call fcn.004057ec
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404c84
lea eax, [ebp - 0x10]
mov edx, dword [0x46b340]
call fcn.00406074
lea eax, [ebp - 0xc]
mov edx, dword [0x470528]
mov ecx, 2
call fcn.004057ec
ret