Function at 0x56d3a0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
mov eax, dword [ebp + 8]
test eax, eax
jne 0x56d3b7
xor eax, eax
jmp 0x56d727
mov edx, dword [ebp + 8]
mov byte [edx + 0x2b8], 0
call sub.KERNEL32.DLL_GetVersion
test eax, 0x80000000
je 0x56d3eb
push str.This_program_run_only_in_Windows_2000_XP_and_above.
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.006712b0
add esp, 8
xor eax, eax
jmp 0x56d727
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 0x56d471
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d450
push str.You_must_be_Administrator_to_access_this_device.
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.006712b0
add esp, 8
jmp 0x56d71d
call fcn.00462ba8
push eax
push str.Error__s_accessing_this_device.
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.006712b0
add esp, 0xc
jmp 0x56d71d
mov edx, dword [ebp + 8]
mov dword [edx + 0x234], 0xffffffff
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx + 0x214]
push eax
push 0x81f4b3
lea edx, [ebp - 0x150]
push edx
call fcn.006712b0
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 0x56d543
push 1
mov eax, dword [ebp + 8]
push dword [eax + 0x234]
call fcn.0049ade0
add esp, 8
test eax, eax
jne 0x56d5b8
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d510
push 0x81f4bb
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.006712b0
add esp, 8
jmp 0x56d52e
push 0x5e03
call fcn.00402b9c
pop ecx
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.006712b0
add esp, 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.005731ac
add esp, 8
jmp 0x56d5b8
push 1
mov edx, dword [ebp + 8]
push dword [edx + 0x230]
call fcn.0049ade0
add esp, 8
test eax, eax
jne 0x56d5b8
call sub.KERNEL32.DLL_GetLastError
cmp eax, 1
je 0x56d5b8
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d587
push 0x81f4e4
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.006712b0
add esp, 8
jmp 0x56d5a4
push 0x5e03
call fcn.00402b9c
pop ecx
push eax
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.006712b0
add esp, 8
push 1
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.005731ac
add esp, 8
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp 0x56d6c3
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 0x56d6c0
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
movsx eax, byte [ecx + edx + 0x220]
push eax
push 0x81f50d
lea edx, [ebp - 0x150]
push edx
call fcn.006712b0
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 0x56d6c0
push 1
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
push dword [eax + ecx*4 + 0x238]
call fcn.0049ade0
add esp, 8
test eax, eax
jne 0x56d6c0
call sub.KERNEL32.DLL_GetLastError
cmp eax, 5
jne 0x56d68f
push 0x81f515
mov edx, dword [ebp + 8]
add edx, 0x2b8
push edx
call fcn.006712b0
add esp, 8
jmp 0x56d6ad
push 0x5e03
call fcn.00402b9c
pop ecx
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2b8
push ecx
call fcn.006712b0
add esp, 8
push 1
mov eax, dword [ebp + 8]
add eax, 0x2b8
push eax
call fcn.005731ac
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 0x56d5c2
mov edx, dword [ebp + 8]
mov dword [edx + 0x278], 0xffffffff
push dword [ebp - 8]
call sub.KERNEL32.DLL_SetErrorMode
mov eax, 1
jmp 0x56d727
push dword [ebp - 8]
call sub.KERNEL32.DLL_SetErrorMode
xor eax, eax
mov esp, ebp
pop ebp
ret