Function at 0x405730
Capabilities:
Create thread
Resume thread

Disassembly:
push edi
push esi
push ebx
sub esp, 0x50
cmp byte [0x55d040], 0
mov dword [0x55d0bc], 0
mov dword [0x55d0c0], 0
jne 0x405a50
mov eax, dword [esp + 0x60]
cmp dword [eax], 0xc
je 0x405970
mov dword [0x55d05c], 0x280
lea ebx, [esp + 0x20]
mov dword [0x55d060], 0x1e0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], 0x55d520
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call sym._GdiplusStartup_12
sub esp, 0xc
mov dword [esp], 0
call sym._GetModuleHandleA_4
sub esp, 4
mov dword [0x55d098], eax
call method.ege.initicon__
lea edi, [esp + 0x2c]
xor eax, eax
mov ecx, 9
rep stosd dword es:[edi], eax
mov eax, dword [0x55d098]
cmp byte [0x55d041], 0
mov dword [esp + 0x20], 0x30
mov dword [esp + 0x24], 3
mov dword [esp + 0x34], eax
mov eax, dword [0x55d0b8]
mov dword [esp + 0x28], sym.__ZN3egeL7wndprocEP6HWND__jjl_16
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
jne 0x405930
call sym._LoadCursorA_8
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 6
mov dword [esp + 0x48], str.Easy_Graphics_Engine
call sym._RegisterClassExA_4
mov dword [0x5655c4], 0x466388
sub esp, 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], 0x55d040
mov dword [esp + 8], sym.__ZN3ege17messageloopthreadEPv_4
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._CreateThread_24
sub esp, 0x18
mov dword [0x55d0d8], eax
mov dword [esp], eax
call sym._ResumeThread_4
sub esp, 4
cmp byte [0x55d040], 0
jne 0x4058b8
mov dword [esp], 1
call sym._Sleep_4
sub esp, 4
cmp byte [0x55d040], 0
je 0x4058a0
mov eax, dword [0x55d09c]
mov dword [esp], eax
call sym._UpdateWindow_4
mov edx, dword [0x55d05c]
sub esp, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x55d060]
sar eax, 1
mov dword [0x55d0e8], eax
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
mov dword [0x55d0ec], eax
movzx eax, byte [0x565550]
test al, al
je 0x405a10
mov eax, dword [0x5655cc]
test ah, 1
jne 0x4059f8
test al, 8
jne 0x4059e0
mov dword [0x55d100], 1
add esp, 0x50
pop ebx
pop esi
pop edi
ret
call sym._LoadCursorA_8
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 6
mov dword [esp + 0x48], 0x502104
call sym._RegisterClassExW_4
mov dword [0x5655c4], 0x466380
sub esp, 4
jmp 0x405854
mov eax, dword [esp + 0x64]
mov esi, dword [eax]
mov eax, dword [0x5655c8]
test eax, eax
je 0x405aa0
lea ebx, [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._GetClientRect_8
sub esp, 8
movsx eax, si
sar esi, 0x10
mov dword [0x55d05c], eax
mov dword [0x55d060], esi
test eax, eax
jns 0x4059b8
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x20]
mov dword [0x55d05c], eax
test esi, esi
jns 0x4059c9
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x24]
mov dword [0x55d060], eax
cmp byte [0x55d040], 0
jne 0x4057b7
jmp 0x40577c
mov dword [esp], 1
call method.ege.setrendermode_ege::rendermode_e_
jmp 0x405915
call method.ege.logoscene__
mov eax, dword [0x5655cc]
jmp 0x40590d
mov dword [esp], 0x565550
call sym.___cxa_guard_acquire
test eax, eax
je 0x4058ff
mov ecx, 0x565560
call method.ege::egeControlBase.egeControlBase__
mov dword [esp], 0x565550
call sym.___cxa_guard_release
mov dword [esp], sym.___tcf_0_1
call sym._atexit
jmp 0x4058ff
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
mov edx, eax
cwde
sar edx, 0x10
mov dword [esp], eax
mov dword [esp + 4], edx
call method.ege.resizewindow_int__int_
call method.ege.getHWnd__
mov dword [esp], eax
mov ebx, eax
call sym._IsWindowVisible_4
sub esp, 4
test eax, eax
jne 0x40591f
mov dword [esp + 4], 5
mov dword [esp], ebx
call sym._ShowWindow_8
sub esp, 8
jmp 0x40591f
call sym._GetDesktopWindow_0
lea ebx, [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym._GetWindowRect_8
sub esp, 8
jmp 0x405996