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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x64de94
mov byte [esi], 0
mov eax, dword [0x788e78]
test eax, eax
je 0x64dec2
test esi, esi
je 0x64e493
mov edx, 0x788e80
sub esi, edx
lea esp, [esp]
mov cl, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], cl
test cl, cl
jne 0x64deb0
pop esi
mov esp, ebp
pop ebp
ret
push edi
push 0x9c
lea eax, [ebp - 0xb8]
push 0
push eax
call fcn.0066eb10
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0xb8]
add esp, 0xc
mov dword [ebp - 0xb8], 0x9c
push eax
call edi
test eax, eax
jne 0x64df11
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xb8], 0x94
push eax
call edi
test eax, eax
je 0x64e48d
xorps xmm0, xmm0
mov dword [ebp - 0xbc], 0
lea eax, [ebp - 0xdc]
push eax
movdqu xmmword [ebp - 0xdc], xmm0
movdqu xmmword [ebp - 0xcc], xmm0
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov eax, dword [ebp - 0xa8]
sub eax, 0
je 0x64e44f
dec eax
je 0x64e34b
dec eax
jne 0x64e470
mov ax, word [ebp - 0xdc]
cmp ax, 9
je 0x64df72
cmp ax, 6
je 0x64df72
push str.32bit_System
jmp 0x64df77
push str.64bit_System
push 0x104
push 0x788e80
call fcn.0066df1d
add esp, 0xc
cmp dword [ebp - 0xb4], 6
jb 0x64e1de
cmp dword [ebp - 0xb0], 2
jb 0x64e124
push 0x73122c
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x64e0dd
push 0x731238
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x64e0d4
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 4]
push ecx
call eax
and dword [ebp + 8], 0xffff
mov eax, dword [ebp - 4]
cmp eax, 6
jne 0x64e046
mov eax, dword [ebp - 8]
cmp eax, 2
jne 0x64e01d
push str.Windows_8
push 0x104
push 0x788e80
call fcn.006745e6
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [0x788e78], 0x12
cmp eax, 6
jne 0x64e046
mov eax, dword [ebp - 8]
cmp eax, 3
jne 0x64e09b
push str.Windows_8.1
push 0x104
push 0x788e80
call fcn.006745e6
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [0x788e78], 0x14
cmp eax, 0xa
jne 0x64e09b
cmp dword [ebp - 8], 0
jne 0x64e09b
cmp dword [ebp + 8], 0x55f0
jb 0x64e07a
push str.Windows_11
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0x17
jmp 0x64e098
push str.Windows_10
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0x16
add esp, 0xc
push dword [ebp + 8]
xor eax, eax
xorps xmm0, xmm0
mov word [ebp - 0x1c], ax
mov word [ebp - 0xa], ax
lea eax, [ebp - 0x1c]
push str._Build__lu
push eax
movdqu xmmword [ebp - 0x1a], xmm0
call fcn.0066d97a
lea eax, [ebp - 0x1c]
push eax
push 0x104
push 0x788e80
call fcn.006745e6
add esp, 0x18
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x64e124
cmp byte [ebp - 0x1e], 1
jne 0x64e103
push str.Windows_8
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0x12
jmp 0x64e121
push str.Windows_Server_2012
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0x11
add esp, 0xc
cmp dword [ebp - 0xb4], 6
jne 0x64e1de
cmp dword [ebp - 0xb0], 1
jne 0x64e18a
cmp byte [ebp - 0x1e], 1
jne 0x64e160
push str.Windows_7
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0x10
jmp 0x64e17e
push str.Windows_Server_2008_R2
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xf
add esp, 0xc
cmp dword [ebp - 0xb4], 6
jne 0x64e1de
cmp dword [ebp - 0xb0], 0
jne 0x64e470
cmp byte [ebp - 0x1e], 1
jne 0x64e1bd
push str.Windows_Vista
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xd
jmp 0x64e1db
push str.Windows_Server_2008
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xe
add esp, 0xc
cmp dword [ebp - 0xb4], 5
jne 0x64e31b
cmp dword [ebp - 0xb0], 2
jne 0x64e282
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x64e224
push str.Windows_Server_2003_R2
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xc
jmp 0x64e272
cmp byte [ebp - 0x1e], 1
jne 0x64e254
cmp word [ebp - 0xdc], 9
jne 0x64e254
push str.Windows_XP_64_Bit_Edition
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xa
jmp 0x64e272
push str.Windows_Server_2003
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 0xb
add esp, 0xc
cmp dword [ebp - 0xb4], 5
jne 0x64e31b
cmp dword [ebp - 0xb0], 1
jne 0x64e2b5
push str.Windows_XP
push 0x104
push 0x788e80
call fcn.006745e6
add esp, 0xc
mov dword [0x788e78], 9
cmp dword [ebp - 0xb4], 5
jne 0x64e31b
cmp dword [ebp - 0xb0], 0
jne 0x64e2ed
push str.Windows_2000
push 0x104
push 0x788e80
call fcn.006745e6
add esp, 0xc
mov dword [0x788e78], 8
cmp dword [ebp - 0xb4], 5
jne 0x64e31b
jmp 0x64e470
cmp dword [0x788e78], 0
jne 0x64e470
push str.Windows_XP_64_Bit
push 0x104
push 0x788e80
call fcn.006745e6
add esp, 0xc
mov dword [0x788e78], 0xa
cmp dword [ebp - 0xb4], 4
ja 0x64e470
push str.Windows_NT
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 7
jmp 0x64e46d
cmp dword [ebp - 0xb4], 4
jne 0x64e470
mov eax, dword [ebp - 0xb0]
mov edi, 0x788e80
test eax, eax
jne 0x64e3cd
push str.Windows_95
push 0x104
push edi
call fcn.006745e6
mov al, byte [ebp - 0xa3]
add esp, 0xc
mov dword [0x788e78], 2
cmp al, 0x43
je 0x64e392
cmp al, 0x42
jne 0x64e3ba
lea ecx, [edi - 1]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x64e395
mov eax, dword [str._OSR2]
mov dword [ecx], eax
mov ax, word [0x73137c]
mov word [ecx + 4], ax
mov dword [0x788e78], 3
cmp dword [ebp - 0xb4], 4
jne 0x64e470
mov eax, dword [ebp - 0xb0]
cmp eax, 0xa
jne 0x64e42a
push str.Windows_98
push 0x104
push 0x788e80
call fcn.006745e6
add esp, 0xc
mov dword [0x788e78], 4
cmp byte [ebp - 0xa3], 0x41
jne 0x64e41b
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x64e400
mov eax, dword [0x73138c]
mov dword [edi], eax
mov dword [0x788e78], 5
cmp dword [ebp - 0xb4], 4
jne 0x64e470
mov eax, dword [ebp - 0xb0]
cmp eax, 0x5a
jne 0x64e470
push str.Windows_ME
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 6
jmp 0x64e46d
push str.Win32s
push 0x104
push 0x788e80
call fcn.006745e6
mov dword [0x788e78], 1
add esp, 0xc
test esi, esi
je 0x64e48d
mov ecx, 0x788e80
sub esi, ecx
jmp 0x64e480
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x64e480
mov eax, dword [0x788e78]
pop edi
pop esi
mov esp, ebp
pop ebp
ret