Function at 0x55f0d0
Capabilities:
Get memory capacity
Get system information on windows

Disassembly:
sub esp, 0xa8
push ebp
push esi
mov esi, ecx
push edi
xor ebp, ebp
lea edi, [esi + 4]
mov eax, str.Unknown
mov edx, edi
mov dword [esi], ebp
mov dword [esi + 0x9c], ebp
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f0f1
push ebx
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0xac]
sub eax, 0x1e6
je 0x55f121
sub eax, 0x64
jne 0x55f97d
push edi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.005567f5
add esp, 0xc
test eax, eax
jne 0x55f155
mov eax, str.Non_compatible_CPU
xor ebx, ebx
mov dword [esi], ebp
mov dword [esi + 0x24], ebp
sub edi, eax
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x55f146
jmp 0x55f981
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetPriorityClass]
push 0x80
mov dword [esp + 0x14], eax
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
call fcn.005567f5
add esp, 0xc
lea ecx, [esp + 0x48]
call fcn.00556220
push 1
lea ecx, [esp + 0x4c]
call fcn.00556260
lea ecx, [esp + 0x48]
call fcn.00556440
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.0055687b
add esp, 8
lea ecx, [esp + 0x48]
call fcn.00556650
fcomp qword [0x59eb50]
fnstsw ax
test ah, 5
jnp 0x55f1c7
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0055687b
mov eax, dword [esp + 0x18]
add esp, 8
push eax
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov ecx, dword [0x8b8f24]
push ebp
push 2
call fcn.0053ac70
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], ebp
fild qword [esp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebp
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
fsubp st(1)
fmul qword [0x5af448]
fmul qword [0x5adb68]
fild qword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
fild qword [esp + 0x10]
fsubp st(1)
fmul qword [0x5adb68]
faddp st(1)
fmul qword [0x59e7d8]
call fcn.00587bdc
mov ecx, dword [0x8b8f24]
push ebp
mov ebx, eax
push 1
mov dword [esp + 0x18], ebx
call fcn.0053ac70
lea ecx, [ebx + ebx*2 + 0x64]
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xc8
mov eax, 0x55555556
imul edx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
lea ecx, [ebx*4 + 0x19]
mov eax, 0x51eb851f
imul ecx
mov eax, edx
sar eax, 4
mov edx, eax
shr edx, 0x1f
add eax, edx
imul eax, eax, 0x32
cdq
and edx, 3
add eax, edx
mov ecx, eax
sar ecx, 2
sub ebp, ebx
sub ecx, ebx
mov eax, ecx
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp ebx, eax
mov eax, dword [esp + 0x10]
jge 0x55f2f5
add eax, ecx
jmp 0x55f2f7
add eax, ebp
mov dword [esp + 0x10], eax
push edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.005567f5
mov ebx, eax
mov ebp, ebx
add esp, 0xc
and ebp, 0x3000
je 0x55f32e
cmp ebp, 0x1000
je 0x55f361
cmp ebp, 0x2000
jne case.0x55f73f.1
push str.GenuineIntel
push edi
call fcn.00588410
add esp, 8
test eax, eax
jne 0x55f5e6
cmp ebp, 0x2000
mov edx, edi
jne 0x55f384
mov eax, str.Dual
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f355
jmp 0x55f39a
and ebx, 0xf00
mov eax, ebx
cmp eax, 0x500
je 0x55f965
cmp eax, 0x600
jne case.0x55f73f.1
jmp 0x55f965
mov eax, 0x5ea438
sub edx, eax
nop
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f390
mov eax, ebx
and eax, 0xf00
cmp eax, 0x500
je 0x55f529
cmp eax, 0x600
je 0x55f3fa
cmp eax, 0xf00
jne case.0x55f73f.1
mov edx, dword [str.Intel_Pentium_4]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc5ac]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc5b0]
mov dword [edi + 8], ecx
mov edx, dword [0x5dc5b4]
mov dword [edi + 0xc], edx
or dword [esi + 0x9c], 3
mov dword [esi], 3
jmp case.0x55f73f.1
and ebx, 0xf0
lea eax, [ebx - 0x10]
cmp eax, 0x70
ja case.0x55f73f.1
movzx eax, byte [eax + 0x55fa30]
jmp dword [eax*4 + 0x55fa1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, dword [str.Intel_Pentium_Pro]
dec edi
mov dword [edi], ecx
mov edx, dword [0x5dc598]
mov dword [edi + 4], edx
mov eax, dword [0x5dc59c]
mov dword [edi + 8], eax
mov ecx, dword [0x5dc5a0]
mov dword [edi + 0xc], ecx
mov dx, word [0x5dc5a4]
mov word [edi + 0x10], dx
jmp 0x55f965
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [str.Intel_Pentium_II]
dec edi
mov dword [edi], eax
mov ecx, dword [0x5dc584]
mov dword [edi + 4], ecx
mov edx, dword [0x5dc588]
mov dword [edi + 8], edx
mov eax, dword [0x5dc58c]
mov dword [edi + 0xc], eax
mov cl, byte [0x5dc590]
mov byte [edi + 0x10], cl
jmp 0x55f4b4
mov edx, dword [str.Intel_Celeron]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc574]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc578]
mov dword [edi + 8], ecx
mov dx, word [0x5dc57c]
mov word [edi + 0xc], dx
or dword [esi + 0x9c], 1
mov dword [esi], 1
jmp case.0x55f73f.1
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [str.Intel_Pentium_III]
dec edi
mov dword [edi], eax
mov ecx, dword [0x5dc560]
mov dword [edi + 4], ecx
mov edx, dword [0x5dc564]
mov dword [edi + 8], edx
mov eax, dword [0x5dc568]
mov dword [edi + 0xc], eax
mov cx, word [0x5dc56c]
mov eax, dword [esp + 0x10]
mov word [edi + 0x10], cx
mov ecx, dword [esi + 0x9c]
or ecx, 3
cmp eax, 0x190
mov dword [esi + 0x9c], ecx
mov dword [esi], 2
jg case.0x55f73f.1
mov dword [esi], 1
jmp case.0x55f73f.1
and ebx, 0xf0
mov eax, ebx
cmp eax, 0x10
je 0x55f5b5
cmp eax, 0x20
je 0x55f584
cmp eax, 0x40
jne case.0x55f73f.1
mov edx, dword [str.Intel_Pentium_MMX]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc54c]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc550]
mov dword [edi + 8], ecx
mov edx, dword [0x5dc554]
mov dword [edi + 0xc], edx
mov ax, word [0x5dc558]
mov word [edi + 0x10], ax
or dword [esi + 0x9c], 1
jmp 0x55f965
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, dword [str.Intel_Pentium]
dec edi
mov dword [edi], ecx
mov edx, dword [0x5dc53c]
mov dword [edi + 4], edx
mov eax, dword [0x5dc540]
mov dword [edi + 8], eax
mov cx, word [0x5dc544]
mov word [edi + 0xc], cx
jmp 0x55f965
mov edx, dword [str.Intel_Pentium]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc53c]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc540]
mov dword [edi + 8], ecx
mov dx, word [0x5dc544]
mov word [edi + 0xc], dx
jmp 0x55f965
push str.AuthenticAMD
push edi
call fcn.00588410
add esp, 8
test eax, eax
jne 0x55f82a
cmp ebp, 0x2000
mov edx, edi
jne 0x55f61c
mov eax, str.Dual
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f610
jmp 0x55f62d
mov eax, 0x5ea438
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f623
mov eax, ebx
and eax, 0xf00
cmp eax, 0x500
je 0x55f726
cmp eax, 0x600
jne case.0x55f73f.1
and ebx, 0xf0
lea eax, [ebx - 0x10]
cmp eax, 0x60
ja case.0x55f73f.1
movzx eax, byte [eax + 0x55fab4]
jmp dword [eax*4 + 0x55faa4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, dword [str.AMD_Athlon]
dec edi
mov dword [edi], ecx
mov edx, dword [0x5dc520]
mov dword [edi + 4], edx
mov ax, word [0x5dc524]
mov word [edi + 8], ax
mov cl, byte [0x5dc526]
mov byte [edi + 0xa], cl
jmp 0x55f6bb
mov edx, dword [str.AMD_Duron]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc514]
mov dword [edi + 4], eax
mov cx, word [0x5dc518]
mov word [edi + 8], cx
or dword [esi + 0x9c], 5
mov dword [esi], 2
jmp case.0x55f73f.1
mov edx, dword [str.AMD_Athlon_4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc504]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc508]
mov eax, dword [esp + 0x10]
mov dword [edi + 8], ecx
mov dl, byte [0x5dc50c]
mov byte [edi + 0xc], dl
mov ecx, dword [esi + 0x9c]
or ecx, 5
cmp eax, 0x4b0
mov dword [esi + 0x9c], ecx
mov dword [esi], 3
jg case.0x55f73f.1
mov dword [esi], 2
jmp case.0x55f73f.1
mov eax, ebx
and eax, 0xf0
cmp eax, 0x90
ja case.0x55f73f.1
movzx eax, byte [eax + 0x55fb2c]
jmp dword [eax*4 + 0x55fb18]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, dword [str.AMD_K5]
dec edi
mov dword [edi], ecx
mov dx, word [0x5dc4fc]
mov word [edi + 4], dx
mov al, byte [0x5dc4fe]
mov byte [edi + 6], al
jmp 0x55f965
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, dword [str.AMD_K6_MMX]
dec edi
mov dword [edi], ecx
mov edx, dword [0x5dc4f0]
mov dword [edi + 4], edx
mov ax, word [0x5dc4f4]
mov word [edi + 8], ax
mov cl, byte [0x5dc4f6]
mov byte [edi + 0xa], cl
or dword [esi + 0x9c], 1
jmp 0x55f965
mov edx, dword [str.AMD_K6_2_MMX]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc4e0]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc4e4]
mov dword [edi + 8], ecx
mov dl, byte [0x5dc4e8]
mov byte [edi + 0xc], dl
or dword [esi + 0x9c], 1
jmp 0x55f965
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [str.AMD_K6_III_MMX]
dec edi
mov dword [edi], eax
mov ecx, dword [0x5dc4d0]
mov dword [edi + 4], ecx
mov edx, dword [0x5dc4d4]
mov dword [edi + 8], edx
mov ax, word [0x5dc4d8]
mov word [edi + 0xc], ax
mov cl, byte [0x5dc4da]
mov byte [edi + 0xe], cl
mov eax, dword [esi + 0x9c]
or eax, 1
mov dword [esi], 1
mov dword [esi + 0x9c], eax
jmp case.0x55f73f.1
push str.CyrixInstead
push edi
call fcn.00588410
add esp, 8
test eax, eax
jne case.0x55f73f.1
cmp ebp, 0x2000
mov edx, edi
jne 0x55f85d
mov eax, str.Dual
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f851
jmp 0x55f86e
mov eax, 0x5ea438
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x55f864
mov eax, ebx
and eax, 0xf00
cmp eax, 0x400
je 0x55f92f
cmp eax, 0x500
je 0x55f8c1
cmp eax, 0x600
jne case.0x55f73f.1
mov edx, dword [str.Cyrix_6x86MX]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov dword [edi], edx
mov eax, dword [0x5dc4b0]
mov dword [edi + 4], eax
mov ecx, dword [0x5dc4b4]
mov dword [edi + 8], ecx
mov dl, byte [0x5dc4b8]
mov byte [edi + 0xc], dl
jmp 0x55f965
xor eax, eax
or ecx, 0xffffffff
and ebx, 0xf0
repne scasb al, byte es:[edi]
dec edi
cmp bl, 0x20
je 0x55f909
mov eax, dword [str.Cyrix_MediaGX_MMX]
mov dword [edi], eax
mov ecx, dword [0x5dc49c]
mov dword [edi + 4], ecx
mov edx, dword [0x5dc4a0]
mov dword [edi + 8], edx
mov eax, dword [0x5dc4a4]
mov dword [edi + 0xc], eax
mov cx, word [0x5dc4a8]
mov word [edi + 0x10], cx
or dword [esi + 0x9c], 1
jmp 0x55f965
mov edx, dword [str.Cyrix_6x86]
mov dword [edi], edx
mov eax, dword [0x5dc490]
mov dword [edi + 4], eax
mov cx, word [0x5dc494]
mov word [edi + 8], cx
mov dl, byte [0x5dc496]
mov byte [edi + 0xa], dl
jmp 0x55f965
and ebx, 0xf0
cmp bl, 0x40
jne case.0x55f73f.1
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [str.Cyrix_MediaGX]
dec edi
mov dword [edi], eax
mov ecx, dword [0x5dc480]
mov dword [edi + 4], ecx
mov edx, dword [0x5dc484]
mov dword [edi + 8], edx
mov ax, word [0x5dc488]
mov word [edi + 0xc], ax
mov dword [esi], 0
lea ecx, [esp + 0x48]
mov dword [esi + 0x24], 1
call fcn.00557470
xor ebp, ebp
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
cmp ebx, 0x5dc
jl 0x55f9a2
mov dword [esi], 4
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0xbc]
cmp edi, ebp
mov edx, dword [esp + 0x38]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x90], eax
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x28], ebx
mov dword [esi + 0x84], edx
mov dword [esi + 0x88], eax
pop ebx
je 0x55fa0e
mov ecx, edi
call fcn.0055bfc0
test eax, eax
jle 0x55fa0e
push ebp
mov ecx, edi
call fcn.0055bfd0
lea ecx, [esi + 0x98]
push ecx
lea edx, [esi + 0x94]
push edx
add esi, 0x54
push esi
mov ecx, eax
call fcn.0055be20
pop edi
pop esi
pop ebp
add esp, 0xa8
ret 4