Function at 0x40c474
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea0
push ebx
xor edx, edx
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x160], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40c7a1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
mov dword [ebp - 0x11c], 0x11c
lea eax, [ebp - 0x11c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
jne 0x40c4e9
mov dword [ebp - 0x11c], 0x114
lea eax, [ebp - 0x11c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x40c783
cmp dword [ebp - 0x10c], 2
jne 0x40c783
lea eax, [ebp - 0x140]
mov edx, 0x24
call fcn.00402518
push 0x40c7b0
push 0x40c7d8
call sub.kernel32.dll_GetModuleHandleW_1
push eax
call fcn.00401bd0
test eax, eax
je 0x40c52a
lea edx, [ebp - 0x140]
push edx
call eax
jmp 0x40c536
lea eax, [ebp - 0x140]
push eax
call sub.kernel32.dll_GetSystemInfo
cmp dword [ebp - 0x118], 5
jne 0x40c559
cmp dword [ebp - 0x114], 0
jne 0x40c559
mov eax, ebx
mov edx, 0x40c800
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 5
jne 0x40c585
mov eax, dword [ebp - 0x114]
dec eax
sub eax, 2
jae 0x40c585
cmp byte [ebp - 2], 1
jne 0x40c585
mov eax, ebx
mov edx, 0x40c828
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c5ae
cmp dword [ebp - 0x114], 0
jne 0x40c5ae
cmp byte [ebp - 2], 1
jne 0x40c5ae
mov eax, ebx
mov edx, 0x40c84c
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c5d7
cmp dword [ebp - 0x114], 1
jne 0x40c5d7
cmp byte [ebp - 2], 1
jne 0x40c5d7
mov eax, ebx
mov edx, 0x40c874
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c600
cmp dword [ebp - 0x114], 2
jne 0x40c600
cmp byte [ebp - 2], 1
jne 0x40c600
mov eax, ebx
mov edx, 0x40c894
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c629
cmp dword [ebp - 0x114], 3
jne 0x40c629
cmp byte [ebp - 2], 1
jne 0x40c629
mov eax, ebx
mov edx, 0x40c8b4
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c652
cmp dword [ebp - 0x114], 4
jne 0x40c652
cmp byte [ebp - 2], 1
jne 0x40c652
mov eax, ebx
mov edx, 0x40c8d8
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 0xa
jne 0x40c678
cmp dword [ebp - 0x114], 0
jne 0x40c678
cmp byte [ebp - 2], 1
jne 0x40c678
mov eax, ebx
mov edx, 0x40c90c
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 5
jne 0x40c69e
cmp dword [ebp - 0x114], 2
jne 0x40c69e
cmp byte [ebp - 2], 1
je 0x40c69e
mov eax, ebx
mov edx, 0x40c930
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c6c6
mov eax, dword [ebp - 0x114]
sub eax, 2
jae 0x40c6c6
cmp byte [ebp - 2], 1
je 0x40c6c6
mov eax, ebx
mov edx, 0x40c964
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
jmp 0x40c6ea
cmp dword [ebp - 0x118], 6
jne 0x40c6ea
cmp dword [ebp - 0x114], 2
jne 0x40c6ea
cmp byte [ebp - 2], 1
je 0x40c6ea
mov eax, ebx
mov edx, 0x40c998
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
cmp dword [ebx], 0
jne 0x40c72b
push ebx
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 0
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x148], eax
mov byte [ebp - 0x144], 0
lea edx, [ebp - 0x150]
mov ecx, 1
mov eax, 0x40c9cc
call fcn.00411984
push dword [ebx]
lea eax, [ebp - 0x154]
call fcn.0040c438
push dword [ebp - 0x154]
push ebp
lea eax, [ebp - 0x158]
call fcn.0040c390
pop ecx
push dword [ebp - 0x158]
push ebp
lea eax, [ebp - 0x15c]
call fcn.0040c34c
pop ecx
push dword [ebp - 0x15c]
push ebp
lea eax, [ebp - 0x160]
call fcn.0040c2d4
pop ecx
push dword [ebp - 0x160]
mov eax, ebx
mov edx, 5
call sub.rtl120.bpl__System__UStrCatN_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40c7a8
lea eax, [ebp - 0x160]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
ret