Function at 0x4030da
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
push esi
push edi
push 0
mov eax, dword [0x40c608]
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
je 0x4030fc
jmp 0x403ce8
push 0
push 0
push 0x188
mov ecx, dword [0x40ca40]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0xa0], eax
cmp dword [0x415a68], 0
je 0x403147
cmp dword [ebp - 0xa0], 0xffffffff
je 0x403147
mov edx, dword [0x415a68]
sub edx, dword [ebp - 0xa0]
sub edx, 1
imul edx, edx, 0x3c
mov eax, dword [edx + 0x411e68]
mov dword [ebp - 8], eax
jmp 0x40314e
mov dword [ebp - 8], 0xffffffff
call fcn.00402b5b
cmp dword [0x40c460], 0
je 0x40318b
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
sub eax, dword [0x40c458]
cmp eax, dword [0x40c45c]
jbe 0x403186
mov dword [0x40c460], 0
mov dword [0x40b038], 0xffffffff
jmp 0x40318b
jmp 0x403ce3
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x94], 0
jmp 0x4031b0
mov ecx, dword [ebp - 0x94]
add ecx, 1
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
cmp edx, dword [0x415a68]
jge 0x4031db
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x9c]
add ecx, dword [eax + 0x411e6c]
mov dword [ebp - 0x9c], ecx
jmp 0x4031a1
mov edx, dword [0x415a68]
cmp edx, dword [0x415a6c]
jne 0x4031fb
mov eax, dword [ebp - 0x9c]
cmp eax, dword [0x40b038]
je 0x403297
push 0xa
lea ecx, [ebp - 0x90]
push ecx
mov edx, dword [0x415a68]
push edx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
push 0x40b308
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
push 0x40b30c
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
push 0xa
lea ecx, [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0x9c]
push edx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x5c]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
push section.OGRE2.01
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [0x40ca50]
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [ebp - 0x9c]
mov dword [0x40b038], edx
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
mov dword [ebp - 0x98], 0x100000
cmp dword [0x40ca60], 0
je 0x40331b
mov ecx, dword [0x40c484]
shr ecx, 0x10
and ecx, 0xffff
and ecx, 0xffff
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xa8], 0
je 0x4032ef
cmp dword [ebp - 0xa8], 1
je 0x403308
jmp 0x403319
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
jmp 0x403319
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x1c]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
jmp 0x40336b
mov edx, dword [0x40c484]
shr edx, 0x10
and edx, 0xffff
and edx, 0xffff
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 0
je 0x40334a
cmp dword [ebp - 0xac], 1
je 0x40335d
jmp 0x40336b
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x14]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
jmp 0x40336b
mov eax, dword [ebp - 0x14]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [0x40c394]
jne 0x40337c
cmp dword [ebp + 0xc], 0
je 0x4033b7
mov ecx, dword [ebp - 4]
mov dword [0x40c394], ecx
push 0xa
lea edx, [ebp - 0x5c]
push edx
mov eax, dword [0x40c394]
push eax
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
lea ecx, [ebp - 0x5c]
push ecx
push 0x418
mov edx, dword [0x40ca50]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp dword [0x40ca60], 0
je 0x4033d6
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x20]
xor edx, edx
div dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 4], eax
jmp 0x4033e4
mov eax, dword [ebp - 0x18]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [0x40c390]
jne 0x4033f5
cmp dword [ebp + 0xc], 0
je 0x403430
mov ecx, dword [ebp - 4]
mov dword [0x40c390], ecx
push 0xa
lea edx, [ebp - 0x5c]
push edx
mov eax, dword [0x40c390]
push eax
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
lea ecx, [ebp - 0x5c]
push ecx
push 0x419
mov edx, dword [0x40ca50]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [ebp - 0x20]
xor edx, edx
div dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [0x40c38c]
jne 0x403452
cmp dword [ebp + 0xc], 0
je 0x40348d
mov ecx, dword [ebp - 4]
mov dword [0x40c38c], ecx
push 0xa
lea edx, [ebp - 0x5c]
push edx
mov eax, dword [0x40c38c]
push eax
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
lea ecx, [ebp - 0x5c]
push ecx
push 0x41a
mov edx, dword [0x40ca50]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [0x40c480]
shr eax, 0x10
and eax, 0xffff
and eax, 0xffff
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
je 0x4034b9
cmp dword [ebp - 0xb0], 1
je 0x4034cc
jmp 0x4034da
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
jmp 0x4034da
mov eax, dword [ebp - 0x1c]
xor edx, edx
div dword [ebp - 0x98]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [0x40c388]
jne 0x4034eb
cmp dword [ebp + 0xc], 0
je 0x403526
mov edx, dword [ebp - 4]
mov dword [0x40c388], edx
push 0xa
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [0x40c388]
push ecx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
lea edx, [ebp - 0x5c]
push edx
push 0x41b
mov eax, dword [0x40ca50]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp dword [0x415e74], 0
jne 0x403535
cmp dword [ebp + 0xc], 0
je 0x403554
push 0
push 0
push 0xf
push 0x41c
mov ecx, dword [0x40ca50]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0xc], 0
jne 0x40357d
mov edx, dword [0x415a68]
sub edx, dword [ebp - 0xa0]
sub edx, 1
imul edx, edx, 0x3c
mov eax, dword [0x40ca4c]
cmp eax, dword [edx + 0x411e68]
je 0x40367e
push str.PID:
lea ecx, [ebp - 0x5c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
cmp dword [0x40c488], 0
je 0x4035d4
push 0x10
lea edx, [ebp - 0x90]
push edx
mov eax, dword [0x415a68]
sub eax, dword [ebp - 0xa0]
sub eax, 1
imul eax, eax, 0x3c
mov ecx, dword [eax + 0x411e68]
push ecx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
push 0x40b330
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
jmp 0x403631
lea eax, [ebp - 0x90]
push eax
push 0xf
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e68]
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], 0
fild qword [ebp - 0xb8]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll__gcvt]
add esp, 0x10
lea eax, [ebp - 0x90]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
mov byte [ebp + eax - 0x91], 0
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0x5c]
push eax
push 0x3ea
mov ecx, dword [0x40ca50]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [0x415a68]
sub edx, dword [ebp - 0xa0]
sub edx, 1
imul edx, edx, 0x3c
mov eax, dword [edx + 0x411e68]
mov dword [0x40ca4c], eax
cmp dword [ebp + 0xc], 0
jne 0x4036a8
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
mov edx, dword [0x40ca48]
cmp edx, dword [ecx + 0x411e6c]
je 0x403731
push 0xa
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e6c]
push edx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
push str.thr:
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0x5c]
push eax
push 0x3eb
mov ecx, dword [0x40ca50]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [0x415a68]
sub edx, dword [ebp - 0xa0]
sub edx, 1
imul edx, edx, 0x3c
mov eax, dword [edx + 0x411e6c]
mov dword [0x40ca48], eax
cmp dword [ebp + 0xc], 0
jne 0x40375b
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
mov edx, dword [0x40ca44]
cmp edx, dword [ecx + 0x411e70]
je 0x4038c0
push 0xa
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e70]
push edx
call dword [sym.imp.MSVCRT.dll__ltoa]
add esp, 0xc
push str.pri:
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
cmp dword [ecx + 0x411e70], 0x18
jb 0x4037c8
push str.realtime__
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
jmp 0x403862
mov eax, dword [0x415a68]
sub eax, dword [ebp - 0xa0]
sub eax, 1
imul eax, eax, 0x3c
cmp dword [eax + 0x411e70], 0xd
jb 0x4037f5
push str.high__
lea ecx, [ebp - 0x5c]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
jmp 0x403862
mov edx, dword [0x415a68]
sub edx, dword [ebp - 0xa0]
sub edx, 1
imul edx, edx, 0x3c
cmp dword [edx + 0x411e70], 8
jb 0x403823
push str.normal__
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
jmp 0x403862
mov ecx, dword [0x415a68]
sub ecx, dword [ebp - 0xa0]
sub ecx, 1
imul ecx, ecx, 0x3c
cmp dword [ecx + 0x411e70], 4
jb 0x403851
push str.idle__
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
jmp 0x403862
push str.____
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
push 0x40b374
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
lea ecx, [ebp - 0x5c]
push ecx
push 0x3ec
mov edx, dword [0x40ca50]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [0x415a68]
sub eax, dword [ebp - 0xa0]
sub eax, 1
imul eax, eax, 0x3c
mov ecx, dword [eax + 0x411e70]
mov dword [0x40ca44], ecx
cmp dword [0x40ca60], 0
jne 0x40398d
push 0x1f4
mov edx, dword [0x40c600]
push edx
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
jne 0x40398d
mov byte [ebp - 0xa4], 0
mov dword [0x415e7c], 0
mov dword [ebp - 0x94], 0
jmp 0x403913
mov eax, dword [ebp - 0x94]
add eax, 1
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [0x415a70]
jge 0x403980
mov edx, dword [ebp - 0x94]
imul edx, edx, 0x18
cmp dword [edx + 0x40ca68], 0
je 0x40397e
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x18
xor ecx, ecx
mov cl, byte [eax + 0x40ca6c]
mov edx, dword [ebp - 0xa4]
and edx, 0xff
cmp ecx, edx
jle 0x40397e
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x18
xor ecx, ecx
mov cl, byte [eax + 0x40ca6c]
cmp ecx, 0x32
jle 0x40397e
mov edx, dword [ebp - 0x94]
imul edx, edx, 0x18
mov eax, dword [edx + 0x40ca68]
mov dword [0x415e7c], eax
jmp 0x403904
mov ecx, dword [0x40c600]
push ecx
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
cmp dword [ebp + 0xc], 0
jne 0x403a5d
mov edx, dword [0x415a68]
cmp edx, dword [0x415a6c]
jne 0x403a5d
mov eax, dword [0x415e7c]
cmp eax, dword [0x415e80]
jne 0x403a5d
mov dword [ebp - 0x94], 0
jmp 0x4039d5
mov ecx, dword [ebp - 0x94]
add ecx, 1
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
cmp edx, dword [0x415a68]
jge 0x403a4a
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
mov edx, dword [eax + 0x411e68]
cmp edx, dword [ecx + 0x40e268]
jne 0x403a43
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
mov edx, dword [eax + 0x411e94]
cmp edx, dword [ecx + 0x40e294]
jne 0x403a43
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
mov edx, dword [eax + 0x411ea0]
cmp edx, dword [ecx + 0x40e2a0]
je 0x403a45
jmp 0x403a4a
jmp 0x4039c6
mov eax, dword [ebp - 0x94]
cmp eax, dword [0x415a68]
jne 0x403a5d
jmp 0x403ce1
mov dword [ebp - 0x94], 0
jmp 0x403a78
mov ecx, dword [ebp - 0x94]
add ecx, 1
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
cmp edx, dword [0x415a68]
jge 0x403aad
mov esi, dword [ebp - 0x94]
imul esi, esi, 0x3c
add esi, 0x411e68
mov edi, dword [ebp - 0x94]
imul edi, edi, 0x3c
add edi, 0x40e268
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
jmp 0x403a69
mov eax, dword [0x415a68]
mov dword [0x415a6c], eax
mov ecx, dword [0x415e7c]
mov dword [0x415e80], ecx
push 0
push 0
push 0x188
mov edx, dword [0x40ca40]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x40b034], eax
cmp dword [0x40b034], 0xffffffff
jne 0x403af1
mov dword [0x40b034], 0
push 0
push 0
push 0x184
mov eax, dword [0x40ca40]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [0x415a68]
sub ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x403b26
mov edx, dword [ebp - 0x94]
sub edx, 1
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x94], 0
jl 0x403c09
mov byte [ebp - 0x5c], 0
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
cmp dword [eax + 0x411e68], 0
je 0x403b71
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e68]
cmp edx, dword [0x415e7c]
jne 0x403b71
push 0x40b378
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
cmp dword [ecx + 0x411e94], 0
je 0x403b94
push 0x40b37c
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
mov eax, dword [ebp - 0x94]
imul eax, eax, 0x3c
cmp dword [eax + 0x411ea0], 0
je 0x403bb7
push 0x40b380
lea ecx, [ebp - 0x5c]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
movsx edx, byte [ebp - 0x5c]
test edx, edx
je 0x403bd0
push 0x40b384
lea eax, [ebp - 0x5c]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
add ecx, 0x411e74
push ecx
lea edx, [ebp - 0x5c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0x5c]
push eax
push 0
push 0x180
mov ecx, dword [0x40ca40]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x403b17
mov dword [ebp - 0x94], 0
jmp 0x403c24
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x94]
cmp eax, dword [0x415a68]
jge 0x403c6d
mov ecx, dword [ebp - 0x94]
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e68]
cmp edx, dword [ebp - 8]
jne 0x403c6b
push 0
mov eax, dword [0x415a68]
sub eax, dword [ebp - 0x94]
sub eax, 1
push eax
push 0x186
mov ecx, dword [0x40ca40]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x403c6d
jmp 0x403c15
mov edx, dword [ebp - 0x94]
cmp edx, dword [0x415a68]
jne 0x403cd2
push 0
push 0
push 0x18b
mov eax, dword [0x40ca40]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, dword [0x40b034]
jle 0x403cb5
push 0
mov ecx, dword [0x40b034]
push ecx
push 0x186
mov edx, dword [0x40ca40]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x403cd2
push 0
mov eax, dword [0x40b034]
sub eax, 1
push eax
push 0x186
mov ecx, dword [0x40ca40]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [0x40c608]
push edx
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
jmp 0x403ce8
jmp 0x403cd2
jmp 0x4032a3
pop edi
pop esi
mov esp, ebp
pop ebp
ret