Function at 0x517460
Capabilities:
Check os version
Get memory capacity
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x48
push 0
push 0
dec ecx
jne 0x517468
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x517afb
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x517a92
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x148]
mov edx, 0x11c
call fcn.0042a710
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.kernel32.dll_GetVersionExW_1
test eax, eax
jne 0x5174ce
lea eax, [ebp - 0x148]
mov edx, 0x11c
call fcn.0042a710
cmp dword [ebp - 0x144], 5
jb 0x5174fc
cmp dword [ebp - 0x140], 1
jb 0x5174fc
mov eax, dword [0x5914e0]
cmp dword [eax], 0
je 0x5174fc
lea eax, [ebp - 0x16c]
push eax
mov eax, dword [0x5914e0]
mov eax, dword [eax]
call eax
jmp 0x517508
lea eax, [ebp - 0x16c]
push eax
call sub.kernel32.dll_GetSystemInfo_1
mov dword [ebp - 0x1d0], 0x40
lea eax, [ebp - 0x1d0]
push eax
call sub.kernel32.dll_GlobalMemoryStatusEx
lea edx, [ebp - 0x17c]
mov eax, 1
call fcn.005155f0
lea edx, [ebp - 0x18c]
mov eax, 0x80000001
call fcn.005155f0
xor eax, eax
push ebp
push 0x517644
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x590da8]
cmp dword [eax], 0
je 0x51763a
push 1
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x517434]
call fcn.00408614
add esp, 4
xor eax, eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
xor eax, eax
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x517589
cmp eax, dword [edx - 4]
jb 0x51758e
call fcn.00404f50
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
push eax
mov eax, dword [0x590da8]
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0x14]
mov ecx, 0x18
xor edx, edx
div ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, dword [0x517434]
call fcn.00408614
add esp, 4
lea eax, [ebp - 0x14]
push eax
xor eax, eax
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x5175d9
cmp eax, dword [edx - 4]
jb 0x5175de
call fcn.00404f50
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
push eax
mov eax, dword [0x590da8]
mov eax, dword [eax]
call eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
dec eax
test eax, eax
jb 0x517631
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
test edx, edx
je 0x517615
cmp eax, dword [edx - 4]
jb 0x51761a
call fcn.00404f50
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
sub eax, 1
jae 0x517629
inc dword [ebp - 0x20]
inc dword [ebp - 0x1c]
dec dword [ebp - 0x28]
jne 0x517606
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x158], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51764e
xor eax, eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
movzx eax, word [ebp - 0x32]
push eax
movzx eax, word [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x144]
push eax
mov eax, dword [0x590d54]
mov eax, dword [eax]
call eax
push 0x517b18
lea edx, [ebp - 0x1d4]
mov eax, 3
call fcn.0041d5dc
push dword [ebp - 0x1d4]
push 0x517b70
push 0x517b80
push dword [ebp - 4]
push 0x517b70
push 0x517ba0
lea edx, [ebp - 0x1d8]
mov eax, dword [0x591734]
movzx eax, byte [eax]
call fcn.0041d5dc
push dword [ebp - 0x1d8]
push 0x517b70
push 0x517bc4
mov eax, dword [ebp - 0x144]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1dc]
call fcn.0041d604
push dword [ebp - 0x1dc]
push 0x517b70
push 0x517bf4
mov eax, dword [ebp - 0x140]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1e0]
call fcn.0041d604
push dword [ebp - 0x1e0]
push 0x517b70
push 0x517c24
lea edx, [ebp - 0x1e4]
movzx eax, word [ebp - 0x34]
call fcn.0041d5dc
push dword [ebp - 0x1e4]
push 0x517b70
push 0x517c5c
lea edx, [ebp - 0x1e8]
movzx eax, word [ebp - 0x30]
call fcn.0041d5dc
push dword [ebp - 0x1e8]
push 0x517b70
push 0x517c88
lea edx, [ebp - 0x1ec]
xor eax, eax
mov al, byte [ebp - 0x2e]
call fcn.0041d5dc
push dword [ebp - 0x1ec]
push 0x517b70
push 0x517cb8
mov eax, dword [ebp - 0xc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1f0]
call fcn.0041d604
push dword [ebp - 0x1f0]
push 0x517b70
push 0x517cf0
lea edx, [ebp - 0x1f4]
movzx eax, word [ebp - 0x16c]
call fcn.0041d5dc
push dword [ebp - 0x1f4]
push 0x517b70
push 0x517d34
lea edx, [ebp - 0x1f8]
movzx eax, word [ebp - 0x14a]
call fcn.0041d5dc
push dword [ebp - 0x1f8]
push 0x517b70
push 0x517d70
mov eax, dword [ebp - 0x158]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x1fc]
call fcn.0041d604
push dword [ebp - 0x1fc]
push 0x517b70
push 0x517db0
push 0
push 0x100000
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c4]
call fcn.004080a0
add eax, 0
adc edx, 0x80000000
cmp edx, 0xffffffff
jne 0x517829
cmp eax, 0xffffffff
jbe 0x517830
call fcn.00404f50
add eax, 0
adc edx, 0x80000000
push edx
push eax
lea eax, [ebp - 0x200]
call fcn.0041d604
push dword [ebp - 0x200]
push 0x517b70
push 0x517ddc
push 0
push 0x100000
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1b4]
call fcn.004080a0
add eax, 0
adc edx, 0x80000000
cmp edx, 0xffffffff
jne 0x51787f
cmp eax, 0xffffffff
jbe 0x517886
call fcn.00404f50
add eax, 0
adc edx, 0x80000000
push edx
push eax
lea eax, [ebp - 0x204]
call fcn.0041d604
push dword [ebp - 0x204]
push 0x517b70
push 0x517e14
push 0
push 0x100000
mov eax, dword [ebp - 0x1a8]
mov edx, dword [ebp - 0x1a4]
call fcn.004080a0
add eax, 0
adc edx, 0x80000000
cmp edx, 0xffffffff
jne 0x5178d5
cmp eax, 0xffffffff
jbe 0x5178dc
call fcn.00404f50
add eax, 0
adc edx, 0x80000000
push edx
push eax
lea eax, [ebp - 0x208]
call fcn.0041d604
push dword [ebp - 0x208]
push 0x517b70
push 0x517e48
call fcn.00515120
movzx eax, ax
lea edx, [ebp - 0x20c]
call fcn.0041d5dc
push dword [ebp - 0x20c]
push 0x517b70
push 0x517e74
mov eax, dword [ebp - 0x17c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x210]
call fcn.0041d604
push dword [ebp - 0x210]
push 0x517b70
push 0x517ea4
mov eax, dword [ebp - 0x170]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x214]
call fcn.0041d604
push dword [ebp - 0x214]
push 0x517b70
push 0x517ed4
mov eax, dword [ebp - 0x178]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x218]
call fcn.0041d604
push dword [ebp - 0x218]
push 0x517b70
push 0x517f04
mov eax, dword [ebp - 0x174]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x21c]
call fcn.0041d604
push dword [ebp - 0x21c]
push 0x517b70
push 0x517f34
mov eax, dword [ebp - 0x188]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x220]
call fcn.0041d604
push dword [ebp - 0x220]
push 0x517b70
push 0x517f64
mov eax, dword [ebp - 0x184]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x224]
call fcn.0041d604
push dword [ebp - 0x224]
lea eax, [ebp - 0x228]
call fcn.00516710
push dword [ebp - 0x228]
lea eax, [ebp - 0x22c]
call fcn.00516f40
push dword [ebp - 0x22c]
lea eax, [ebp - 0x230]
call fcn.00516450
push dword [ebp - 0x230]
lea eax, [ebp - 0x234]
call fcn.00516290
push dword [ebp - 0x234]
lea eax, [ebp - 0x238]
call fcn.00517200
push dword [ebp - 0x238]
lea eax, [ebp - 0x23c]
call fcn.00516c80
push dword [ebp - 0x23c]
lea eax, [ebp - 0x240]
call fcn.005169d0
push dword [ebp - 0x240]
lea eax, [ebp - 0x24]
mov edx, 0x48
call fcn.00407540
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
call fcn.004069bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x517ac7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x517b02
lea eax, [ebp - 0x240]
mov edx, 0x1c
call fcn.00406658
lea eax, [ebp - 0x24]
call fcn.004065f8
lea eax, [ebp - 0x10]
mov edx, dword [0x517434]
call fcn.00408620
ret