Function at 0x56cf84
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
mov eax, dword [ebp + 8]
test eax, eax
jne 0x56cf9b
xor eax, eax
jmp 0x56d30b
mov edx, dword [ebp + 8]
mov byte [edx + 0x2b8], 0
call sub.KERNEL32.DLL_GetVersion
test eax, 0x80000000
je 0x56cfcf
push str.This_program_run_only_in_Windows_2000_XP_and_above.
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.00670e94
add esp, 8
xor eax, eax
jmp 0x56d30b
push 1
call sub.KERNEL32.DLL_SetErrorMode
mov dword [ebp - 8], eax
push 0
push 0xa0000000
push 3
push 0
push 3
push 0xc0000000
mov edx, dword [ebp + 8]
add edx, 0xc
push edx
call sub.KERNEL32.DLL_CreateFileA
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x230], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x230]
cmp edx, 0xffffffff
jne 0x56d055
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d034
push str.You_must_be_Administrator_to_access_this_device.
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.00670e94
add esp, 8
jmp 0x56d301
call fcn.004628c0
push eax
push str.Error__s_accessing_this_device.
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.00670e94
add esp, 0xc
jmp 0x56d301
mov edx, dword [ebp + 8]
mov dword [edx + 0x234], 0xffffffff
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx + 0x214]
push eax
push 0x811adf
lea edx, [ebp - 0x150]
push edx
call fcn.00670e94
add esp, 0xc
push 0
push 0xa0000000
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x150]
push ecx
call sub.KERNEL32.DLL_CreateFileA
mov edx, dword [ebp + 8]
mov dword [edx + 0x234], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x234]
cmp ecx, 0xffffffff
je 0x56d127
push 1
mov eax, dword [ebp + 8]
push dword [eax + 0x234]
call fcn.0049aaf8
add esp, 8
test eax, eax
jne 0x56d19c
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d0f4
push 0x811ae7
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.00670e94
add esp, 8
jmp 0x56d112
push 0x5e03
call fcn.00402a64
pop ecx
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.00670e94
add esp, 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.00572d90
add esp, 8
jmp 0x56d19c
push 1
mov edx, dword [ebp + 8]
push dword [edx + 0x230]
call fcn.0049aaf8
add esp, 8
test eax, eax
jne 0x56d19c
call sub.KERNEL32.DLL_GetLastError
cmp eax, 1
je 0x56d19c
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d16b
push 0x811b10
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.00670e94
add esp, 8
jmp 0x56d188
push 0x5e03
call fcn.00402a64
pop ecx
push eax
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.00670e94
add esp, 8
push 1
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.00572d90
add esp, 8
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x56d2a7
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov dword [edx + eax*4 + 0x238], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov dl, byte [eax + ecx + 0x220]
mov ecx, dword [ebp + 8]
mov al, byte [ecx + 0x214]
cmp dl, al
je 0x56d2a4
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx + edx + 0x220]
push eax
push 0x811b39
lea edx, [ebp - 0x150]
push edx
call fcn.00670e94
add esp, 0xc
push 0
push 0xa0000000
push 3
push 0
push 3
push 0xc0000000
lea ecx, [ebp - 0x150]
push ecx
call sub.KERNEL32.DLL_CreateFileA
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4 + 0x238], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4 + 0x238]
cmp eax, 0xffffffff
je 0x56d2a4
push 1
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
push dword [eax + ecx*4 + 0x238]
call fcn.0049aaf8
add esp, 8
test eax, eax
jne 0x56d2a4
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d273
push 0x811b41
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.00670e94
add esp, 8
jmp 0x56d291
push 0x5e03
call fcn.00402a64
pop ecx
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.00670e94
add esp, 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.00572d90
add esp, 8
inc dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x21c]
cmp edx, eax
jl 0x56d1a6
mov edx, dword [ebp + 8]
mov dword [edx + 0x278], 0xffffffff
push dword [ebp - 8]
call sub.KERNEL32.DLL_SetErrorMode
mov eax, 1
jmp 0x56d30b
push dword [ebp - 8]
call sub.KERNEL32.DLL_SetErrorMode
xor eax, eax
mov esp, ebp
pop ebp
ret