Function at 0x50a1c0
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x304
mov eax, dword [0x5be9a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor esi, esi
push esi
mov dword [ebp - 0x284], eax
call fcn.004b9392
mov ecx, dword [ebx + 0x14]
add esp, 4
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], edx
call fcn.004e12d0
fldz
push 0x5c4930
fstp qword [ebp - 0x2d0]
push ebx
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], edx
mov dword [ebp - 0x294], esi
mov dword [ebp - 0x280], esi
xor edi, edi
call fcn.00410350
push str.commencing_relation_filtering_n
push ebx
call fcn.00410350
mov eax, dword [ebx + 0x4c]
add esp, 0x10
test eax, eax
je 0x50a3fe
push str.filter_mem_mb
push eax
call fcn.004b7390
add esp, 8
test eax, eax
je 0x50a2c3
push 0xa
add eax, 0xe
push edi
push eax
call fcn.004e02a0
mov esi, eax
shld edx, esi, 0x14
mov eax, edx
mov dword [ebp - 0x294], edx
and edx, 0x7fffffff
mov dword [ebp - 0x274], edx
shl esi, 0x14
mov dword [ebp - 0x278], esi
and eax, 0x80000000
add esp, 4
fild qword [ebp - 0x278]
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x278], edi
fild qword [ebp - 0x278]
fchs
faddp st(1)
fmul qword [0x5b4730]
fstp qword [esp]
push str.setting_memory_use_to__.1f_MB_n
push ebx
call fcn.00410350
add esp, 0x10
mov ecx, dword [ebx + 0x4c]
push str.filter_maxrels
push ecx
call fcn.004b7390
add esp, 8
test eax, eax
je 0x50a2fd
push 0xa
add eax, 0xf
push 0
push eax
call fcn.004b8d37
add esp, 0xc
push eax
push 0x5c4994
push ebx
mov dword [ebp - 0x280], eax
call fcn.00410350
add esp, 0xc
mov edx, dword [ebx + 0x4c]
push str.filter_lpbound
push edx
call fcn.004b7390
add esp, 8
test eax, eax
je 0x50a333
push 0xa
add eax, 0xf
push 0
push eax
call fcn.004b8d37
add esp, 0xc
mov edi, eax
push edi
push 0x5c49c4
push ebx
call fcn.00410350
add esp, 0xc
mov eax, dword [ebx + 0x4c]
push str.target_density
push eax
call fcn.004b7390
add esp, 8
test eax, eax
je 0x50a36a
add eax, 0xf
push 0
push eax
call fcn.004b8e86
fst qword [ebp - 0x2d0]
fstp qword [esp]
push str.setting_target_matrix_density_to__.1f_n
push ebx
call fcn.00410350
add esp, 0x10
mov ecx, dword [ebx + 0x4c]
push 0x2c
push ecx
call fcn.004b8770
add esp, 8
mov dword [ebp - 0x27c], eax
test eax, eax
je 0x50a3f4
lea edi, [eax - 1]
cmp edi, dword [ebx + 0x4c]
jbe 0x50a3ad
lea ebx, [ebx]
movsx edx, byte [edi - 1]
push edx
call fcn.004b94b3
add esp, 4
test eax, eax
je 0x50a3a7
dec edi
cmp edi, dword [ebx + 0x4c]
ja 0x50a390
mov eax, dword [ebp - 0x27c]
push 0xa
inc eax
push 0
push eax
call fcn.004b8d37
add esp, 0xc
push 0xa
push 0
push edi
mov dword [ebp - 0x280], eax
call fcn.004b8d37
add esp, 0xc
mov edi, eax
mov eax, dword [ebp - 0x280]
push eax
push str.setting_max_relations_to__u_n
push ebx
call fcn.00410350
add esp, 0xc
push edi
push str.setting_large_prime_bound_to__u_n
push ebx
call fcn.00410350
add esp, 0xc
mov ecx, esi
or ecx, dword [ebp - 0x294]
jne 0x50a425
lea edx, [ebp - 0x128]
push edx
mov dword [ebp - 0x128], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov esi, dword [ebp - 0x120]
mov dword [ebp - 0x294], 0
xor eax, eax
push 0x148
push eax
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
lea eax, [ebp - 0x270]
push eax
call fcn.004bd240
add esp, 0xc
lea eax, [ebp - 0x270]
call fcn.00509c60
lea eax, [ebp - 0x1cc]
call fcn.00509c60
mov ecx, dword [ebp - 0x284]
push 0
push ecx
push ebx
lea edx, [ebp - 0x1cc]
lea ecx, [ebp - 0x270]
call fcn.00504a20
add esp, 0xc
test eax, eax
je 0x50a500
push str.filtering_failed_to_read_polynomials_n
call fcn.004b7f6d
add esp, 4
push 0xffffffffffffffff
call fcn.004b856d
mov eax, dword [ebp - 0x294]
mov ecx, eax
and eax, 0x7fffffff
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x278], esi
fild qword [ebp - 0x278]
and ecx, 0x80000000
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x278], 0
fild qword [ebp - 0x278]
sub esp, 8
fchs
faddp st(1)
fmul qword [0x5b4730]
fstp qword [esp]
push str.estimated_available_RAM_is__.1lf_MB_n
push ebx
call fcn.00410350
mov edx, dword [ebp - 0x280]
push edx
lea eax, [ebp - 0x270]
push eax
lea ecx, [ebp - 0x27c]
mov edx, ebx
call fcn.005000e0
add esp, 0x18
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
test edi, edi
je 0x50a592
mov dword [ebp - 0x28c], edi
mov dword [ebp - 0x288], edi
mov eax, edi
mov ecx, dword [ebp - 0x294]
mov edx, esi
shrd edx, ecx, 1
shr ecx, 1
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x274], ecx
cmp dword [ebp - 0x29c], ecx
ja 0x50a5c5
jb 0x50a5be
cmp dword [ebp - 0x2a0], edx
jae 0x50a5c5
mov ecx, 1
jmp 0x50a5c7
xor ecx, ecx
lea edx, [ebp - 0x2c8]
push edx
push ecx
lea ecx, [ebp - 0x27c]
push ecx
mov ecx, dword [ebp - 0x288]
lea edx, [ebp - 0x284]
push edx
push eax
mov eax, dword [ebp - 0x27c]
push ebx
lea edi, [ebp - 0x270]
call fcn.0050a110
mov eax, dword [ebp - 0x280]
push 0
push eax
push ebx
lea edx, [ebp - 0x2c8]
mov ecx, edi
call fcn.00500a60
mov edi, dword [ebp - 0x274]
add esp, 0x24
cmp dword [ebp - 0x2a4], edi
jb 0x50a647
ja 0x50a62e
mov edx, dword [ebp - 0x2a8]
cmp edx, dword [ebp - 0x278]
jbe 0x50a647
mov eax, dword [ebp - 0x294]
push eax
lea ecx, [ebp - 0x2c8]
push esi
push ecx
mov ecx, ebx
call fcn.004df430
add esp, 0xc
push 0
push ebx
lea ecx, [ebp - 0x2c8]
call fcn.004dfcf0
add esp, 8
cmp dword [ebp - 0x29c], edi
ja 0x50a697
jb 0x50a670
mov edx, dword [ebp - 0x278]
cmp dword [ebp - 0x2a0], edx
jae 0x50a697
sub esp, 8
fld qword [ebp - 0x2d0]
lea eax, [ebp - 0x300]
fstp qword [esp]
push eax
push ebx
lea eax, [ebp - 0x2c8]
call fcn.00509d90
add esp, 0x10
jmp 0x50a76b
push ebx
lea edi, [ebp - 0x2c8]
call fcn.00509ce0
add esp, 4
mov ecx, edi
push ecx
mov ecx, dword [ebp - 0x28c]
push 1
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x2c4]
push ecx
mov ecx, dword [ebp - 0x288]
push ebx
lea edi, [ebp - 0x270]
call fcn.0050a110
mov edx, dword [ebp - 0x2c8]
push edx
call fcn.004b7229
mov eax, dword [ebp - 0x280]
add esp, 0x1c
push 1
push eax
push ebx
lea edx, [ebp - 0x2c8]
mov ecx, edi
mov dword [ebp - 0x2c8], 0
call fcn.00500a60
mov ecx, dword [ebp - 0x2a4]
add esp, 0xc
cmp ecx, dword [ebp - 0x274]
ja 0x50a73c
jb 0x50a729
mov edx, dword [ebp - 0x2a8]
cmp edx, dword [ebp - 0x278]
jae 0x50a73c
push 0
push ebx
lea ecx, [ebp - 0x2c8]
call fcn.004dfcf0
jmp 0x50a673
fld qword [ebp - 0x2d0]
mov ecx, dword [ebp - 0x284]
sub esp, 8
fstp qword [esp]
push ecx
lea edx, [ebp - 0x300]
push edx
mov edx, dword [ebp - 0x27c]
push ebx
lea esi, [ebp - 0x2c8]
call fcn.00509e90
add esp, 0x14
mov esi, eax
test esi, esi
jne 0x50a7ed
mov eax, dword [ebx + 0x14]
push eax
lea ecx, [ebp - 0x108]
push str._s.lp
push ecx
call fcn.004b70c5
lea edx, [ebp - 0x108]
add esp, 0xc
push edx
call fcn.004b7dfa
add esp, 4
push ebx
lea ecx, [ebp - 0x300]
call fcn.004e0da0
add esp, 4
lea eax, [ebp - 0x300]
push eax
push ebx
call fcn.004e0160
lea ecx, [ebp - 0x300]
push ecx
call fcn.004e0120
add esp, 0xc
push esi
call fcn.004b9392
add esp, 4
sub eax, dword [ebp - 0x2d8]
sbb edx, dword [ebp - 0x2d4]
push eax
push str.RelProcTime:__u_n
push ebx
mov dword [ebp - 0x2d4], edx
call fcn.00410350
add esp, 0xc
lea eax, [ebp - 0x270]
call fcn.00509c10
lea eax, [ebp - 0x1cc]
call fcn.00509c10
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bc40c
mov esp, ebp
pop ebp
ret