Function at 0x41a874
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff3c
push ebx
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x41aac5
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
lea eax, [ebp - 0xa0]
mov edx, 0x9c
call sym.P_Interface.bpl__Jclsysutils_ResetMemory_qqrpvi
lea eax, [ebp - 0xc4]
mov edx, 0x24
call sym.P_Interface.bpl__Jclsysutils_ResetMemory_qqrpvi
mov dword [ebp - 0xa0], 0x9c
lea eax, [ebp - 0xc4]
call sym.P_Interface.bpl__Jclsysinfo_GetNativeSystemInfo_qqrr12_SYSTEM_INFO
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWinNT4], 0
je 0x41a918
call sym.P_Interface.bpl__Jclsysinfo_GetWindowsServicePackVersion_qqrv
cmp eax, 6
jl 0x41a918
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41aa50
cmp byte [ebp - 6], 1
jne 0x41a8fc
mov bl, 1
jmp 0x41aa50
mov ax, word [ebp - 8]
and ax, 2
cmp ax, 2
jne 0x41a911
mov bl, 7
jmp 0x41aa50
mov bl, 2
jmp 0x41aa50
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2K], 0
je 0x41a966
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41aa50
mov al, byte [ebp - 6]
add al, 0xfe
sub al, 2
jae 0x41a95f
mov ax, word [ebp - 8]
test al, 0x80
je 0x41a94d
mov bl, 6
jmp 0x41aa50
test al, 2
je 0x41a958
mov bl, 3
jmp 0x41aa50
mov bl, 2
jmp 0x41aa50
mov bl, 5
jmp 0x41aa50
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWinXP64], 0
jne 0x41a981
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2003], 0
jne 0x41a981
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2003R2], 0
je 0x41a9e4
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41aa50
mov al, byte [ebp - 6]
mov edx, eax
add dl, 0xfe
sub dl, 2
jae 0x41a9dc
mov ax, word [ebp - 8]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x41a9bb
mov bl, 6
jmp 0x41aa50
mov edx, eax
and dx, 2
cmp dx, 2
jne 0x41a9ce
mov bl, 7
jmp 0x41aa50
cmp ax, 0x400
jne 0x41a9d8
mov bl, 8
jmp 0x41aa50
mov bl, 2
jmp 0x41aa50
cmp al, 1
jne 0x41aa50
mov bl, 5
jmp 0x41aa50
mov edx, 1
mov eax, 5
call sym.P_Interface.bpl__Jclsysinfo_JclCheckWinVersion_qqrii
test al, al
je 0x41aa50
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41aa50
mov al, byte [ebp - 6]
cmp al, 1
jne 0x41aa24
mov ax, word [ebp - 8]
and ax, 0x200
cmp ax, 0x200
jne 0x41aa20
mov bl, 4
jmp 0x41aa50
mov bl, 5
jmp 0x41aa50
add al, 0xfe
sub al, 2
jae 0x41aa50
mov ax, word [ebp - 8]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x41aa40
mov bl, 6
jmp 0x41aa50
and ax, 2
cmp ax, 2
jne 0x41aa4e
mov bl, 7
jmp 0x41aa50
mov bl, 2
test bl, bl
jne 0x41aaaf
push 0
lea eax, [ebp - 4]
push eax
mov ecx, 0x41aadc
mov edx, 0x41aaf0
mov eax, 0x80000002
call sym.P_Interface.bpl__Jclregistry_RegReadStringDef_qqrxuix17System_AnsiStringt2t2
mov edx, 0x41ab28
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41aa83
mov bl, 1
jmp 0x41aaaf
mov edx, 0x41ab38
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41aa98
mov bl, 3
jmp 0x41aaaf
mov edx, 0x41ab4c
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41aaad
mov bl, 2
jmp 0x41aaaf
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41aacc
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrClr_qqrpv
ret