Function at 0x47a2d0
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x83c
mov eax, dword [0xec8960]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, edx
push ebx
push esi
push edi
cmp dword [eax + 0x4006c], 0
mov esi, ecx
mov dword [ebp - 0x42c], eax
jne 0x47a70e
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47a300
sub ecx, edx
inc ecx
call fcn.00477d00
mov edi, eax
mov edx, edi
mov dword [ebp - 0x448], edi
sub edx, esi
nop dword [eax + eax]
mov cl, byte [esi]
lea esi, [esi + 1]
mov byte [edx + esi - 1], cl
test cl, cl
jne 0x47a320
mov ebx, edi
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x47a332
lea eax, [ebp - 0x398]
mov word [ebp - 0x41c], 0x2b
sub ebx, ecx
mov dl, 0x2b
push 0x64
push eax
mov ecx, edi
call fcn.0045c850
xorps xmm0, xmm0
mov dword [ebp - 0x444], eax
add esp, 8
movlpd qword [ebp - 0x428], xmm0
mov esi, dword [ebp - 0x424]
xor edi, edi
movlpd qword [ebp - 0x408], xmm0
test eax, eax
jle 0x47a4c6
mov eax, dword [ebp - 0x408]
mov ecx, dword [ebp - 0x404]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x410], ecx
mov dword [ebp - 0x404], esi
mov dword [ebp - 0x418], eax
nop dword [eax]
mov ecx, dword [ebp + edi*4 - 0x398]
call fcn.0045eaa0
mov esi, eax
test esi, esi
je 0x47a700
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
add dword [ebp - 0x40c], eax
mov ecx, esi
push 0
adc dword [ebp - 0x410], 0
push 0
mov dword [ebp - 0x43c], eax
mov dword [ebp + edi*8 - 0x838], eax
mov eax, dword [esi]
push 0
push str.SparseDecompression_
mov dword [ebp + edi*8 - 0x834], 0
call dword [eax + 0x28]
test eax, eax
setle cl
mov byte [ebp + edi - 0x4b0], cl
test eax, eax
jg 0x47a427
mov eax, dword [ebp - 0x43c]
add dword [ebp - 0x418], eax
adc dword [ebp - 0x404], 0
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
push str.MemoryBarrierDecompression_
call dword [eax + 0x28]
test eax, eax
setg cl
mov byte [ebp + edi - 0x518], cl
test eax, eax
jle 0x47a4a2
xorps xmm0, xmm0
mov dword [ebp + edi*8 - 0x838], 0
movlpd qword [ebp - 0x408], xmm0
mov eax, dword [ebp - 0x404]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x408]
movlpd qword [ebp - 0x428], xmm0
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x428]
mov dword [ebp + edi*8 - 0x834], 0
mov dword [ebp - 0x418], eax
push esi
call fcn.0048e011
inc edi
add esp, 4
cmp edi, dword [ebp - 0x444]
jl 0x47a3b0
mov esi, dword [ebp - 0x404]
mov edi, dword [ebp - 0x418]
jmp 0x47a4e4
mov eax, dword [ebp - 0x404]
mov edi, dword [ebp - 0x428]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x408]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x42c]
mov ecx, dword [eax + 0x40070]
mov dword [ebp - 0x418], ecx
test ecx, ecx
jne 0x47a664
push str.GlobalMemoryStatusEx
push str.kernel32.dll
mov dword [ebp - 0x3f8], 0x40
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
test eax, eax
je 0x47a544
lea ecx, [ebp - 0x3f8]
push ecx
call eax
test eax, eax
je 0x47a544
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x3fc], eax
mov eax, dword [ebp - 0x3ec]
jmp 0x47a569
lea eax, [ebp - 0x3b8]
mov dword [ebp - 0x3b8], 0x20
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
mov eax, dword [ebp - 0x3b0]
mov dword [ebp - 0x3fc], eax
xor eax, eax
mov dword [ebp - 0x438], eax
call fcn.00477c40
mov edx, dword [ebp - 0x438]
sub eax, 0x1e00000
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x3fc]
shrd eax, edx, 2
shr edx, 2
mov dword [ebp - 0x3fc], eax
mov ecx, edx
shld ecx, eax, 1
add eax, eax
add dword [ebp - 0x3fc], eax
adc edx, ecx
test edx, edx
ja 0x47a64e
jb 0x47a5c4
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x3fc], eax
jae 0x47a64e
push str.GlobalMemoryStatusEx
push str.kernel32.dll
mov dword [ebp - 0x3f8], 0x40
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
test eax, eax
je 0x47a604
lea ecx, [ebp - 0x3f8]
push ecx
call eax
test eax, eax
je 0x47a604
mov edx, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x3ec]
jmp 0x47a623
lea eax, [ebp - 0x3b8]
mov dword [ebp - 0x3b8], 0x20
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
mov edx, dword [ebp - 0x3b0]
xor ecx, ecx
shrd edx, ecx, 2
shr ecx, 2
mov eax, edx
mov dword [ebp - 0x3fc], ecx
shld ecx, eax, 1
add eax, eax
add edx, eax
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x418], edx
adc dword [ebp - 0x3fc], ecx
jmp 0x47a66e
call fcn.00477c40
sub eax, 0x1e00000
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 0x3fc], 0
mov edx, dword [eax + 0x40070]
mov dword [ebp - 0x440], edx
test edx, edx
jne 0x47a6d8
lea eax, [ebp - 0x3b8]
mov dword [ebp - 0x3b8], 0x20
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
lea ecx, [ebp - 0x428]
call fcn.00477b40
mov ecx, dword [ebp - 0x3a4]
cmp dword [ebp - 0x424], ecx
push 0x8000
cmovb ecx, dword [ebp - 0x424]
push 0
push dword [ebp - 0x428]
sub ecx, 0x500000
mov dword [ebp - 0x440], ecx
call dword [sym.imp.KERNEL32.DLL_VirtualFree]
mov edx, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x410]
cmp ecx, dword [ebp - 0x3fc]
ja 0x47a721
jb 0x47a6f6
mov eax, dword [ebp - 0x40c]
cmp eax, dword [ebp - 0x418]
ja 0x47a721
test esi, esi
ja 0x47a721
jb 0x47a700
cmp edi, edx
ja 0x47a721
push dword [ebp - 0x448]
call fcn.0048e011
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004888df
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x41c]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47a730
mov edi, dword [ebp - 0x444]
sub ecx, edx
add ecx, 8
inc ebx
lea eax, [edi - 1]
imul ecx, eax
add ecx, ebx
call fcn.00477d00
mov esi, eax
xorps xmm0, xmm0
xor ebx, ebx
mov dword [ebp - 0x42c], esi
movlpd qword [ebp - 0x428], xmm0
movlpd qword [ebp - 0x408], xmm0
mov byte [esi], 0
test edi, edi
jle 0x47aada
mov eax, dword [ebp - 0x404]
mov esi, dword [ebp - 0x424]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x408]
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x410], esi
mov dword [ebp - 0x404], eax
nop dword [eax + eax]
mov al, byte [ebp + ebx - 0x4b0]
mov byte [ebp - 0x411], al
test al, al
je 0x47a7cb
mov edi, dword [ebp - 0x440]
xor eax, eax
jmp 0x47a7d7
mov edi, dword [ebp - 0x418]
mov eax, dword [ebp - 0x3fc]
mov cl, byte [ebp + ebx - 0x518]
mov byte [ebp - 0x42d], cl
test cl, cl
jne 0x47a89f
cmp dword [ebp + ebx*8 - 0x834], eax
jb 0x47a89f
ja 0x47a808
cmp dword [ebp + ebx*8 - 0x838], edi
jbe 0x47a89f
mov ecx, dword [ebp + ebx*4 - 0x398]
call fcn.0045eaa0
mov esi, eax
test esi, esi
je 0x47a83b
mov edx, dword [esi]
mov ecx, esi
push edi
call dword [edx + 0x1c]
mov edx, dword [esi]
lea eax, [ebp - 0x208]
push 0
push eax
mov ecx, esi
call dword [edx + 0x24]
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x2c]
lea ecx, [ebp - 0x208]
call fcn.0045eaa0
mov esi, eax
test esi, esi
je 0x47a87c
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov edx, dword [esi]
mov ecx, esi
push 1
mov edi, eax
mov dword [ebp - 0x438], eax
call dword [edx + 0x2c]
mov esi, dword [ebp - 0x410]
xor edx, edx
mov dword [ebp + ebx*8 - 0x838], edi
mov dword [ebp + ebx*8 - 0x834], edx
jmp 0x47a8d1
mov esi, dword [ebp - 0x410]
mov edi, 0xfffffffe
xor edx, edx
mov dword [ebp - 0x438], edi
mov dword [ebp + ebx*8 - 0x838], edi
mov dword [ebp + ebx*8 - 0x834], edx
jmp 0x47a8d1
mov ecx, dword [ebp + ebx*4 - 0x398]
lea edx, [ebp - 0x208]
sub edx, ecx
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x47a8b0
mov edi, dword [ebp + ebx*8 - 0x838]
mov edx, dword [ebp + ebx*8 - 0x834]
mov dword [ebp - 0x438], edi
cmp dword [ebp - 0x434], 0
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x43c], edx
ja 0x47a8ee
test eax, eax
je 0x47a9e9
test edx, edx
jne 0x47a8fa
test edi, edi
je 0x47a9e9
mov ecx, edi
add ecx, eax
mov eax, edx
adc eax, dword [ebp - 0x434]
cmp eax, dword [ebp - 0x3fc]
ja 0x47a947
jb 0x47a918
cmp ecx, dword [ebp - 0x418]
ja 0x47a947
cmp byte [ebp - 0x411], 0
je 0x47a9e9
mov ecx, edi
mov eax, edx
add ecx, dword [ebp - 0x404]
adc eax, esi
test eax, eax
jb 0x47a9e9
ja 0x47a947
cmp ecx, dword [ebp - 0x440]
jbe 0x47a9e9
mov edi, dword [ebp - 0x42c]
lea ecx, [edi - 1]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x47a950
mov eax, dword [str.tempfile]
lea edx, [ebp - 0x41c]
mov dword [ecx], eax
mov esi, edx
mov eax, dword [0xea1238]
mov dword [ecx + 4], eax
mov al, byte [0xea123c]
mov byte [ecx + 8], al
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x47a980
sub edx, esi
dec edi
nop word [eax + eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x47a990
mov ecx, edx
xorps xmm0, xmm0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
movlpd qword [ebp - 0x408], xmm0
mov ecx, edx
mov eax, dword [ebp - 0x404]
and ecx, 3
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x408]
movlpd qword [ebp - 0x428], xmm0
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x410], eax
mov eax, dword [ebp - 0x428]
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x404], eax
lea edx, [ebp - 0x208]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x47a9f1
mov edi, dword [ebp - 0x42c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x47aa01
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp - 0x41c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, edx
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x47aa20
mov edi, dword [ebp - 0x42c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x47aa30
mov eax, dword [ebp - 0x438]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add dword [ebp - 0x40c], eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x43c]
adc dword [ebp - 0x434], ecx
cmp byte [ebp - 0x411], 0
mov esi, dword [ebp - 0x410]
je 0x47aa7b
add dword [ebp - 0x404], eax
adc esi, ecx
mov dword [ebp - 0x410], esi
cmp byte [ebp - 0x42d], 0
je 0x47aac7
xorps xmm0, xmm0
movlpd qword [ebp - 0x408], xmm0
mov ecx, dword [ebp - 0x404]
movlpd qword [ebp - 0x428], xmm0
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x434], ecx
mov ecx, dword [ebp - 0x408]
mov dword [ebp - 0x40c], ecx
mov dword [ebp - 0x410], esi
mov dword [ebp - 0x404], eax
inc ebx
cmp ebx, dword [ebp - 0x444]
jl 0x47a7b0
mov esi, dword [ebp - 0x42c]
push dword [ebp - 0x448]
call fcn.0048e011
add esp, 4
push 0
push esi
call fcn.0048a880
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
mov byte [eax - 1], 0
mov eax, esi
pop edi
pop esi
pop ebx
call fcn.004888df
mov esp, ebp
pop ebp
ret