Function at 0x407da0
Capabilities:
Get memory capacity

Disassembly:
push 0xffffffffffffffff
push 0x49915e
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x4ca09c]
xor eax, esp
mov dword [esp + 0x16c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ca09c]
xor eax, esp
push eax
lea eax, [esp + 0x184]
mov dword fs:[0], eax
mov esi, ecx
or ebp, 0xffffffff
call fcn.00431480
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0xb0], eax
mov dword [eax + 0x14], ecx
mov eax, dword [esi + 0xb0]
push 0x210
mov dword [eax + 4], 0x407c40
call fcn.00472897
add esp, 4
mov dword [esp + 0x14], eax
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x18c], ebx
je 0x407e28
mov ecx, eax
call fcn.00430e90
jmp 0x407e2a
xor eax, eax
push ebx
mov dword [esp + 0x190], ebp
mov dword [esi + 0x11c], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x104
lea ecx, [esp + 0x80]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, dword [esi + 0x11c]
push edx
lea eax, [esp + 0x80]
push eax
call fcn.00431480
mov ecx, eax
call fcn.00431ec0
mov edi, dword [esi + 0x11c]
mov ecx, dword [edi]
push ecx
call fcn.0041e7b0
add esp, 4
test eax, eax
je 0x407ecf
cmp dword [edi + 0xc], ebx
jne 0x407eaa
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push edx
push eax
push ecx
push str._d._d_d
lea edx, [esi + 0x104]
push 0x10
push edx
call fcn.004310e0
add esp, 0x18
jmp 0x407ecf
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push eax
mov eax, dword [edi]
push ecx
push edx
push eax
push str._d._d_d._d
lea ecx, [esi + 0x104]
push 0x10
push ecx
call fcn.004310e0
add esp, 0x1c
push 0xfa0
call fcn.00431480
mov ecx, eax
call fcn.004310a0
test eax, eax
je 0x40829e
call fcn.00407bc0
mov ecx, dword [esi + 0xb0]
call fcn.00431c80
test eax, eax
je 0x407f4e
mov edx, dword [esi + 0xb0]
mov eax, dword [edx + 0x4c]
mov dword [esi + 0xb4], eax
mov eax, dword [eax + 0x2c]
add eax, 0xffffffff
cmp eax, 1
ja 0x407f4e
mov dword [esi + 0xfc], 1
mov eax, dword [0x4cc0d8]
mov dword [eax + 0x210], ebx
mov ecx, dword [0x4cc0d8]
mov dword [ecx + 0x214], ebx
mov edx, dword [0x4cc0d8]
mov dword [edx + 0x21c], ebx
mov eax, dword [0x4cc0d8]
mov dword [eax + 0x220], ebx
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esi + 0xb8]
call fcn.0041d990
call fcn.00407bc0
mov edx, dword [0x4cc0d8]
cmp dword [edx + 0x210], ebx
je 0x407fa9
mov ecx, dword [esi + 0xb0]
call fcn.00431860
test eax, eax
je 0x407fa9
mov eax, dword [esi + 0xb0]
mov eax, dword [eax + 0x34]
mov dword [esi + 0xc0], eax
mov ecx, dword [0x4cc0d8]
mov edx, dword [ecx + 0x228]
mov dword [eax + 8], edx
mov ecx, dword [esi + 0xc0]
call fcn.00439780
call fcn.00407bc0
mov eax, dword [0x4cc0d8]
cmp dword [eax + 0x214], ebx
je 0x407fd9
mov ecx, dword [esi + 0xb0]
call fcn.00431910
test eax, eax
je 0x407fd9
mov ecx, dword [esi + 0xb0]
mov edx, dword [ecx + 0x38]
mov dword [esi + 0xd4], edx
call fcn.00407bc0
mov ecx, dword [esi + 0xb0]
call fcn.00431b20
test eax, eax
je 0x40804a
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax + 0x3c]
mov dword [esi + 0xbc], ecx
call fcn.00431480
cmp dword [eax + 0x38], ebx
je 0x408013
call fcn.00431480
mov edx, dword [eax + 0x38]
mov edi, dword [edx + 0x10]
jmp 0x408015
xor edi, edi
cmp edi, ebx
je 0x40804a
call fcn.00431480
mov ecx, eax
call fcn.00431820
mov edx, dword [edi]
push ebx
push eax
mov eax, dword [edx + 4]
mov ecx, edi
call eax
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x408048
fsub qword [edi + 0x10]
fabs
fstp qword [0x4cbf98]
jmp 0x40804a
fstp st(0)
call fcn.00407bc0
mov ecx, dword [0x4cc0d8]
cmp dword [ecx + 0x218], ebx
je 0x4080a8
mov ecx, dword [esi + 0xb0]
call fcn.00431a70
test eax, eax
je 0x4080a8
mov edx, dword [esi + 0xb0]
mov ecx, dword [edx + 0x48]
cmp ecx, ebx
mov dword [esi + 0xd0], ecx
je 0x4080a8
push 2
call fcn.00470570
cmp eax, ebx
je 0x4080a8
push eax
call fcn.00403db0
mov eax, dword [eax + 0xc]
add esp, 4
cmp byte [eax], bl
je 0x4080a8
mov ecx, dword [esi + 0xb0]
push eax
call fcn.00430e40
mov ebp, eax
call fcn.00407bc0
mov ecx, dword [esi + 0xb0]
call fcn.004319c0
test eax, eax
je 0x4080cb
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax + 0x44]
mov dword [esi + 0xc4], ecx
call fcn.00407bc0
mov edx, dword [0x4cc0d8]
cmp dword [edx + 0x21c], ebx
je 0x40812a
mov ecx, dword [esi + 0xb0]
call fcn.00431bd0
test eax, eax
je 0x40812a
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax + 0x40]
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0xbc]
cmp ecx, ebx
je 0x408123
push ebx
call fcn.00436420
cmp eax, ebx
je 0x408123
mov ecx, eax
call fcn.00433b30
sub eax, 0x1000805
je 0x40812a
sub eax, 5
je 0x40812a
mov ecx, esi
call fcn.00407c10
mov ecx, dword [esi + 0xb0]
call fcn.00431d30
call fcn.00407bc0
mov edx, dword [0x4cc0d8]
cmp dword [edx + 0x220], ebx
je 0x408177
mov ecx, dword [esi + 0xb0]
push ebp
call fcn.00431de0
test eax, eax
je 0x408177
mov ecx, dword [esi + 0xb0]
push 0x80
call fcn.00431e80
push eax
call fcn.00403db0
add esp, 4
mov dword [esi + 0xd8], eax
mov ecx, dword [esi + 0xb8]
call fcn.0041da30
call fcn.00407bc0
xor ebp, ebp
call fcn.00407bc0
push str.GlobalMemoryStatusEx
push 0x4a0810
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x40
mov edi, eax
lea eax, [esp + 0x20]
push ebx
push eax
call fcn.00481f20
add esp, 0xc
cmp edi, ebx
mov dword [esp + 0x1c], 0x40
je 0x4081fc
lea ecx, [esp + 0x1c]
push ecx
call edi
test eax, eax
je 0x4081fc
mov edx, dword [esp + 0x28]
fild dword [esp + 0x28]
test edx, edx
jge 0x4081e0
fadd qword [0x4a0808]
mov eax, dword [esp + 0x24]
fmul qword [0x4a0808]
test eax, eax
fild dword [esp + 0x24]
jge 0x4081f8
fadd qword [0x4a0808]
faddp st(1)
jmp 0x408219
lea ecx, [esp + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
fild dword [esp + 0x64]
mov edx, dword [esp + 0x64]
test edx, edx
jge 0x408219
fadd qword [0x4a0808]
fmul qword [0x4a0800]
fadd qword [str.ffffff]
call fcn.00481c90
test al, 1
je 0x408231
add eax, 1
mov ecx, dword [esi + 0xcc]
mov edx, dword [ecx + 4]
cmp edx, ebx
jle 0x408263
mov ecx, dword [ecx + 8]
mov edx, dword [esi + 0xcc]
mov edi, dword [edx + 4]
add ecx, 0x180
mov edx, dword [ecx]
cmp edx, ebx
jle 0x408258
add ebp, edx
add ecx, 0x224
sub edi, 1
jne 0x408250
cmp ebp, eax
jle 0x40826f
mov dword [esi + 0xdc], ebp
jmp 0x408275
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0xc4]
cmp eax, ebx
je 0x40828b
mov eax, dword [eax + 0x14]
mov ecx, dword [esi + 0xdc]
mov dword [eax + 8], ecx
call fcn.00431480
mov ecx, eax
call fcn.00430e00
mov eax, 1
jmp 0x4082a0
xor eax, eax
mov ecx, dword [esp + 0x184]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x16c]
xor ecx, esp
call fcn.004811b7
add esp, 0x17c
ret