Function at 0x401be0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edi, dword [esp + 0xb0]
mov dword [esp + 4], 0xffffffeb
mov ebx, dword [esp + 0xb4]
mov dword [esp], edi
call sym._GetWindowLongW_8
sub esp, 8
test eax, eax
je 0x401c50
mov ebp, dword [0x55d064]
test ebp, ebp
je 0x401c50
mov esi, eax
cmp ebx, 0x20a
ja 0x401ca0
cmp ebx, 0x1ff
ja 0x401c88
cmp ebx, 0x20
ja 0x401d70
cmp ebx, 1
jbe case.0x401c46.0
cmp ebx, 0x20
ja case.0x401c46.0
jmp dword [ebx*4 + 0x502058]
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
call dword [0x5655c4]
sub esp, 0x10
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
lea eax, [ebx - 0x201]
cmp eax, 9
ja case.default.0x401c97
jmp dword [eax*4 + 0x5020dc]
cmp ebx, 0x401
je 0x402b60
cmp ebx, 0x402
jne 0x401cf6
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
call sym._SetFocus_4
sub esp, 4
lea esi, [esi]
lea esi, [esi]
cmp esi, 0x55d040
je 0x401ce7
mov eax, dword [esi]
mov eax, dword [eax]
cmp eax, method.ege::egeControlBase.onMessage_unsigned_int__unsigned_int__long_
jne 0x4029d8
xor eax, eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp ebx, 0x283
jne case.0x401c46.0
cmp dword [esp + 0xb8], 0x10
jne 0x401cd0
mov dword [esp], edi
call sym._ImmGetContext_4
sub esp, 4
mov ecx, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp], ecx
mov dword [esp + 0x64], 0
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x50], 2
mov dword [esp + 0x58], edx
call sym._ImmSetCompositionWindow_8
sub esp, 8
jmp 0x401cd0
cmp ebx, 0x113
je 0x402bb0
jbe 0x401de0
cmp ebx, 0x133
jne case.0x401c46.0
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], 0xffffffeb
mov dword [esp], eax
call sym._GetWindowLongW_8
mov ecx, eax
mov eax, dword [eax]
sub esp, 8
mov eax, dword [eax]
cmp eax, method.ege::egeControlBase.onMessage_unsigned_int__unsigned_int__long_
je 0x401ce7
mov edx, dword [esp + 0xbc]
mov dword [esp], 0x133
mov dword [esp + 8], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 4], edx
call eax
sub esp, 0xc
jmp 0x401c76
lea eax, [ebx - 0x100]
cmp eax, 2
ja case.0x401c46.0
cmp dword [esp + 0xb8], 0xff
mov eax, dword [0x55d104]
setbe dl
cmp ebx, 0x100
jne 0x4029fd
test dl, dl
je 0x4029fd
mov edx, dword [esp + 0xb8]
mov dword [edx*4 + 0x55d118], 1
mov edx, 1
test eax, eax
je 0x401e56
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xb8]
mov edx, dword [0x55d108]
mov dword [esp + 8], ecx
mov dword [esp], edx
call eax
sub esp, 0xc
test eax, eax
je 0x401cd0
mov ebp, dword [0x55d09c]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call sym._GetTickCount_0
mov edi, dword [0x55d0d0]
mov dword [esp + 0x38], eax
mov dword [esp], edi
call sym._EnterCriticalSection_4
mov edx, dword [edi + 0x7038]
sub esp, 4
lea eax, [edx + 1]
mov dword [esp + 0x54], ebx
mov ecx, eax
imul edx, edx, 0x1c
mov dword [esp + 0x50], ebp
sar ecx, 0x1f
shr ecx, 0x16
add eax, ecx
lea edx, [edi + edx + 0x10]
and eax, 0x3ff
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x60], ecx
mov dword [edx + 8], ebp
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [edi + 0x7034]
je 0x402ca4
mov dword [edi + 0x7038], eax
mov dword [esp], edi
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [esp], edi
mov dword [0x55d128], 1
mov dword [0x55d0f0], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0f4], eax
call sym._SetCapture_4
mov dword [0x55d0e0], 1
sub esp, 4
cmp dword [0x55d09c], edi
jne 0x401cd0
mov eax, dword [0x55d0e4]
mov dword [esp + 0x68], 0
add eax, eax
or eax, dword [0x55d0dc]
or eax, 4
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], ebx
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x402034
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
cmp esi, 0x55d040
je 0x401c50
mov eax, dword [esi]
mov eax, dword [eax]
cmp eax, method.ege::egeControlBase.onMessage_unsigned_int__unsigned_int__long_
je 0x401ce7
mov ecx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], ecx
mov ecx, esi
call eax
sub esp, 0xc
jmp 0x401c76
cmp eax, 0x55d040
jne 0x401cd8
mov dword [esp], 0
mov dword [0x55d0c0], 1
call sym._PostQuitMessage_4
sub esp, 4
cmp byte [0x55d0c8], 0
je 0x401ce7
cmp byte [0x55d0c9], 0
je 0x401ce7
mov dword [esp], 0
call sym._ExitProcess_4
cmp eax, 0x55d040
jne 0x401cd8
cmp byte [0x55d0ca], 0
jne 0x402d11
lea esi, [esp + 0x50]
mov dword [esp], edi
mov dword [esp + 4], esi
call sym._BeginPaint_8
mov ecx, dword [0x55d094]
mov ebx, eax
mov eax, dword [0x55d084]
sub esp, 8
mov eax, dword [eax*4 + 0x55d064]
mov dword [esp], eax
call method.ege::IMAGE.copyimage_ege::IMAGE_const_
sub esp, 4
test ebx, ebx
je 0x402d32
mov eax, dword [0x55d094]
mov dword [esp + 0x20], 0xcc0020
mov edx, dword [0x55d078]
sub edx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [0x55d074]
sub edx, dword [eax + 0x30]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 4]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [0x55d080]
mov dword [esp + 4], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x55d07c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._BitBlt_36
sub esp, 0x24
mov dword [esp + 4], esi
mov dword [esp], edi
call sym._EndPaint_8
xor eax, eax
sub esp, 8
jmp 0x401ce9
cmp eax, 0x55d040
jne 0x401cd8
mov eax, dword [0x55d114]
test eax, eax
je 0x402ce2
call eax
xor eax, eax
jmp 0x401ce9
cmp eax, 0x55d040
jne 0x401cd8
mov eax, 1
jmp 0x401c76
movsx eax, word [esp + 0xbc]
mov dword [esp], edi
mov dword [0x55d11c], 1
mov dword [0x55d0f0], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0f4], eax
call sym._SetCapture_4
mov dword [0x55d0dc], 1
sub esp, 4
cmp dword [0x55d09c], edi
jne 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, 1
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], ebx
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x4022eb
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [0x55d0dc], 0
mov dword [0x55d11c], 0
mov dword [0x55d0f8], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0fc], eax
mov eax, dword [0x55d0e0]
or eax, dword [0x55d0e4]
je 0x402cd8
cmp dword [0x55d09c], edi
jne 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, dword [0x55d0dc]
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], 0x202
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x40242c
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [esp], edi
mov dword [0x55d120], 1
mov dword [0x55d0f0], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0f4], eax
call sym._SetCapture_4
mov dword [0x55d0e4], 1
sub esp, 4
cmp dword [0x55d09c], edi
jne 0x401cd0
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
shl eax, 2
or eax, dword [0x55d0dc]
or eax, 2
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], ebx
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x40255b
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [0x55d0e4], 0
mov dword [0x55d120], 0
mov dword [0x55d0f8], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0fc], eax
mov eax, dword [0x55d0dc]
or eax, dword [0x55d0e0]
je 0x402cce
cmp dword [0x55d09c], edi
jne 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, dword [0x55d0dc]
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], 0x205
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x40269c
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [0x55d09c]
mov dword [esp], eax
call sym._ScreenToClient_8
sub esp, 8
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov dword [0x55d0e8], edx
movzx edx, dx
mov dword [0x55d0ec], eax
shl eax, 0x10
or edx, eax
mov dword [esp + 0xbc], edx
cmp dword [0x55d09c], edi
jne 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, dword [0x55d0dc]
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], 0x20a
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x4027f0
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
movsx eax, word [esp + 0xbc]
mov dword [0x55d0e0], 0
mov dword [0x55d128], 0
mov dword [0x55d0f8], eax
mov eax, dword [esp + 0xbc]
sar eax, 0x10
mov dword [0x55d0fc], eax
mov eax, dword [0x55d0dc]
or eax, dword [0x55d0e4]
je 0x402cc4
cmp dword [0x55d09c], edi
jne 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, dword [0x55d0dc]
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], 0x208
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x402931
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
cmp eax, 0x55d040
jne 0x401cd8
mov ebp, dword [0x55d100]
test ebp, ebp
jne 0x4029ad
lea ebx, [esp + 0x48]
mov dword [esp], ebx
call sym._GetCursorPos_4
push ecx
mov dword [esp + 4], ebx
mov dword [esp], edi
call sym._ScreenToClient_8
push ebx
push ebx
lea eax, [esp + 0x50]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._GetClientRect_8
push esi
push esi
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jl 0x4029ad
cmp eax, dword [esp + 0x58]
jge 0x4029ad
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x54]
jl 0x4029ad
cmp eax, dword [esp + 0x5c]
jle 0x402e49
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call sym._LoadCursorA_8
sub esp, 8
mov dword [esp], eax
call sym._SetCursor_4
sub esp, 4
jmp 0x4021c3
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov ecx, esi
mov dword [esp + 4], edx
call eax
sub esp, 0xc
jmp 0x401c76
cmp ebx, 0x101
jne 0x402e5b
test dl, dl
je 0x402e5b
mov ecx, dword [esp + 0xb8]
xor edx, edx
mov dword [ecx*4 + 0x55d118], 0
jmp 0x401e2d
mov edx, dword [esp + 0xbc]
movsx eax, word [esp + 0xbc]
sar edx, 0x10
mov dword [0x55d0e8], eax
mov dword [0x55d0ec], edx
cmp dword [0x55d09c], edi
jne 0x401cd0
cmp eax, dword [0x55d0f8]
jne 0x402a67
cmp edx, dword [0x55d0fc]
je 0x401cd0
mov ecx, dword [0x55d0e4]
mov eax, dword [0x55d0e0]
mov dword [esp + 0x68], 0
lea edx, [ecx + ecx]
shl eax, 2
or eax, edx
or eax, dword [0x55d0dc]
mov dword [esp + 0x38], eax
call sym._GetTickCount_0
mov ebp, dword [0x55d0d4]
mov dword [esp + 0x3c], eax
mov dword [esp], ebp
call sym._EnterCriticalSection_4
mov ecx, dword [ebp + 0x7038]
sub esp, 4
lea eax, [ecx + 1]
mov dword [esp + 0x54], 0x200
cdq
imul ecx, ecx, 0x1c
mov dword [esp + 0x50], edi
shr edx, 0x16
add eax, edx
and eax, 0x3ff
sub eax, edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
lea edx, [ebp + ecx + 0x10]
mov dword [edx + 8], edi
mov ecx, dword [esp + 0x54]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x20], ecx
cmp eax, dword [ebp + 0x7034]
jne 0x402b45
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [ebp + 0x7034], edx
mov dword [ebp + 0x7038], eax
mov dword [esp], ebp
call sym._LeaveCriticalSection_4
sub esp, 4
jmp 0x401cd0
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x402c08
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 4]
test eax, eax
je 0x402b88
mov dword [esp], eax
call sym._DestroyWindow_4
sub esp, 4
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
test eax, eax
je 0x401cd0
mov dword [esp], eax
call sym._SetEvent_4
sub esp, 4
jmp 0x401cd0
cmp eax, 0x55d040
jne 0x401cd8
cmp byte [0x55d0cc], 1
je 0x401ce7
cmp dword [esp + 0xb8], 0x394
jne 0x401ce7
cmp dword [0x55d0c4], 0
jle 0x402dab
cmp byte [0x55d0cb], 0
je 0x401ce7
mov word [0x55d0cb], 0x100
xor eax, eax
jmp 0x401ce9
call method.ege.getHInstance__
mov edi, eax
mov eax, dword [esp + 0xbc]
mov ebp, dword [eax + 0x14]
call method.ege.getHWnd__
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call sym._CreateWindowExW_48
sub esp, 0x30
mov edx, dword [esp + 0xbc]
mov dword [edx + 4], eax
mov eax, dword [edx]
test eax, eax
jne 0x402b99
jmp 0x401cd0
lea edx, [eax + 1]
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x16
add edx, ecx
and edx, 0x3ff
sub edx, ecx
mov dword [edi + 0x7034], edx
jmp 0x401f06
call sym._ReleaseCapture_0
jmp 0x402847
call sym._ReleaseCapture_0
jmp 0x4025b2
call sym._ReleaseCapture_0
jmp 0x402342
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], 0x10
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
call dword [0x5655c4]
sub esp, 0x10
jmp 0x401c76
mov dword [esp + 4], 0
mov dword [esp], edi
call sym._ValidateRect_8
sub dword [0x55d0c4], 1
xor eax, eax
sub esp, 8
jmp 0x401ce9
mov dword [esp], edi
call sym._GetDC_4
push edx
mov ebx, eax
mov eax, dword [0x55d094]
mov edx, dword [0x55d078]
mov dword [esp + 0x20], 0xcc0020
sub edx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [0x55d074]
sub edx, dword [eax + 0x30]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 4]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [0x55d080]
mov dword [esp + 4], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x55d07c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._BitBlt_36
sub esp, 0x24
mov dword [esp + 4], ebx
mov dword [esp], edi
call sym._ReleaseDC_8
push ecx
push ecx
jmp 0x402181
mov eax, dword [0x55d084]
mov ecx, dword [0x55d094]
mov dword [0x55d0c4], 0xff
mov eax, dword [eax*4 + 0x55d064]
mov dword [esp], eax
call method.ege::IMAGE.copyimage_ege::IMAGE_const_
push ebx
mov dword [esp], edi
call sym._GetDC_4
mov edx, dword [0x55d078]
push esi
mov ebx, eax
mov eax, dword [0x55d094]
mov dword [esp + 0x20], 0xcc0020
sub edx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [0x55d074]
sub edx, dword [eax + 0x30]
mov dword [esp + 0x18], edx
mov eax, dword [eax + 4]
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [0x55d080]
mov dword [esp + 4], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x55d07c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call sym._BitBlt_36
sub esp, 0x24
mov dword [esp], edi
mov dword [esp + 4], ebx
call sym._ReleaseDC_8
push edi
push edi
jmp 0x402be6
mov dword [esp], 0
call sym._SetCursor_4
push edx
jmp 0x4021c3
test eax, eax
je 0x401e56
xor edx, edx
cmp ebx, 0x102
sete dl
add edx, edx
jmp 0x401e31