Function at 0x407080
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x1c4
push ebx
push esi
mov esi, ecx
push edi
mov ecx, 0x41
xor eax, eax
lea ebx, [esi + 4]
mov dword [esp + 0x10], 0x9c
mov edi, ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x40765c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ebp
push ecx
push edx
push eax
lea ecx, [esp + 0xe0]
push str.__d._d__Build__d_
push ecx
call fcn.004b093f
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add esp, 0x14
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xb0]
push str.GetNativeSystemInfo
rep stosd dword es:[edi], eax
push str.kernel32.dll
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edi, edi
cmp eax, edi
je 0x407114
lea edx, [esp + 0xb0]
push edx
call eax
jmp 0x407122
lea eax, [esp + 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [esp + 0xb0]
mov word [esi + 2], di
cmp ax, 9
jne 0x40713c
mov word [esi + 2], 0x40
jmp 0x407147
cmp ax, di
jne 0x407147
mov word [esi + 2], 0x20
mov eax, dword [esp + 0x24]
dec eax
je 0x407638
dec eax
jne case.0x4073ce.8
mov eax, dword [esp + 0x18]
sub eax, 5
je 0x407548
dec eax
je 0x4071bf
sub eax, 4
je 0x40718f
lea ecx, [esp + 0x28]
push ecx
push 0x4d2bec
push ebx
call fcn.004b093f
add esp, 0xc
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_10__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
push str.GetProductInfo
push str.kernel32.dll
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea edx, [esp + 0x10]
push edx
push edi
push edi
push edi
push 6
call eax
mov eax, dword [esp + 0x1c]
sub eax, edi
je 0x4073b6
dec eax
je 0x407226
sub eax, 2
jne case.0x4073ce.8
xor eax, eax
lea ecx, [esp + 0x28]
mov ax, word [esi + 2]
lea edx, [esp + 0xd4]
push eax
push ecx
push edx
push str.Windows_8.1__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
mov eax, dword [esp + 0x10]
dec eax
cmp eax, 0x30
ja case.0x4073ce.8
xor ecx, ecx
mov cl, byte [eax + 0x407688]
jmp dword [ecx*4 + 0x407668]
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Ultimate_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x500
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Home_Basic_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x501
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Home_Premium_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x502
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Enterprise_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x503
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Business_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x504
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Starter_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x505
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_7_Professional_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x506
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
mov edx, dword [esp + 0x10]
lea eax, [edx - 1]
cmp eax, 0x30
ja case.0x4073ce.8
xor ecx, ecx
mov cl, byte [eax + 0x4076dc]
jmp dword [ecx*4 + 0x4076bc]
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Ultimate_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x400
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Home_Basic_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x401
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Home_Premium_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x402
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Enterprise_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x403
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Business_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x404
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Starter_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x405
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_Vista_Professional_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x406
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
mov eax, dword [esp + 0x1c]
sub eax, edi
je 0x40760a
dec eax
je 0x40758b
dec eax
jne case.0x4073ce.8
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
push edx
push eax
push 0x4d28e0
push ebx
call fcn.004b093f
add esp, 0x10
mov edi, 0xffff
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
mov ecx, dword [esp + 0xac]
and ecx, 0x200
cmp ecx, 0x200
jne 0x4075d5
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_XP_Home_Edition__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x300
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
xor edx, edx
lea eax, [esp + 0x28]
mov dx, word [esi + 2]
lea ecx, [esp + 0xd4]
push edx
push eax
push ecx
push str.Windows_XP_Professional__s__s____dBit
push ebx
call fcn.004b093f
add esp, 0x14
mov edi, 0x301
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
lea edx, [esp + 0x28]
lea eax, [esp + 0xd4]
push edx
push eax
push str.Windows_2000__s__s
push ebx
mov edi, 0x200
call fcn.004b093f
add esp, 0x10
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret
lea ecx, [esp + 0x28]
lea edx, [esp + 0xd4]
push ecx
push edx
push str.Windows_9x__s__s
push ebx
call fcn.004b093f
add esp, 0x10
mov edi, 0x100
mov word [esi], di
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c4
ret