Function at 0x41ab98
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 0x41ade9
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 0x41ac3c
call sym.P_Interface.bpl__Jclsysinfo_GetWindowsServicePackVersion_qqrv
cmp eax, 6
jl 0x41ac3c
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41ad74
cmp byte [ebp - 6], 1
jne 0x41ac20
mov bl, 1
jmp 0x41ad74
mov ax, word [ebp - 8]
and ax, 2
cmp ax, 2
jne 0x41ac35
mov bl, 7
jmp 0x41ad74
mov bl, 2
jmp 0x41ad74
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2K], 0
je 0x41ac8a
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41ad74
mov al, byte [ebp - 6]
add al, 0xfe
sub al, 2
jae 0x41ac83
mov ax, word [ebp - 8]
test al, 0x80
je 0x41ac71
mov bl, 6
jmp 0x41ad74
test al, 2
je 0x41ac7c
mov bl, 3
jmp 0x41ad74
mov bl, 2
jmp 0x41ad74
mov bl, 5
jmp 0x41ad74
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWinXP64], 0
jne 0x41aca5
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2003], 0
jne 0x41aca5
cmp byte [sym.P_Interface.bpl__Jclsysinfo_IsWin2003R2], 0
je 0x41ad08
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41ad74
mov al, byte [ebp - 6]
mov edx, eax
add dl, 0xfe
sub dl, 2
jae 0x41ad00
mov ax, word [ebp - 8]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x41acdf
mov bl, 6
jmp 0x41ad74
mov edx, eax
and dx, 2
cmp dx, 2
jne 0x41acf2
mov bl, 7
jmp 0x41ad74
cmp ax, 0x400
jne 0x41acfc
mov bl, 8
jmp 0x41ad74
mov bl, 2
jmp 0x41ad74
cmp al, 1
jne 0x41ad74
mov bl, 5
jmp 0x41ad74
mov edx, 1
mov eax, 5
call sym.P_Interface.bpl__Jclsysinfo_JclCheckWinVersion_qqrii
test al, al
je 0x41ad74
lea eax, [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x41ad74
mov al, byte [ebp - 6]
cmp al, 1
jne 0x41ad48
mov ax, word [ebp - 8]
and ax, 0x200
cmp ax, 0x200
jne 0x41ad44
mov bl, 4
jmp 0x41ad74
mov bl, 5
jmp 0x41ad74
add al, 0xfe
sub al, 2
jae 0x41ad74
mov ax, word [ebp - 8]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x41ad64
mov bl, 6
jmp 0x41ad74
and ax, 2
cmp ax, 2
jne 0x41ad72
mov bl, 7
jmp 0x41ad74
mov bl, 2
test bl, bl
jne 0x41add3
push 0
lea eax, [ebp - 4]
push eax
mov ecx, 0x41ae00
mov edx, 0x41ae14
mov eax, 0x80000002
call sym.P_Interface.bpl__Jclregistry_RegReadStringDef_qqrxuix17System_AnsiStringt2t2
mov edx, 0x41ae4c
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41ada7
mov bl, 1
jmp 0x41add3
mov edx, 0x41ae5c
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41adbc
mov bl, 3
jmp 0x41add3
mov edx, 0x41ae70
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__Sysutils_CompareText_qqrx17System_AnsiStringt1
test eax, eax
jne 0x41add1
mov bl, 2
jmp 0x41add3
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41adf0
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrClr_qqrpv
ret