Function at 0x4586f0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x260
mov eax, dword [0x52efc0]
xor eax, ebp
mov dword [esp + 0x258], eax
mov esi, dword [0x531ce0]
cmp esi, 1
ja 0x458759
push 0x531ce0
call fcn.00435680
add esp, 4
test al, al
je 0x458753
mov ecx, 0x531ce4
mov esi, 0x531ce4
call fcn.004489c0
push 0x531ce0
push 0
push 0x531ce4
push 0x531ce0
call fcn.00435730
add esp, 0x10
jmp 0x458759
mov esi, dword [0x531ce0]
mov ecx, esi
call fcn.00448a40
mov eax, dword [0x531cec]
test al, 1
je 0x45878b
mov ecx, esi
call fcn.00448a50
mov ecx, dword [esp + 0x258]
xor ecx, ebp
call fcn.004aeb01
mov eax, 0x531ce8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
or eax, 1
mov dword [0x531cec], eax
lea eax, [esp + 0x140]
push 0x118
push 0
push eax
call fcn.004b81d0
add esp, 0xc
lea eax, [esp + 0x13c]
mov dword [esp + 0x13c], 0x11c
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea edi, [esp + 0x24]
mov ecx, edi
call fcn.0042cb10
push edi
push 7
call fcn.0043fe00
add esp, 8
lea eax, [esp + 0x30]
mov ecx, edi
push eax
call fcn.00431140
movzx eax, byte [esp + 0x3b]
test al, al
jns 0x4587f2
mov eax, dword [esp + 0x34]
cmp eax, 9
jne 0x458813
lea ecx, [esp + 0x30]
push 9
push 0x4ee436
push 0xffffffffffffffff
push 0
call fcn.004290ca
test eax, eax
je 0x45895c
lea eax, [esp + 0x18]
lea ecx, [esp + 0x24]
push eax
call fcn.00431140
movzx eax, byte [esp + 0x23]
test al, al
jns 0x45882e
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jne 0x458864
lea edi, [esp + 0x18]
mov ecx, edi
push 0xd
push 0x4e2d9c
push 0xffffffffffffffff
push 0
call fcn.004290ca
mov ecx, edi
mov ebx, eax
call fcn.0042cba0
lea ecx, [esp + 0x30]
call fcn.0042cba0
test ebx, ebx
jne 0x458876
jmp 0x458965
lea ecx, [esp + 0x18]
call fcn.0042cba0
lea ecx, [esp + 0x30]
call fcn.0042cba0
xorps xmm0, xmm0
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x30], xmm0
push 0
push 0
push 0
push 0x80
lea edi, [esp + 0x40]
push edi
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push eax
call fcn.004591d0
add esp, 0x24
mov eax, dword [esp + 0x18]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x150]
push 0xffffffffffffffff
push edi
push 0x80
push eax
call fcn.004cfd44
add esp, 0x10
jmp 0x458965
lea ecx, [esp + 0x30]
call fcn.0042cba0
mov dword [esp + 0x18], 0
push 0x4e3640
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetProductInfo
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4589a9
mov ecx, eax
lea eax, [esp + 0x18]
push eax
push 0
push 0
push dword [esp + 0x150]
push dword [esp + 0x150]
call ecx
mov ebx, dword [esp + 0x18]
jmp 0x4589ab
xor ebx, ebx
push 0x50
call fcn.004aea96
add esp, 4
mov edi, eax
mov eax, dword [0x537e98]
test al, 1
je 0x4589f0
mov ecx, edi
push ebx
push 0x537e74
lea eax, [esp + 0x144]
push eax
call fcn.00458a60
mov ecx, edi
call fcn.00458ec0
lea ecx, [esp + 0x24]
call fcn.0042cba0
mov dword [0x531ce8], edi
jmp 0x458769
or eax, 1
xorps xmm0, xmm0
mov dword [esp + 0x50], 0
mov dword [0x537e98], eax
lea eax, [esp + 0x30]
movaps xmmword [esp + 0x40], xmm0
movaps xmmword [esp + 0x30], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movsd xmm1, qword [esp + 0x40]
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x30]
movsd qword [0x537e84], xmm1
movsd xmm1, qword [esp + 0x38]
mov dword [0x537e94], eax
movsd qword [0x537e8c], xmm0
movsd qword [0x537e74], xmm2
movsd qword [0x537e7c], xmm1
jmp 0x4589c0