Function at 0x416950
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d1cab
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
mov eax, dword [0x64c00c]
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
push 0x118
xor ebx, ebx
lea eax, [ebp - 0x128]
push ebx
push eax
call fcn.005a52f0
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0x12c], 0x11c
push eax
call esi
test eax, eax
jne 0x4169cd
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x114
push eax
call esi
test eax, eax
je 0x416bf6
mov eax, dword [ebp - 0x11c]
sub eax, 1
je 0x416be1
sub eax, 1
je 0x4169e8
xor ebx, ebx
jmp 0x416bf6
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x124]
cmp eax, 6
jne 0x416a27
cmp ecx, 1
jne 0x416a0e
xor ebx, ebx
cmp byte [ebp - 0x12], cl
setne bl
add ebx, 8
jmp 0x416bf6
test ecx, ecx
jne 0x416a74
xor ebx, ebx
cmp byte [ebp - 0x12], 1
setne bl
lea ebx, [ebx*2 + 7]
jmp 0x416bf6
cmp eax, 5
jne 0x416a5c
mov eax, dword [ebp - 0x124]
cmp eax, 2
jne 0x416a3f
lea ebx, [eax + 3]
jmp 0x416bf6
cmp eax, 1
jne 0x416a4c
lea ebx, [eax + 5]
jmp 0x416bf6
test eax, eax
jne 0x416bf6
lea ebx, [eax + 3]
jmp 0x416bf6
cmp eax, 4
ja 0x416a6b
mov ebx, 4
jmp 0x416bf6
cmp eax, 6
jb 0x416bf6
cmp ecx, 2
jae 0x416a82
cmp eax, 6
jbe 0x416bf6
cmp byte [ebp - 0x12], 1
jne 0x416bf6
push str.ntdll.dll
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x130], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x416b0a
push str.RtlGetNtVersionNumbers
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x416b0a
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x138]
push ecx
lea ecx, [ebp - 0x134]
push ecx
call eax
movzx edx, word [ebp - 0x130]
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
cmp ecx, 6
jne 0x416bc2
cmp eax, 2
je 0x416bda
cmp eax, 3
jne 0x416bb8
lea ebx, [ecx + 5]
jmp 0x416bf6
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x13c], ebx
call fcn.004166f0
push str.ntoskrnl.exe
mov edx, eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x140]
call fcn.0040fa40
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 1
push ecx
mov ecx, dword [eax]
lea edx, [ebp - 0x13c]
call fcn.00416650
mov byte [ebp - 4], 0
or esi, 0xffffffff
mov edx, dword [ebp - 0x140]
add esp, 8
mov edi, eax
add edx, 0xfffffff0
mov ecx, esi
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x416b75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x144]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x416b97
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x130]
test edi, edi
je 0x416adb
mov eax, dword [ebp - 0x13c]
mov ecx, eax
shr ecx, 0x10
movzx eax, ax
jmp 0x416ae7
cmp eax, 4
jne 0x416bda
lea ebx, [eax + 8]
jmp 0x416bf6
cmp ecx, 0xa
jne 0x416bda
test eax, eax
jne 0x416bda
mov eax, 0x55ec
cmp dx, ax
sbb ebx, ebx
add ebx, 0xd
jmp 0x416bf6
mov ebx, 0xa
jmp 0x416bf6
mov eax, dword [ebp - 0x120]
and eax, 0xffff0000
cmp eax, 0x45a0000
sbb ebx, ebx
add ebx, 2
mov eax, ebx
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.00483ab6
mov esp, ebp
pop ebp
ret