Function at 0x504d90
Capabilities:
Check os version

Disassembly:
sub esp, 0x3d8
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0x3d4], eax
push ebx
push esi
mov esi, dword [esp + 0x3e4]
push edi
mov edi, dword [esp + 0x3ec]
push 0x103
xor ebx, ebx
lea eax, [esp + 0x2e1]
push ebx
push eax
mov dword [esp + 0x30], edi
call fcn.005dfd60
push 0x103
lea ecx, [esp + 0xe5]
push ebx
push ecx
mov byte [esp + 0xec], bl
call fcn.005dfd60
push 0x90
lea edx, [esp + 0x60]
push ebx
push edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], ebx
call fcn.005dfd60
add esp, 0x24
mov byte [esi], bl
mov byte [esp + 0x2dc], bl
cmp edi, ebx
je 0x504e3a
mov byte [edi], bl
push ebp
cmp dword [0x74aff0], ebx
jne 0x504e64
mov ebp, 1
mov dword [0x74aff0], ebp
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x504e64
cmp al, 6
jb 0x504e64
mov dword [0x74afec], ebp
jmp 0x504e6c
cmp dword [0x74afec], ebx
je 0x504e95
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.004f4a40
test eax, eax
jne 0x504ebb
push 0x94
lea ecx, [esp + 0x48]
push ebx
push ecx
call fcn.005dfd60
add esp, 0xc
lea edx, [esp + 0x44]
push edx
jmp 0x504ead
push 0x94
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.005dfd60
add esp, 0xc
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
call fcn.004d96c0
mov ebp, eax
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x6c], ebp
call fcn.004d9f10
add esp, 0x2c
cmp dword [0x68fed4], 0xffffffff
jne 0x504f25
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x68fed4
call fcn.004d9f10
add esp, 0x2c
cmp edi, ebx
je 0x504f39
push str.OS:
push esi
call fcn.005dfb23
add esp, 8
jmp 0x504f3b
mov byte [esi], bl
cmp dword [esp + 0x14], ebx
je 0x504f50
push 0x104
push str.Windows_95
jmp 0x505151
cmp dword [esp + 0x38], ebx
je 0x504f65
push 0x104
push str.Windows_98
jmp 0x505151
cmp dword [esp + 0x1c], ebx
je 0x504f7a
push 0x104
push 0x64ba88
jmp 0x505151
cmp dword [esp + 0x30], ebx
je 0x504f8f
push 0x104
push str.Windows_ME
jmp 0x505151
cmp dword [esp + 0x24], ebx
je 0x504fa4
push 0x104
push 0x64ba70
jmp 0x505151
cmp dword [esp + 0x34], ebx
je 0x504fe4
call fcn.004d8f30
cmp eax, 2
push 0x104
jle 0x504fc3
push str.Windows_2003
jmp 0x505151
cmp ebp, ebx
je 0x504fd1
push str.Windows_XP_Pro_x64
jmp 0x505151
push 0x64ba70
push esi
call fcn.004d9130
add esp, 0xc
jmp 0x505170
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
cmp ebp, ebx
jne 0x505019
cmp dword [esp + 0x10], ebx
jne 0x505019
cmp edi, ebx
jne 0x505019
cmp dword [esp + 0x18], ebx
jne 0x505019
cmp dword [esp + 0x20], ebx
je 0x50515a
push 0x104
push str.Windows_NT
jmp 0x505151
call fcn.004d8f30
cmp eax, 2
jle 0x505107
cmp dword [esp + 0x48], 6
jne 0x505059
mov eax, dword [esp + 0x4c]
cmp eax, ebx
jne 0x505045
push 0x104
push 0x64ba30
jmp 0x505151
cmp eax, 1
jne 0x505059
push 0x104
push 0x64ba20
jmp 0x505151
push 0x90
lea ecx, [esp + 0x1e4]
push ebx
push ecx
mov dword [esp + 0x1e8], ebx
call fcn.005dfd60
add esp, 0xc
push ebx
lea edx, [esp + 0x1e0]
push edx
call fcn.004f4a40
cmp eax, 1
jne 0x5050e6
mov eax, dword [esp + 0x1e4]
cmp eax, 2
jne 0x5050a4
push 0x104
push 0x64ba10
jmp 0x505151
cmp eax, 3
jne 0x5050b8
push 0x104
push 0x64ba00
jmp 0x505151
cmp dword [esp + 0x1e0], 0xa
jb 0x50515a
cmp dword [esp + 0x1e8], 0x44c0
push 0x104
jae 0x5050df
push 0x64b9f0
jmp 0x505151
push 0x64b9e0
jmp 0x505151
mov eax, dword [esp + 0x4c]
push 0x104
cmp eax, 2
jne 0x5050fb
push 0x64ba10
jmp 0x505151
cmp eax, 3
jne 0x5050d8
push 0x64ba00
jmp 0x505151
cmp edi, ebx
je 0x50513c
call fcn.004f79d0
test eax, eax
je 0x505120
push 0x104
push 0x64b9d4
jmp 0x505151
call fcn.004f78e0
push 0x104
test eax, eax
je 0x505135
push 0x64b9c8
jmp 0x505151
push 0x636438
jmp 0x505151
push 0x104
cmp ebp, ebx
je 0x50514c
push 0x64b9b8
jmp 0x505151
push 0x64b9ac
push esi
call fcn.004d9130
add esp, 0xc
cmp dword [esp + 0x40], ebx
je 0x50516c
push str._64_Bit
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [esp + 0x28]
pop ebp
cmp edi, ebx
je 0x505289
lea eax, [esp + 0x2dc]
push ebx
push eax
call fcn.004fceb0
add esp, 8
cmp byte [esp + 0x2dc], bl
je 0x5051d9
push 0x103
lea ecx, [esp + 0x1dd]
push ebx
push ecx
mov byte [esp + 0x1e4], bl
call fcn.005dfd60
lea edx, [esp + 0x2e8]
push edx
lea eax, [esp + 0x1e8]
push str.__OS_Install_Date:__s_
push eax
call fcn.005dfb23
add esp, 0x18
lea ecx, [esp + 0x1d8]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0xd4]
push ebx
push edx
mov byte [edi], bl
mov byte [esp + 0xdc], bl
call fcn.005027c0
mov esi, eax
lea eax, [esp + 0xdc]
push eax
call fcn.004e1290
add esp, 0xc
cmp byte [esp + 0xd4], bl
je 0x505289
cmp esi, ebx
jne 0x50521e
lea ecx, [esp + 0xd4]
push ecx
push str.Ver:__s
jmp 0x505280
cmp esi, 1
jne 0x505232
lea edx, [esp + 0xd4]
push edx
push str.Ver:_Personal__s
jmp 0x505280
cmp esi, 2
jne 0x505246
lea eax, [esp + 0xd4]
push eax
push str.Ver:_Professional__s
jmp 0x505280
cmp esi, 3
jne 0x50525a
lea ecx, [esp + 0xd4]
push ecx
push str.Ver:_Standard_Server__s
jmp 0x505280
cmp esi, 4
jne 0x50526e
lea edx, [esp + 0xd4]
push edx
push str.Ver:_DataCenter_Server__s
jmp 0x505280
cmp esi, 5
jne 0x505289
lea eax, [esp + 0xd4]
push eax
push str.Ver:_Enterprise_Advanced__s
push edi
call fcn.005dfb23
add esp, 0xc
mov ecx, dword [esp + 0x3e0]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005dfbbe
add esp, 0x3d8
ret 8