Function at 0x100042f0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b236d
mov eax, dword fs:[0]
push eax
mov eax, 0x3578
call fcn.10077ab0
mov eax, dword [0x100e5900]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x3584], ebx
mov dword [ebp - 0x3578], eax
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
xor edi, edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3584], 1
mov dword [ebp - 0x3580], edi
push edi
push str..PhysicalDrive_d
lea edx, [ebp - 0x110]
call fcn.10005260
add esp, 8
push ebx
push ebx
push 3
push ebx
push 3
push ebx
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x100046b1
push 0x2710
lea ecx, [ebp - 0x33d8]
push ebx
mov dword [ebp - 0x33e4], ebx
mov dword [ebp - 0x33e0], ebx
push ecx
mov dword [ebp - 0x357c], ebx
mov dword [ebp - 0x33dc], ebx
mov dword [ebp - 0x33e4], ebx
mov dword [ebp - 0x33e0], ebx
call fcn.10076930
add esp, 0xc
push ebx
lea edx, [ebp - 0x357c]
push edx
push 0x2710
lea eax, [ebp - 0x33d8]
push eax
push 0xc
lea ecx, [ebp - 0x33e4]
push ecx
push 0x2d1400
push esi
call dword [0x100b319c]
test eax, eax
je 0x100046e3
mov eax, 0xf
mov dword [ebp - 0x3440], eax
mov dword [ebp - 0x3444], ebx
mov byte [ebp - 0x3454], bl
mov dword [ebp - 0x3424], eax
mov dword [ebp - 0x3428], ebx
mov byte [ebp - 0x3438], bl
mov dword [ebp - 0x3408], eax
mov dword [ebp - 0x340c], ebx
mov byte [ebp - 0x341c], bl
push 0x3e7
lea edx, [ebp - 0xcc7]
push ebx
mov dword [ebp - 4], 1
push edx
mov byte [ebp - 0xcc8], bl
call fcn.10076930
push 0x3e7
lea eax, [ebp - 0x4f7]
push ebx
push eax
mov byte [ebp - 0x4f8], bl
call fcn.10076930
push 0x3e7
lea ecx, [ebp - 0x8df]
push ebx
push ecx
mov byte [ebp - 0x8e0], bl
call fcn.10076930
mov edx, dword [ebp - 0x33c8]
push ebx
push edx
lea eax, [ebp - 0x33d8]
push eax
lea edi, [ebp - 0x4f8]
call fcn.10004170
mov ecx, dword [ebp - 0x33c4]
push ebx
push ecx
lea edx, [ebp - 0x33d8]
push edx
lea edi, [ebp - 0x8e0]
call fcn.10004170
push 0x110
lea eax, [ebp - 0x356c]
push ebx
push eax
mov byte [ebp - 0x3571], bl
mov dword [ebp - 0x3570], 0x114
call fcn.10076930
add esp, 0x48
lea ecx, [ebp - 0x3570]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [ebp - 0x356c]
cmp eax, 6
jne 0x100044f4
cmp dword [ebp - 0x3568], 2
jae 0x100044f6
jmp 0x100044fd
jbe 0x100044fd
mov byte [ebp - 0x3571], 1
mov eax, dword [ebp - 0x33c0]
xor edx, edx
cmp byte [ebp - 0x3571], bl
lea ecx, [ebp - 0x33d8]
sete dl
lea edi, [ebp - 0xcc8]
push edx
push eax
push ecx
call fcn.10004170
lea eax, [ebp - 0x4f8]
add esp, 0xc
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10004530
sub eax, edx
push eax
lea edx, [ebp - 0x4f8]
push edx
lea ecx, [ebp - 0x3454]
call fcn.10002e50
lea eax, [ebp - 0x8e0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10004555
sub eax, edx
push eax
lea eax, [ebp - 0x8e0]
push eax
lea ecx, [ebp - 0x341c]
call fcn.10002e50
lea eax, [ebp - 0xcc8]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10004580
sub eax, edx
push eax
lea ecx, [ebp - 0xcc8]
push ecx
lea ecx, [ebp - 0x3438]
call fcn.10002e50
push 0x2710
lea edx, [ebp - 0x33d8]
push ebx
push edx
call fcn.10076930
add esp, 0xc
push ebx
lea eax, [ebp - 0x357c]
push eax
push 0x2710
lea ecx, [ebp - 0x33d8]
push ecx
push ebx
push ebx
push 0x700a0
push esi
call dword [0x100b319c]
test eax, eax
je 0x1000461b
mov eax, dword [ebp - 0x33d0]
sub eax, 0xb
je 0x100045fd
dec eax
je 0x100045f1
mov dword [ebp - 0x33fc], 2
jmp 0x10004603
mov dword [ebp - 0x33fc], 1
jmp 0x10004603
mov dword [ebp - 0x33fc], ebx
mov edx, dword [ebp - 0x33c0]
mov eax, dword [ebp - 0x33bc]
mov dword [ebp - 0x33ec], edx
mov dword [ebp - 0x33e8], eax
mov ebx, dword [ebp - 0x3578]
lea ecx, [ebp - 0x345c]
call fcn.10004fc0
xor ebx, ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x3408], 0x10
jb 0x10004649
mov ecx, dword [ebp - 0x341c]
push ecx
call fcn.10075faf
add esp, 4
cmp dword [ebp - 0x3424], 0x10
mov edi, 0xf
mov dword [ebp - 0x3408], edi
mov dword [ebp - 0x340c], ebx
mov byte [ebp - 0x341c], bl
jb 0x10004678
mov edx, dword [ebp - 0x3438]
push edx
call fcn.10075faf
add esp, 4
cmp dword [ebp - 0x3440], 0x10
mov dword [ebp - 0x3424], edi
mov dword [ebp - 0x3428], ebx
mov byte [ebp - 0x3438], bl
jb 0x100046a2
mov eax, dword [ebp - 0x3454]
push eax
call fcn.10075faf
add esp, 4
xor ebx, ebx
push esi
call dword [0x100b3198]
mov edi, dword [ebp - 0x3580]
inc edi
mov dword [ebp - 0x3580], edi
cmp edi, 0x10
jl 0x10004350
mov eax, dword [ebp - 0x3578]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10077184
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100046a4