Function at 0x100015a0
Capabilities:
Get memory capacity

Disassembly:
push 0xffffffffffffffff
push 0x10056de0
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10072650]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
mov ebp, ecx
call fcn.10009dc8
push ebp
lea esi, [ebp + 0x74]
push 0x3f0
mov ecx, esi
call fcn.1000f331
push esi
call fcn.100018a0
call fcn.10007f7e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x100015fe
push 0x80004005
call fcn.10001190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x54], 0
call fcn.10007f7e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x10001630
push 0x80004005
call fcn.10001190
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x18], ebx
push 0x3f4
mov byte [esp + 0x58], 1
call fcn.10007ecf
test eax, eax
je 0x10001666
push 0x3f4
push eax
lea ecx, [esp + 0x20]
call fcn.10001ce0
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x50
or eax, ecx
jge 0x1000169a
push 0x50
lea ecx, [esp + 0x18]
call fcn.10001e40
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
shr edx, 0xa
push edx
push ebx
push esi
call edi
add esp, 0xc
test esi, esi
jne 0x100016b7
xor eax, eax
jmp 0x100016d1
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100016c0
sub eax, edx
js 0x1000178b
cmp eax, dword [esi - 8]
jg 0x1000178b
push esi
mov dword [esi - 0xc], eax
push 0x65
mov ecx, ebp
mov byte [eax + esi], 0
call fcn.100115db
lea eax, [esp + 0x1c]
push eax
call fcn.1003a11b
push eax
call fcn.1003a742
add esp, 8
test eax, eax
jne 0x10001795
push 0x3f1
call fcn.10007ecf
test eax, eax
je 0x10001727
push 0x3f1
push eax
lea ecx, [esp + 0x20]
call fcn.10001ce0
mov ebx, dword [esp + 0x18]
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x50
or eax, ecx
jge 0x10001748
push 0x50
lea ecx, [esp + 0x18]
call fcn.10001e40
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x20]
shr ecx, 0xa
push ecx
push ebx
push esi
call edi
add esp, 0xc
test esi, esi
jne 0x10001769
xor eax, eax
jmp 0x1000177d
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10001770
sub eax, edx
js 0x1000178b
cmp eax, dword [esi - 8]
jg 0x1000178b
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
jmp 0x100017b6
push 0x80070057
call fcn.10001190
push 0x3f0
call fcn.10007ecf
test eax, eax
je 0x100017b6
push 0x3f0
push eax
lea ecx, [esp + 0x1c]
call fcn.10001ce0
mov esi, dword [esp + 0x14]
push esi
push 0x6b
mov ecx, ebp
call fcn.100115db
lea eax, [ebx - 0x10]
mov byte [esp + 0x54], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x100017e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov dword [esp + 0x54], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10001805
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret