Function at 0x1022aba
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [0x10431dc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x103
mov dword [ebp - 0x1b8], eax
xor ebx, ebx
lea eax, [ebp - 0x107]
push ebx
push eax
mov byte [ebp - 0x108], 0
call fcn.0100ddf9
add esp, 0xc
lea eax, [ebp - 0x1b0]
push eax
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp - 0x1ac]
push eax
mov dword [ebp - 0x1ac], ebx
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b0], ebx
call fcn.0101a713
push ebx
mov edi, eax
push edi
push 0x6ef
mov esi, 0x1008a90
push esi
call fcn.0101c3d2
cmp edi, ebx
jl 0x1022db9
push 0x98
lea eax, [ebp - 0x1a0]
push ebx
push eax
call fcn.0100ddf9
add esp, 0xc
lea eax, [ebp - 0x1a4]
push eax
mov dword [ebp - 0x1a4], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x1022d9f
cmp dword [ebp - 0x1ac], 5
jne 0x1022cc5
cmp dword [ebp - 0x1a8], 1
jne 0x1022c1f
test word [ebp - 0x10c], 0x200
je 0x1022bc2
call fcn.01021dac
test eax, eax
lea eax, [ebp - 0x108]
je 0x1022bbb
push 0x1008bd0
jmp 0x1022c15
push 0x1008bcc
jmp 0x1022c15
test byte [ebp - 0x10c], 0x40
je 0x1022bd2
push 0x1008bc8
jmp 0x1022bf0
call fcn.01021dbb
test eax, eax
je 0x1022be2
push 0x1008bc4
jmp 0x1022bf0
call fcn.01021dca
test eax, eax
je 0x1022bfa
push 0x1008bc0
push 0x104
jmp 0x1022cb5
call fcn.01021dd9
test eax, eax
lea eax, [ebp - 0x108]
je 0x1022c10
push 0x1008bbc
jmp 0x1022c15
push 0x1008bb8
push 0x104
jmp 0x1022cbb
cmp dword [ebp - 0x1a8], ebx
jne 0x1022d2d
test word [ebp - 0x10c], 0x200
mov esi, 0x104
je 0x1022c4f
push 0x1008bb4
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0101a5bb
mov edi, eax
test byte [ebp - 0x10c], 2
je 0x1022c6c
push 0x1008bb0
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0101a5bb
mov edi, eax
test byte [ebp - 0x10c], 0x80
je 0x1022c89
push 0x1008bac
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0101a5bb
mov edi, eax
cmp byte [ebp - 0x10a], 1
jne 0x1022ca6
push 0x1008bb8
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0101a5bb
mov edi, eax
cmp byte [ebp - 0x10a], 3
jne 0x1022d2d
push 0x1008ba8
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.0101a5bb
mov edi, eax
jmp 0x1022d2d
cmp dword [ebp - 0x1ac], 6
jne 0x1022d2d
cmp dword [ebp - 0x1a8], ebx
jne 0x1022d2d
lea eax, [ebp - 0x1b4]
push eax
mov dword [ebp - 0x1b4], ebx
call fcn.01023e7c
push 0
mov ebx, eax
push ebx
push 0x744
push esi
call fcn.0101c3d2
test ebx, ebx
jl 0x1022d2b
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x108]
push 0x1008ba0
push 0x104
push eax
call fcn.0100a18a
add esp, 0x10
push 0
mov edi, eax
push edi
push 0x749
push esi
call fcn.0101c3d2
xor ebx, ebx
push 0x1d
call fcn.0100d5aa
cmp eax, ebx
pop ecx
mov ecx, dword [ebp - 0x1b8]
mov dword [ecx], eax
jne 0x1022d46
mov edi, 0x8007000e
cmp edi, ebx
jl 0x1022db9
movzx edx, word [ebp - 0x10c]
lea ecx, [ebp - 0x108]
push ecx
movzx ecx, word [ebp - 0x10e]
push ecx
movzx ecx, word [ebp - 0x110]
push ecx
movzx ecx, byte [ebp - 0x10a]
shl ecx, 0x10
or ecx, edx
push ecx
push dword [ebp - 0x1b0]
push dword [ebp - 0x1bc]
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
push 0x1008b84
push 0x1c
push eax
call fcn.0100a18a
add esp, 0x2c
jmp 0x1022db3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x1022db3
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
cmp edi, ebx
jge 0x1022dce
mov esi, dword [ebp - 0x1b8]
mov eax, dword [esi]
cmp eax, ebx
je 0x1022dce
push eax
call fcn.0100dd74
pop ecx
mov dword [esi], ebx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0100d61a
leave
ret 4