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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x104
push 0
push 0
dec ecx
jne 0x4a4388
push ebx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4a4aee
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x34]
xor ecx, ecx
mov edx, 0x24
call fcn.00403100
lea eax, [ebp - 0x34]
push eax
call sub.kernel32.dll_GetSystemInfo
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5c]
mov eax, dword [0x4ae990]
call fcn.00406ba8
movzx eax, word [ebp - 0x34]
cmp eax, 5
ja case.default.0x4a43d6
jmp dword [eax*4 + 0x4a43dd]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4aeb08]
call fcn.00406ba8
movzx eax, word [ebp - 0x14]
cmp eax, 9
ja case.0x4a4412.0
jmp dword [eax*4 + 0x4a4419]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5c]
mov eax, dword [0x4aea2c]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5c]
mov eax, dword [0x4ae808]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5c]
mov eax, dword [0x4aec9c]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x5c]
mov eax, dword [0x4ae9e0]
call fcn.00406ba8
jmp case.0x4a4412.0
lea edx, [ebp - 0x7cc]
mov eax, dword [0x4ae9e0]
call fcn.00406ba8
mov edx, dword [ebp - 0x7cc]
mov eax, dword [ebp - 4]
add eax, 0x5c
mov ecx, 0x4a4b04
call fcn.00404b34
jmp case.0x4a4412.0
lea edx, [ebp - 0x7d0]
mov eax, dword [0x4ae9e0]
call fcn.00406ba8
mov edx, dword [ebp - 0x7d0]
mov eax, dword [ebp - 4]
add eax, 0x5c
mov ecx, 0x4a4b10
call fcn.00404b34
jmp case.0x4a4412.0
lea edx, [ebp - 0x7d4]
mov eax, dword [0x4ae9e0]
call fcn.00406ba8
mov edx, dword [ebp - 0x7d4]
mov eax, dword [ebp - 4]
add eax, 0x5c
mov ecx, 0x4a4b1c
call fcn.00404b34
jmp case.0x4a4412.0
lea edx, [ebp - 0x7d8]
mov eax, dword [0x4ae9e0]
call fcn.00406ba8
mov edx, dword [ebp - 0x7d8]
mov eax, dword [ebp - 4]
add eax, 0x5c
mov ecx, 0x4a4b28
call fcn.00404b34
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4ae898]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4ae88c]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4aebc8]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4aed84]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4ae894]
call fcn.00406ba8
jmp case.0x4a4412.0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [0x4aeb94]
call fcn.00406ba8
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x90], edx
lea eax, [ebp - 0xc8]
xor ecx, ecx
mov edx, 0x94
call fcn.00403100
mov dword [ebp - 0xc8], 0x94
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA
mov eax, dword [ebp - 0xb8]
sub eax, 1
jb 0x4a45f5
je 0x4a460a
dec eax
je 0x4a4683
jmp 0x4a46d0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x64]
mov eax, dword [0x4aea74]
call fcn.00406ba8
jmp 0x4a46d0
push 0
push 0
push 1
push 0x5c
call sub.user32.dll_SystemParametersInfoA
cmp eax, 1
sbb eax, eax
inc eax
mov edx, dword [ebp - 4]
mov byte [edx + 0xa0], al
cmp dword [ebp - 0xc0], 0xa
jb 0x4a4641
mov eax, dword [ebp - 4]
lea edx, [eax + 0x64]
mov eax, dword [0x4aed54]
call fcn.00406ba8
jmp 0x4a4651
mov eax, dword [ebp - 4]
lea edx, [eax + 0x64]
mov eax, dword [0x4aea70]
call fcn.00406ba8
lea edx, [ebp - 0x7dc]
movzx eax, word [ebp - 0xbc]
call fcn.00409010
mov edx, dword [ebp - 0x7dc]
mov eax, dword [ebp - 4]
add eax, 0x70
call fcn.00404884
lea edx, [ebp - 0xc]
mov eax, dword [0x4aed90]
call fcn.00406ba8
jmp 0x4a46d0
mov eax, dword [ebp - 4]
mov byte [eax + 0xa0], 0
mov eax, dword [ebp - 4]
lea edx, [eax + 0x64]
mov eax, dword [0x4aec48]
call fcn.00406ba8
mov eax, dword [ebp - 0xbc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x7e0]
call fcn.00409040
mov edx, dword [ebp - 0x7e0]
mov eax, dword [ebp - 4]
add eax, 0x70
call fcn.00404884
lea edx, [ebp - 0xc]
mov eax, dword [0x4ae918]
call fcn.00406ba8
mov eax, dword [ebp - 4]
add eax, 0x60
lea edx, [ebp - 0xb4]
mov ecx, 0x80
call fcn.00404a98
lea eax, [ebp - 0x7e4]
push eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x7f4], eax
mov byte [ebp - 0x7f0], 0
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x7ec], eax
mov byte [ebp - 0x7e8], 0
lea edx, [ebp - 0x7f4]
mov ecx, 1
mov eax, 0x4a4b34
call fcn.00409cc0
mov edx, dword [ebp - 0x7e4]
mov eax, dword [ebp - 4]
add eax, 0x74
call fcn.00404884
mov dl, 1
mov eax, dword [0x467194]
call fcn.00467264
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4a4800
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000002
mov eax, dword [ebp - 0x10]
call fcn.00467304
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00467368
test al, al
je 0x4a47e2
lea edx, [ebp - 0x7fc]
mov eax, dword [0x4ae878]
call fcn.00406ba8
mov edx, dword [ebp - 0x7fc]
lea ecx, [ebp - 0x7f8]
mov eax, dword [ebp - 0x10]
call fcn.00467810
mov edx, dword [ebp - 0x7f8]
mov eax, dword [ebp - 4]
add eax, 0x94
call fcn.00404884
lea edx, [ebp - 0x804]
mov eax, dword [0x4aec18]
call fcn.00406ba8
mov edx, dword [ebp - 0x804]
lea ecx, [ebp - 0x800]
mov eax, dword [ebp - 0x10]
call fcn.00467810
mov edx, dword [ebp - 0x800]
mov eax, dword [ebp - 4]
add eax, 0x98
call fcn.00404884
mov eax, dword [ebp - 0x10]
call fcn.004672d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a4807
mov eax, dword [ebp - 0x10]
call fcn.00403ac4
ret