Function at 0x58b5d0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx ecx, word [ebp - 0x24]
mov dword [ebp - 0xac], ecx
cmp dword [ebp - 0xac], 0xa
ja case.0x58b607.4
mov edx, dword [ebp - 0xac]
jmp dword [edx*4 + 0x58ba20]
lea eax, [ebp - 0x31]
mov dword [ebp - 0x30], eax
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0xb0], str.IA32
mov ecx, dword [ebp - 0xb0]
add ecx, 1
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb0]
mov al, byte [edx]
mov byte [ebp - 0xb5], al
add dword [ebp - 0xb0], 1
cmp byte [ebp - 0xb5], 0
jne 0x58b639
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xbc]
push edx
push str.IA32
mov ecx, dword [ebp + 8]
call fcn.00402910
mov eax, dword [ebp - 0x28]
or eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea ecx, [ebp - 0x45]
mov dword [ebp - 0x44], ecx
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0xc0], str.MIPS
mov edx, dword [ebp - 0xc0]
add edx, 1
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc0]
mov cl, byte [eax]
mov byte [ebp - 0xc5], cl
add dword [ebp - 0xc0], 1
cmp byte [ebp - 0xc5], 0
jne 0x58b6b9
mov edx, dword [ebp - 0xc0]
sub edx, dword [ebp - 0xc4]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
push eax
push str.MIPS
mov ecx, dword [ebp + 8]
call fcn.00402910
mov ecx, dword [ebp - 0x28]
or ecx, 1
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea edx, [ebp - 0x59]
mov dword [ebp - 0x58], edx
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0xd0], str.ALPHA
mov eax, dword [ebp - 0xd0]
add eax, 1
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xd0]
mov dl, byte [ecx]
mov byte [ebp - 0xd5], dl
add dword [ebp - 0xd0], 1
cmp byte [ebp - 0xd5], 0
jne 0x58b739
mov eax, dword [ebp - 0xd0]
sub eax, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xdc]
push ecx
push str.ALPHA
mov ecx, dword [ebp + 8]
call fcn.00402910
mov edx, dword [ebp - 0x28]
or edx, 1
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea eax, [ebp - 0x6d]
mov dword [ebp - 0x6c], eax
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0xe0], 0x65b804
mov ecx, dword [ebp - 0xe0]
add ecx, 1
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0xe0]
mov al, byte [edx]
mov byte [ebp - 0xe5], al
add dword [ebp - 0xe0], 1
cmp byte [ebp - 0xe5], 0
jne 0x58b7b9
mov ecx, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 0xec]
push edx
push 0x65b804
mov ecx, dword [ebp + 8]
call fcn.00402910
mov eax, dword [ebp - 0x28]
or eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea ecx, [ebp - 0x79]
mov dword [ebp - 0x78], ecx
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0xf0], str.IA64
mov edx, dword [ebp - 0xf0]
add edx, 1
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xf0]
mov cl, byte [eax]
mov byte [ebp - 0xf5], cl
add dword [ebp - 0xf0], 1
cmp byte [ebp - 0xf5], 0
jne 0x58b839
mov edx, dword [ebp - 0xf0]
sub edx, dword [ebp - 0xf4]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0xfc]
push eax
push str.IA64
mov ecx, dword [ebp + 8]
call fcn.00402910
mov ecx, dword [ebp - 0x28]
or ecx, 1
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea edx, [ebp - 0x85]
mov dword [ebp - 0x84], edx
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0x100], str.IA64_32
mov eax, dword [ebp - 0x100]
add eax, 1
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0x100]
mov dl, byte [ecx]
mov byte [ebp - 0x105], dl
add dword [ebp - 0x100], 1
cmp byte [ebp - 0x105], 0
jne 0x58b8bf
mov eax, dword [ebp - 0x100]
sub eax, dword [ebp - 0x104]
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10c]
push ecx
push str.IA64_32
mov ecx, dword [ebp + 8]
call fcn.00402910
mov edx, dword [ebp - 0x28]
or edx, 1
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea eax, [ebp - 0x91]
mov dword [ebp - 0x90], eax
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0x110], str.AMD64
mov ecx, dword [ebp - 0x110]
add ecx, 1
mov dword [ebp - 0x114], ecx
mov edx, dword [ebp - 0x110]
mov al, byte [edx]
mov byte [ebp - 0x115], al
add dword [ebp - 0x110], 1
cmp byte [ebp - 0x115], 0
jne 0x58b945
mov ecx, dword [ebp - 0x110]
sub ecx, dword [ebp - 0x114]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x11c]
push edx
push str.AMD64
mov ecx, dword [ebp + 8]
call fcn.00402910
mov eax, dword [ebp - 0x28]
or eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
jmp 0x58ba1b
lea ecx, [ebp - 0xa5]
mov dword [ebp - 0xa4], ecx
push 0
push 0
mov ecx, dword [ebp + 8]
call fcn.004028c0
mov dword [ebp - 0x120], str.Unknown
mov edx, dword [ebp - 0x120]
add edx, 1
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x120]
mov cl, byte [eax]
mov byte [ebp - 0x125], cl
add dword [ebp - 0x120], 1
cmp byte [ebp - 0x125], 0
jne 0x58b9cb
mov edx, dword [ebp - 0x120]
sub edx, dword [ebp - 0x124]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x12c]
push eax
push str.Unknown
mov ecx, dword [ebp + 8]
call fcn.00402910
mov ecx, dword [ebp - 0x28]
or ecx, 1
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
mov esp, ebp
pop ebp
ret