Function at 0x403490
Capabilities:
Check os version
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xca0
mov eax, dword [0x41e008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x418978]
movq xmm0, qword [str._ProgramW6432_]
push ebx
mov dword [ebp - 0x7fc], eax
mov ax, word [0x41897c]
push esi
mov word [ebp - 0x7f8], ax
mov esi, ecx
mov al, byte [0x41897e]
push edi
mov byte [ebp - 0x7f6], al
lea eax, [ebp - 0xc04]
push 0x400
push eax
lea eax, [ebp - 0x804]
movq qword [ebp - 0x804], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov ebx, 1
test eax, eax
je 0x403526
lea eax, [ebp - 0x804]
push eax
lea eax, [ebp - 0xc04]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
movzx ecx, byte [0x41e8ee]
add esp, 8
test eax, eax
cmovne ecx, ebx
mov byte [0x41e8ee], cl
test esi, esi
jne 0x4036ad
lea eax, [ebp - 0xca0]
mov dword [0x41e8e8], 2
push eax
mov dword [ebp - 0xca0], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x403592
mov ecx, 0x13
lea edi, [ebp - 0x404]
mov esi, str.Could_not_determine_type_of_operating_system___assuming_Windows_NT_platform._n
rep movsd dword es:[edi], dword [esi]
push 0x50030
push str.Error
lea ecx, [ebp - 0x404]
push ecx
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00412814
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc90]
cmp eax, dword [0x41e8e8]
je 0x403665
lea edi, [ebp - 0x404]
mov ecx, 0x13
mov esi, str.This_DBDOC_Installation_is_not_appropriate_for_your_current_operating_system._n
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp eax, 2
jne 0x4035dc
lea edi, [ebp - 0x404]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4035c5
mov ecx, 0xb
mov esi, str.You_require_the_kit_for_Windows_NT_2000_XP._n
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40361c
cmp eax, 1
jne 0x40361c
lea edi, [ebp - 0x404]
dec edi
cmp dword [ebp - 0xc98], 0
jne 0x403608
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4035f1
mov ecx, 9
mov esi, str.You_require_the_kit_for_Windows_95._n
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40361c
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403608
mov ecx, 0xa
mov esi, str.You_require_the_kit_for_Windows_98_ME._n
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x404]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x403623
mov ecx, 0x12
lea eax, [ebp - 0x404]
mov esi, str.Please_visit_our_website__www.gmcl.com__to_download_the_appropriate_one._n
rep movsd dword es:[edi], dword [esi]
push 0x50030
push str.Incorrect_Kit_Version
push eax
push 0
movsw word es:[edi], word [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00412814
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc9c]
cmp eax, 4
jne 0x403692
cmp dword [ebp - 0xc98], 0
jne 0x4036ad
pop edi
pop esi
mov byte [0x420511], bl
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00412814
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x4036ad
movzx eax, byte [0x420d21]
cmp dword [ebp - 0xc98], 0
cmove eax, ebx
mov byte [0x420d21], al
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00412814
mov esp, ebp
pop ebp
ret