Function at 0x85eb9c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x85eba4
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x85f545
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x85f50b
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x520]
mov edx, dword [eax]
call dword [edx + 0xc4]
test al, al
je 0x85ec0c
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
mov eax, dword [eax + 0x120]
call fcn.0040b2a4
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
add eax, 0x614
call fcn.004053ec
jmp 0x85ec62
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe68]
call fcn.008b4ad4
test al, al
je 0x85ec55
lea edx, [ebp - 0x20]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe68]
call fcn.008b0e84
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
add eax, 0x614
call fcn.004053ec
jmp 0x85ec62
mov eax, dword [ebp - 4]
add eax, 0x614
call fcn.004053b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
xor edx, edx
call fcn.00405738
jne 0x85ece5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov edx, 1
call fcn.004973b4
mov ax, word [0x85f554]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x30]
call fcn.00405594
mov edx, dword [ebp - 0x24]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 2
call fcn.0056c884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
call fcn.008b4ad4
test al, al
jne 0x85ef35
mov ax, word [0x85f558]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
push 0
push 0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x34]
call fcn.00405594
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x614]
xor ecx, ecx
call fcn.008b4934
mov edx, dword [ebp - 0x28]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 3
call fcn.0056c884
cmp eax, 6
je 0x85ed8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov edx, 1
call fcn.004973b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
xor eax, eax
push ebp
push 0x85ee32
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
call fcn.00485348
test al, al
jne 0x85ee25
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov edx, 1
call fcn.004973b4
mov ax, word [0x85f554]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x38]
call fcn.00405594
mov edx, dword [ebp - 0x30]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 1
call fcn.0056c884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85eeb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
call fcn.008b4ad4
test al, al
jne 0x85ef35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov edx, 1
call fcn.004973b4
mov ax, word [0x85f554]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
lea eax, [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x38]
call fcn.00405594
mov edx, dword [ebp - 0x38]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 1
call fcn.0056c884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
mov eax, dword [eax + 0x128]
xor edx, edx
call fcn.00405738
jne 0x85efbe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f0]
mov edx, 1
call fcn.004973b4
mov ax, word [0x85f554]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x3c]
call fcn.00405594
mov edx, dword [ebp - 0x3c]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 2
call fcn.0056c884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.008b54a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
call fcn.008b0e84
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 4]
add eax, 0x614
call fcn.004053ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov eax, dword [eax + 0x23c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jge 0x85f003
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
xor edx, edx
push ebp
push 0x85f4fa
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0085ffec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
xor edx, edx
call fcn.006e7bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov eax, dword [eax + 0x23c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [ebp - 4]
mov ebx, dword [edx + 0x5d0]
imul dword [ebx + 0x74]
imul dword [ebx + 0x70]
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x53c]
mov dword [esi + 0x50], eax
xor eax, eax
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov eax, dword [eax + 0x1bc]
call fcn.006030d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov eax, dword [eax + 0x1bc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5d0]
mov edx, dword [edx + 0x6c]
call fcn.00604b28
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov eax, dword [eax + 0x1bc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5d0]
mov edx, dword [edx + 0x6c]
call fcn.00604b58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov eax, dword [eax + 0x1bc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5d0]
mov edx, dword [edx + 0x6c]
call fcn.00604b0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov eax, dword [eax + 0x1bc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5d0]
mov edx, dword [edx + 0x11c]
mov dword [eax + 0xc8], edx
lea eax, [ebp - 8]
call fcn.004053b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov eax, dword [eax + 0x23c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x85f44a
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
cmp dword [eax + 0xc], 1
je 0x85f44a
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00860050
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x59c]
lea eax, [ebp - 0x14]
call fcn.004053b0
test ebx, ebx
jl 0x85f1e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x470]
call fcn.006519b0
call fcn.0049ea54
dec eax
cmp ebx, eax
jg 0x85f1e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x470]
call fcn.006519b0
mov edx, ebx
call fcn.00651470
mov eax, dword [eax + 0x30]
lea ecx, [ebp - 0x44]
xor edx, edx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x470]
call fcn.006519b0
mov edx, ebx
call fcn.00651470
mov eax, dword [eax + 0x30]
lea ecx, [ebp - 0x48]
mov edx, 1
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x14]
pop ecx
call fcn.0040568c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov eax, dword [eax + 0x23c]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
mov eax, dword [eax + 0x118]
push eax
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x10]
inc ecx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
mov edx, dword [eax + 0x128]
mov eax, dword [ebp - 0x14]
call fcn.0085e908
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x614]
lea eax, [ebp - 8]
mov ecx, dword [ebp - 0xc]
call fcn.0040568c
cmp dword [ebp - 0x10], 0
jne 0x85f2bb
mov eax, dword [ebp - 8]
call fcn.008b4aa0
test al, al
je 0x85f2bb
mov ax, word [0x85f558]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
push 0
push 0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x40]
call fcn.00405594
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov edx, dword [ebp - 8]
call fcn.008b4934
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 3
call fcn.0056c884
cmp eax, 6
je 0x85f2bb
call fcn.004046a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f515
cmp dword [ebp - 0x10], 0
jne 0x85f2df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
xor ecx, ecx
mov dl, 1
call fcn.006e7ce4
mov eax, dword [0x98a420]
mov eax, dword [eax]
call fcn.0047aed4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov edx, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
push 0
push 0
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0x9c]
call fcn.00405594
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov edx, dword [ebp - 0xc]
call fcn.008b4934
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
add eax, 0x5c
call fcn.004053ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
call fcn.006e7c70
push 0
mov cl, 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0085a444
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
mov edx, dword [eax]
call dword [edx + 0xd8]
test al, al
je 0x85f389
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xdc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
push ebp
push 0x85f434
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
mov eax, dword [eax + 0x118]
dec eax
je 0x85f3b4
dec eax
je 0x85f3cc
dec eax
je 0x85f3e4
dec eax
je 0x85f3fc
jmp 0x85f414
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov edx, dword [ebp - 8]
call fcn.005ffc18
jmp 0x85f42a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov edx, dword [ebp - 8]
call fcn.00601ed4
jmp 0x85f42a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov edx, dword [ebp - 8]
call fcn.005fd48c
jmp 0x85f42a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov edx, dword [ebp - 8]
call fcn.0060ce64
jmp 0x85f42a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.00624a6c
mov edx, dword [ebp - 8]
call fcn.00601f64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x85f43e
inc dword [ebp - 0x10]
dec dword [ebp - 0x18]
jne 0x85f140
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
cmp dword [eax + 0xc], 0
jne 0x85f4ab
mov eax, dword [ebp - 8]
call fcn.008b4aa0
test al, al
je 0x85f4ab
mov ax, word [0x85f554]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.0045f564
push eax
lea eax, [ebp - 0x5c]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f4]
mov edx, dword [edx + 0xa4]
call fcn.00405594
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x7c8]
mov cl, 2
call fcn.0056c884
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5d0]
cmp byte [eax + 0x12c], 0
je 0x85f4d1
mov eax, dword [ebp - 8]
call fcn.008b4aa0
test al, al
je 0x85f4d1
mov eax, dword [ebp - 8]
call fcn.008b958c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x85f501
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x53c]
mov edx, dword [eax + 0x50]
call fcn.006e7bcc
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0085ffec
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x85f54c
lea eax, [ebp - 0x5c]
mov edx, 0x11
call fcn.004053c8
lea eax, [ebp - 0x14]
call fcn.004053b0
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004053c8
ret