Function at 0x4583d0
Capabilities:
Get memory capacity
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x511d60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push str.HGE_Started.._n
push ebx
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebx]
call dword [eax + 0x1c]
mov eax, dword [ebx]
push 0x80
push 1
push str.HGE_version:__X._X
push ebx
call dword [eax + 0x1c]
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 8]
mov ecx, dword [ebx]
push eax
movzx eax, word [ebp - 0xa]
push eax
movzx eax, word [ebp - 0xc]
push eax
movzx eax, word [ebp - 0x14]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0xe]
push eax
push str.Date:__02d._02d._d___02d:_02d:_02d_n
push ebx
call dword [ecx + 0x1c]
mov eax, dword [ebx]
lea ecx, [ebx + 0x348]
push ecx
push str.Application:__s
push ebx
call dword [eax + 0x1c]
add esp, 0x2c
mov dword [ebp - 0xc8], 0x94
lea eax, [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push dword [ebp - 0xbc]
mov eax, dword [ebx]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push str.OS:_Windows__ld._ld._ld
push ebx
call dword [eax + 0x1c]
add esp, 0x14
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebx]
shr eax, 0xa
push eax
mov eax, dword [ebp - 0x2c]
shr eax, 0xa
push eax
push str.Memory:__ldK_total___ldK_free_n
push ebx
call dword [ecx + 0x1c]
mov al, byte [ebx + 0x454]
add esp, 0x10
mov byte [0x5152d0], al
mov eax, dword [ebx + 4]
mov dword [ebp - 0xf8], 0x2b
push 0x7f00
push 0
mov dword [ebp - 0xf4], 0x459350
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [ebp - 0xe0], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0xdc], eax
mov eax, dword [0x50d618]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebx + 0x344]
mov dword [ebp - 0xd8], 0
test eax, eax
je 0x458534
push eax
push dword [ebx + 4]
jmp 0x45853b
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x45858e
mov eax, dword [ebx]
push str.Cant_register_window_class
push ebx
call dword [eax + 0x1c]
mov ecx, str.Cant_register_window_class
add esp, 8
sub ebx, ecx
mov edi, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ebx + ecx + 0xc], al
test al, al
jne 0x458570
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c1624
mov esp, ebp
pop ebp
ret 4
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 7
call edi
mov ecx, dword [ebx + 0x448]
push 8
lea eax, [ecx + eax*2]
mov dword [ebp - 0xd0], eax
call edi
mov esi, eax
push 4
add esi, esi
call edi
mov ebx, eax
mov eax, dword [ebp - 0xcc]
push 0
add ebx, dword [eax + 0x44c]
add ebx, esi
call edi
sub eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
cdq
sub eax, edx
sar eax, 1
push 1
mov dword [ecx + 0x6f4], eax
call edi
mov edi, dword [ebp - 0xcc]
sub eax, ebx
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [edi + 0x6f4]
add ecx, dword [ebp - 0xd0]
mov esi, dword [edi + 0x67c]
mov dword [edi + 0x6f8], eax
add eax, ebx
mov dword [edi + 0x6fc], ecx
mov ecx, dword [edi + 0x44c]
mov dword [edi + 0x700], eax
mov eax, dword [edi + 0x448]
mov dword [edi + 0x704], 0x90ca0000
mov dword [edi + 0x73c], 0
mov dword [edi + 0x740], 0
mov dword [edi + 0x744], eax
mov dword [edi + 0x748], ecx
mov dword [edi + 0x74c], 0x90000000
test esi, esi
je 0x45868c
mov dword [edi + 0x6f4], 0
mov dword [edi + 0x6f8], 0
mov dword [edi + 0x6fc], eax
mov dword [edi + 0x700], ecx
mov dword [edi + 0x704], 0x50000000
mov byte [edi + 0x454], 1
cmp byte [edi + 0x454], 0
push 0
push dword [edi + 4]
push 0
je 0x4586d4
mov ecx, dword [edi + 0x6f8]
mov eax, dword [edi + 0x700]
mov edx, dword [edi + 0x6f4]
sub eax, ecx
push esi
push eax
mov eax, dword [edi + 0x6fc]
sub eax, edx
push eax
push ecx
push edx
push dword [edi + 0x704]
lea eax, [edi + 0x348]
push eax
push dword [0x50d618]
push 0
jmp 0x4586f2
push 0
push 0
push 0
push 0
push 0
push 0x90000000
lea eax, [edi + 0x348]
push eax
push dword [0x50d618]
push 8
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [edi + 8], eax
test eax, eax
jne 0x458734
mov eax, dword [edi]
push str.Cant_create_window
push edi
call dword [eax + 0x1c]
mov ecx, str.Cant_create_window
add esp, 8
sub edi, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edi + ecx + 0xc], al
test al, al
jne 0x458714
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c1624
mov esp, ebp
pop ebp
ret 4
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov eax, dword [edi]
push 0
push edi
call dword [eax + 0x8c]
mov ecx, edi
call fcn.00456060
mov ecx, edi
call fcn.00455f40
mov ecx, edi
call fcn.00454450
test al, al
jne 0x4587d4
mov esi, dword [sym.imp.USER32.dll_SetWindowLongA]
mov ebx, dword [sym.imp.USER32.dll_GetWindowLongA]
jmp 0x458780
cmp byte [edi + 0x454], 0
jne 0x458948
push dword [edi + 0x704]
mov byte [edi + 0x454], 1
push 0xfffffffffffffff0
push dword [edi + 8]
call esi
push 0xffffffffffffffec
push dword [edi + 8]
call ebx
and eax, 0xfffffff7
push eax
push 0xffffffffffffffec
push dword [edi + 8]
call esi
push dword [ebp - 0xe4]
push 0
push 0x80
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, edi
call fcn.00454450
test al, al
je 0x458780
cmp byte [edi + 0x454], 0
je 0x45882b
cmp byte [0x5152d0], 0
jne 0x45882b
mov ecx, dword [0x51632c]
cmp byte [ecx + 0x28], 0
jne 0x458807
mov ecx, dword [0x516324]
call fcn.0048f3a0
test al, al
jne 0x45882b
mov ecx, dword [0x51632c]
push 1
push 0
push 0x300
push 0x556
call fcn.00447b60
mov ecx, dword [0x51632c]
call fcn.00447790
mov eax, dword [edi]
push edi
call dword [eax + 0x10]
mov ecx, edi
call fcn.004578e0
test al, al
mov eax, dword [edi]
je 0x45894a
push str.Init_done._n
push edi
call dword [eax + 0x1c]
add esp, 8
mov dword [edi + 0xb7c], 0
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [edi + 0xb90], eax
mov dword [edi + 0xb8c], eax
mov dword [edi + 0xb98], 0
mov dword [edi + 0xb94], 0
mov dword [edi + 0xb88], 0
mov eax, dword [0x515470]
cmp byte [eax + 0x681], 0
je 0x458933
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x515470]
push 8
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov ecx, dword [0x515470]
mov edi, eax
push 9
push ecx
mov edx, dword [ecx]
call dword [edx + 0x40]
mov ebx, eax
mov eax, dword [ebp - 0xcc]
push 0x452140
push 8
mov esi, dword [eax + 0x67c]
mov dword [eax + 0x67c], 0
mov ecx, dword [0x515470]
push ecx
mov edx, dword [ecx]
call dword [edx + 0x2c]
mov eax, dword [0x515470]
push 0
push 9
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
call fcn.00452230
mov eax, dword [0x515470]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
call fcn.00452120
mov eax, dword [ebp - 0xcc]
push edi
push 8
mov dword [eax + 0x67c], esi
mov eax, dword [0x515470]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [0x515470]
push ebx
push 9
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c1624
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c1624
mov esp, ebp
pop ebp
ret 4