Function at 0x6607c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
mov ebx, edx
sub esp, 0xec
mov edi, dword [ecx + 0x20]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x44], ecx
lea edx, [edi + edi*2]
mov ecx, eax
mov dword [esp + 0x70], edi
and ecx, 1
lea eax, [eax + ecx + 0x20]
lea ecx, [edi + edx*4 + 6]
mov dword [esp + 0x60], eax
lea eax, [esi - 7]
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.libpcaewin.dll_NPIXEL_Y]
mov dword [esp + 0x64], ecx
mov eax, dword [eax]
sub eax, ebx
lea edx, [eax - 0x1e]
cmp ecx, edx
jge 0x660f58
lea eax, [ebx + 5]
mov dword [esp + 0x28], eax
mov eax, dword [sym.imp.libpcaewin.dll_Nearest_Color_Index]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xff
mov dword [esp + 0x90], eax
call eax
mov ebp, dword [sym.imp.libpcaewin.dll_pxFgc]
mov dword [esp], eax
call ebp
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x75e91c
add esi, eax
lea eax, [ebx + 1]
sub ebx, 9
mov dword [esp + 0xc], eax
lea eax, [esi - 4]
lea edx, [esi - 0xe]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.libpcaewin.dll_pxMask]
mov dword [esp + 0x38], esi
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 0x94], edx
mov dword [esp], edx
mov dword [esp + 0x7c], eax
call eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x50], 0
fldz
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], 0
fstp qword [esp + 0x80]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov edi, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x48], eax
lea esi, [eax + eax]
lea eax, [esp + 0xac]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
lea eax, [esp + 0xa4]
mov dword [esp + 4], eax
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_pxQVwp]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 4], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov edx, dword [sym.imp.libpcaewin.dll_pxView]
mov dword [esp], ecx
mov dword [esp + 0x8c], edx
call edx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call dword [sym.imp.libpcaewin.dll_Save_Screen_Rectangle]
call dword [sym.imp.libpcaewin.dll_Save_Mouse_Position]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call dword [sym.imp.libpcaewin.dll_Pop_Mouse_Move_Restriction]
mov ecx, dword [esp + 0x28]
lea eax, [edi + edi*2]
mov edx, dword [esp + 0x60]
lea eax, [edi + eax*4]
lea eax, [ecx + eax + 6]
mov dword [esp + 4], eax
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 1
add eax, edx
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_msStCu]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x68], eax
add eax, ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x10], ebx
mov eax, dword [ecx + 8]
mov dword [esp], edi
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
lea eax, [esp + 0xb0]
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_InitDTEMessage]
lea eax, [esi + ebx]
lea ecx, [edi + 0xd]
lea eax, [ebx + eax*4]
mov dword [esp + 0x78], ecx
add eax, ecx
mov dword [esp + 0x30], eax
lea esi, [esi]
lea eax, [esp + 0xb0]
mov dword [esp], 0x14022
mov dword [esp + 4], eax
call dword [sym.imp.libpcaewin.dll_GetDTEMessage]
test eax, 0x10000
jne 0x660ce8
mov eax, dword [sym.imp.libpcaewin.dll_M_XPOS]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
cmp edx, eax
jge 0x660a88
cmp dword [esp + 0x3c], edx
jge 0x660a88
mov eax, dword [sym.imp.libpcaewin.dll_M_YPOS]
mov ecx, dword [eax]
mov eax, dword [esp + 0x28]
cmp ecx, eax
jle 0x660a88
cmp dword [esp + 0x34], ecx
jg 0x660f78
lea esi, [esi]
mov eax, dword [esp + 0x44]
mov edi, dword [0x75e918]
mov esi, dword [eax + 8]
test edi, edi
js 0x660ec8
mov dword [esp], 0xffffffff
call dword [sym.imp.libpcaewin.dll_pxBuff]
mov dword [esp + 0x4c], eax
mov eax, dword [0x8dcfec]
mov dword [esp], eax
call ebp
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov ebx, dword [sym.imp.libpcaewin.dll_pxRect]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 8], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0xc], eax
call ebx
mov eax, dword [0x75e918]
mov dword [esp], eax
call ebp
mov ebx, dword [sym.imp.libpcaewin.dll_pxSULn]
mov dword [esp], 0xaaaaaaaa
call ebx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
mov dword [esp + 8], edi
mov edi, dword [sym.imp.libpcaewin.dll_pxLine]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ecx
mov dword [esp], edx
call edi
mov dword [esp], 0xaaaaaaaa
call ebx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov dword [esp + 8], ecx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call edi
mov dword [esp], 0xaaaaaaaa
call ebx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
call edi
mov dword [esp], 0xaaaaaaaa
call ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp], eax
call edi
mov dword [esp], 0
call dword [sym.imp.libpcaewin.dll_pxSLn]
mov dword [esp], esi
call dword [sym.imp.libpcaewin.dll_Pop_RFont]
mov ebx, dword [esp + 0x48]
test ebx, ebx
jle 0x660c05
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x78]
lea esi, [eax + ecx*8]
lea esi, [esi]
mov eax, dword [esi]
add esi, 8
mov dword [esp], eax
call ebp
mov edi, dword [esi - 4]
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
add ebx, 0xd
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_pxText]
mov eax, dword [esp + 0x30]
cmp ebx, eax
jne 0x660bc8
mov edi, dword [esp + 0x58]
call dword [sym.imp.libpcaewin.dll_Push_RFont]
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x660d30
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_pxBuff]
mov esi, dword [sym.imp.libpcaewin.dll_M_LEFT]
mov eax, dword [esi]
test eax, eax
je 0x660a30
mov eax, dword [sym.imp.libpcaewin.dll_M_XPOS]
mov edx, dword [eax]
cmp dword [esp + 0x38], edx
jl 0x660c4b
cmp dword [esp + 0x3c], edx
jle 0x66145b
mov ebx, 1
mov edi, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
lea esi, [esi]
lea esi, [esi]
call edi
mov eax, dword [esi]
test eax, eax
jne 0x660c60
test ebx, ebx
je 0x660d19
xor ebx, ebx
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call dword [sym.imp.libpcaewin.dll_Restore_Screen_Rectangle]
mov eax, dword [esp + 0xac]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
call eax
call dword [sym.imp.libpcaewin.dll_Push_Mouse_Move_Restriction]
call dword [sym.imp.libpcaewin.dll_Restore_Mouse_Position]
add esp, 0xec
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.libpcaewin.dll_getkey]
mov eax, dword [esp + 0xc4]
cmp eax, 0x148
je 0x6612a8
cmp eax, 0x150
je 0x6611a8
cmp eax, 0xd
jne 0x660c70
mov ebx, 1
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x74]
mov eax, dword [eax + 0x24]
mov dword [eax], esi
jmp 0x660c72
mov eax, dword [0x8dcfec]
mov dword [esp], eax
call ebp
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
lea eax, [edx - 1]
lea ebx, [esi - 0xf]
mov dword [esp + 0xc], eax
lea eax, [esi - 1]
mov dword [esp + 8], eax
lea eax, [ecx + 1]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], ebx
call eax
mov eax, dword [0x75e918]
mov dword [esp], eax
call ebp
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x38], esi
lea esi, [esi - 3]
mov dword [esp + 0x14], 2
mov eax, ecx
mov dword [esp + 0x10], 0x75e8fc
add eax, 0xf
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, ecx
add eax, 3
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x75e8e0
lea eax, [edx - 3]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
lea eax, [edx - 0xf]
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call edx
mov eax, dword [0x8dcfe4]
mov dword [esp], eax
call ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
lea edx, [eax + 0x10]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], edx
sub eax, 0x10
mov dword [esp + 0x58], edx
mov dword [esp + 0xc], eax
lea eax, [ecx - 5]
mov dword [esp + 8], eax
lea eax, [ecx - 0xd]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
call eax
mov eax, dword [0x8dcfec]
mov dword [esp], eax
call ebp
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov eax, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], edx
add ecx, edx
mov dword [esp + 0x88], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x58], ecx
call eax
mov eax, dword [0x75e918]
mov dword [esp], eax
call ebp
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x58]
mov dword [esp], ebx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x54], edx
call edi
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esp + 8], esi
mov dword [esp], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
call edi
mov edx, dword [esp + 0x54]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 4], edx
call edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ecx
call edi
jmp 0x660c17
mov edi, dword [esp + 0x90]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
mov ebx, dword [sym.imp.libpcaewin.dll_Nearest_RGB_Color]
mov dword [esp], 0xeb
mov dword [0x75e918], eax
mov dword [esp + 8], 0xff
mov dword [esp + 4], 0xff
call ebx
mov dword [esp + 8], 0x96
mov dword [0x8dcfec], eax
mov dword [esp + 4], 0x50
mov dword [esp], 0
call edi
mov dword [esp + 8], 0xed
mov dword [0x8dcfe8], eax
mov dword [esp + 4], 0xed
mov dword [esp], 0xc9
call ebx
mov dword [0x8dcfe4], eax
jmp 0x660a9d
lea edx, [ebx - 0x1e]
cmp ecx, edx
jge 0x661021
mov eax, ebx
sub eax, ecx
sub eax, 0xd
mov dword [esp + 0x28], eax
jmp 0x66081a
mov ebx, dword [sym.imp.libpcaewin.dll_M_SCROLL]
mov eax, dword [ebx]
test eax, eax
jne 0x6612b4
mov esi, dword [esp + 0x40]
test esi, esi
je 0x660f9f
mov eax, dword [esp + 0x94]
cmp edx, eax
jge 0x66147c
mov edi, dword [esp + 0x28]
mov eax, ecx
mov ebx, dword [esp + 0x50]
sub eax, edi
lea ecx, [eax - 2]
mov eax, 0x4ec4ec4f
imul ecx
sar ecx, 0x1f
xor eax, eax
sar edx, 2
sub edx, ecx
mov ecx, dword [esp + 0x70]
lea esi, [edx + ebx]
test esi, esi
cmovns eax, esi
mov esi, eax
lea eax, [ecx - 1]
cmp ecx, esi
cmovg eax, esi
mov esi, eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
lea eax, [eax + ebx*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, esi
sub eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 8]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
jmp 0x661285
cmp ebx, eax
jle 0x661390
lea ecx, [ebx - 0x30]
mov eax, 0x4ec4ec4f
imul ecx
sar ecx, 0x1f
sar edx, 2
sub edx, ecx
lea esi, [edx + edx]
mov dword [esp + 0x48], edx
lea eax, [esi + edx]
lea eax, [edx + eax*4 + 6]
mov ecx, eax
mov dword [esp + 0x64], eax
mov eax, ebx
sub eax, ecx
sub eax, 0xd
mov dword [esp + 0x28], eax
mov eax, dword [sym.imp.libpcaewin.dll_Nearest_Color_Index]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xff
mov dword [esp + 0x90], eax
call eax
mov ebp, dword [sym.imp.libpcaewin.dll_pxFgc]
mov dword [esp], eax
call ebp
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0x75e91c
add ecx, eax
lea eax, [ebx + 1]
sub ebx, 9
mov dword [esp + 0xc], eax
lea eax, [ecx - 4]
lea edi, [ecx - 0xe]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.libpcaewin.dll_pxMask]
mov dword [esp + 0x94], edi
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x7c], eax
call eax
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x48]
mov eax, dword [eax + 0x24]
mov ebx, dword [eax]
mov dword [esp + 0x74], ebx
cmp edx, edi
jle 0x661b55
fnstcw word [esp + 0x9e]
mov eax, dword [esp + 0x64]
lea ecx, [eax - 0x20]
mov eax, edi
imul eax, ecx
cdq
idiv dword [esp + 0x70]
mov edx, 6
cmp eax, edx
cmovge edx, eax
mov eax, edi
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
sub edx, edi
mov edi, dword [esp + 0x40]
sub ecx, edi
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
mov ecx, eax
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
shr ecx, 0x1f
add ecx, eax
mov eax, ebx
sar ecx, 1
fdivp st(1)
sub eax, ecx
mov ecx, 0
cmovs eax, ecx
cmp eax, edx
cmovle edx, eax
movzx eax, word [esp + 0x9e]
mov dword [esp + 0x30], edx
sub ebx, edx
or ah, 0xc
mov word [esp + 0x9c], ax
mov edi, ebx
lea ebx, [edx*8]
mov dword [esp + 0x50], edx
fst qword [esp + 0x80]
fild dword [esp + 0x30]
fmulp st(1)
fadd dword [0x7ae4b4]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x6c]
fldcw word [esp + 0x9e]
jmp 0x6608d2
mov eax, dword [esp + 0x74]
add eax, 1
fnstcw word [esp + 0x9e]
xor edx, edx
mov esi, dword [esp + 0x70]
test eax, eax
mov ecx, edx
mov edi, dword [esp + 0x48]
cmovns ecx, eax
lea eax, [esi - 1]
mov dword [esp + 0x10], edi
mov edx, ecx
cmp esi, ecx
mov ecx, eax
cmovg ecx, edx
mov edx, dword [esp + 0x50]
lea eax, [edx + edi]
mov dword [esp + 0x74], ecx
cmp eax, ecx
setle al
movzx eax, al
add edx, eax
xor eax, eax
cmp ecx, edx
setl al
sub edx, eax
mov eax, 0
cmovns eax, edx
mov edx, esi
sub edx, edi
cmp eax, edx
cmovle edx, eax
movzx eax, word [esp + 0x9e]
or ah, 0xc
mov dword [esp + 0x4c], edx
fild dword [esp + 0x4c]
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x68]
fmul qword [esp + 0x80]
fadd dword [0x7ae4b4]
mov dword [esp + 0x50], edx
lea eax, [eax + edx*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x4c]
fldcw word [esp + 0x9e]
mov dword [esp + 0x14], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], ebx
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
call fcn.0065f520
mov esi, dword [sym.imp.libpcaewin.dll_M_LEFT]
mov eax, dword [esi]
jmp 0x660c2c
mov eax, dword [esp + 0x74]
sub eax, 1
jmp 0x6611af
mov edi, dword [esp + 0x40]
test edi, edi
je 0x66137d
test eax, eax
js 0x6613c2
mov esi, dword [esp + 0x50]
test esi, esi
je 0x661560
fnstcw word [esp + 0x9e]
lea eax, [esi - 1]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
movzx edx, word [esp + 0x9e]
fmul qword [esp + 0x80]
lea ecx, [edi + eax*8]
mov dword [esp + 0x50], eax
fadd dword [0x7ae4b4]
mov edi, dword [esp + 0x74]
or dh, 0xc
mov word [esp + 0x9c], dx
lea eax, [edi - 1]
mov edx, edi
mov dword [esp + 0x74], eax
sub edx, esi
fldcw word [esp + 0x9c]
fistp dword [esp + 0x6c]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov esi, dword [sym.imp.libpcaewin.dll_M_LEFT]
mov dword [ebx], 0
mov eax, dword [esi]
jmp 0x660c2c
lea ecx, [eax - 0x30]
mov eax, 0x4ec4ec4f
imul ecx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
lea esi, [edx + edx]
mov dword [esp + 0x48], edx
lea eax, [esi + edx]
lea eax, [edx + eax*4 + 6]
mov dword [esp + 0x64], eax
lea eax, [ebx + 5]
mov dword [esp + 0x28], eax
jmp 0x66105a
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
sub eax, esi
mov esi, dword [esp + 0x50]
cmp esi, eax
jge 0x6613e0
add esi, 1
add dword [esp + 0x74], 1
mov dword [esp + 0x50], esi
fnstcw word [esp + 0x9e]
mov esi, dword [esp + 0x50]
movzx eax, word [esp + 0x9e]
mov dword [esp + 0x4c], esi
fild dword [esp + 0x4c]
fmul qword [esp + 0x80]
or ah, 0xc
fadd dword [0x7ae4b4]
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x68]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x4c]
fldcw word [esp + 0x9e]
lea eax, [eax + esi*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], edi
sub eax, esi
mov dword [esp + 0xc], eax
jmp 0x661352
mov eax, dword [sym.imp.libpcaewin.dll_M_YPOS]
mov edi, dword [esp + 0x28]
mov eax, dword [eax]
cmp dword [esp + 0x34], eax
setl bl
cmp eax, edi
setl al
or ebx, eax
movzx ebx, bl
jmp 0x660c50
mov esi, dword [sym.imp.libpcaewin.dll_M_LEFT]
mov ebx, dword [esi]
test ebx, ebx
je 0x660a30
mov eax, dword [esp + 0x38]
sub eax, 3
cmp edx, eax
jge 0x660c3b
mov eax, dword [esp + 0x28]
add eax, 0xe
cmp ecx, eax
jle 0x661575
mov ebx, dword [esp + 0x34]
lea eax, [ebx - 0xe]
cmp ecx, eax
jl 0x6614c0
lea eax, [ebx - 3]
cmp ecx, eax
jl 0x661a08
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x6c]
lea eax, [eax + ebx + 0x10]
cmp ecx, eax
jge 0x6617a2
mov ebx, dword [esp + 0x50]
sub dword [esp + 0x74], ebx
xor edx, edx
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x10], ebx
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov eax, dword [esi]
mov dword [esp + 0x50], eax
test eax, eax
je 0x66187e
mov ebx, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
call ebx
mov eax, dword [esi]
test eax, eax
jne 0x661541
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], 0
jmp 0x660a30
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], 0
jmp 0x661332
mov edx, dword [esp + 0x50]
mov edi, dword [sym.imp.libpcaewin.dll_DTESleep]
mov ebx, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x54], edx
mov ecx, edx
jmp 0x66165c
fnstcw word [esp + 0x9e]
sub ecx, 1
lea edx, [eax - 1]
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
movzx ecx, word [esp + 0x9e]
fmul qword [esp + 0x80]
mov dword [esp + 0x4c], edx
fadd dword [0x7ae4b4]
mov edx, dword [esp + 0x68]
or ch, 0xc
mov word [esp + 0x9c], cx
mov ecx, dword [esp + 0x50]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x6c]
fldcw word [esp + 0x9e]
lea ecx, [edx + ecx*8]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x54]
sub eax, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov dword [esp], 0x64
call edi
call ebx
mov edx, dword [esi]
mov eax, dword [esp + 0x4c]
test edx, edx
je 0x661799
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], ecx
test ecx, ecx
jne 0x661594
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov dword [esp], 0x64
call edi
call ebx
mov eax, dword [esi]
test eax, eax
jne 0x661668
jmp 0x661549
fnstcw word [esp + 0x9e]
lea ecx, [edx + 1]
lea ebx, [eax + 1]
sub eax, edx
mov dword [esp + 0x4c], ecx
fild dword [esp + 0x4c]
movzx ecx, word [esp + 0x9e]
fmul qword [esp + 0x80]
mov dword [esp + 0x54], ebx
fadd dword [0x7ae4b4]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xc], eax
or ch, 0xc
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov word [esp + 0x9c], cx
mov ecx, dword [esp + 0x4c]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x6c]
fldcw word [esp + 0x9e]
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov dword [esp], 0x64
call edi
mov eax, dword [esp + 0x58]
call eax
mov eax, dword [esi]
test eax, eax
jne 0x661b48
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x74], eax
jmp 0x660a30
mov ebx, dword [esp + 0x40]
add eax, ebx
cmp ecx, eax
jle 0x661889
fnstcw word [esp + 0x9e]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x50]
sub edi, edx
mov dword [esp + 0x10], edx
mov eax, edi
mov dword [esp + 0x4c], edi
fild dword [esp + 0x4c]
sub eax, ebx
fmul qword [esp + 0x80]
add dword [esp + 0x74], eax
movzx eax, word [esp + 0x9e]
fadd dword [0x7ae4b4]
mov ebx, dword [esp + 0x74]
or ah, 0xc
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x68]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x4c]
fldcw word [esp + 0x9e]
lea eax, [eax + edi*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
call fcn.0065f520
mov eax, dword [esi]
test eax, eax
je 0x661875
mov ebx, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
call ebx
mov eax, dword [esi]
test eax, eax
jne 0x66186d
mov dword [esp + 0x50], edi
jmp 0x660a30
xor edx, edx
mov dword [esp + 0x6c], edx
jmp 0x660a30
fld qword [esp + 0x80]
fdivr dword [0x7ae4b8]
mov dword [esp + 0x54], ebp
mov ebp, ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov ebx, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
sub eax, edx
mov dword [esp + 0x88], eax
fstp qword [esp + 0x58]
mov eax, dword [sym.imp.libpcaewin.dll_M_YPOS]
mov eax, dword [eax]
cmp ebp, eax
je 0x6619ef
fnstcw word [esp + 0x9e]
mov edi, dword [esp + 0x6c]
xor edx, edx
add eax, edi
mov edi, dword [esp + 0x88]
sub eax, ebp
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x9e]
fild dword [esp + 0x50]
fld dword [0x7ae4b4]
or ah, 0xc
mov word [esp + 0x9c], ax
fsub st(1), st(0)
fxch st(1)
fmul qword [esp + 0x58]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x50]
fldcw word [esp + 0x9e]
mov eax, dword [esp + 0x50]
test eax, eax
cmovs eax, edx
cmp eax, edi
mov edx, eax
cmovg edx, edi
mov dword [esp + 0x98], edx
fild dword [esp + 0x98]
mov ecx, edx
mov eax, edx
fmul qword [esp + 0x80]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x4c]
sub eax, edx
add dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
mov edx, ecx
faddp st(1)
fldcw word [esp + 0x9c]
fistp dword [esp + 0x98]
fldcw word [esp + 0x9e]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x98]
sub eax, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
call ebx
mov eax, dword [esi]
test eax, eax
je 0x6619fb
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov eax, dword [sym.imp.libpcaewin.dll_M_YPOS]
mov eax, dword [eax]
cmp ebp, eax
jne 0x6618d2
call ebx
mov ecx, dword [esi]
test ecx, ecx
jne 0x6618c3
mov dword [esp + 0x6c], edi
mov ebp, dword [esp + 0x54]
jmp 0x660a30
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
mov edi, dword [sym.imp.libpcaewin.dll_DTESleep]
mov edx, dword [esp + 0x50]
sub eax, ebx
mov ebx, dword [sym.imp.libpcaewin.dll_Get_Mouse_Event]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x88]
cmp edx, ecx
jl 0x6616d1
fnstcw word [esp + 0x9e]
mov ecx, eax
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x4c], edx
fild dword [esp + 0x4c]
sub ecx, edx
movzx eax, word [esp + 0x9e]
fmul qword [esp + 0x80]
mov dword [esp + 0x50], edx
fadd dword [0x7ae4b4]
mov dword [esp + 0x54], ecx
or ah, 0xc
mov dword [esp + 0xc], ecx
mov word [esp + 0x9c], ax
mov eax, dword [esp + 0x68]
fldcw word [esp + 0x9c]
fistp dword [esp + 0x6c]
fldcw word [esp + 0x9e]
lea eax, [eax + edx*8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
jmp 0x661af0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0065f520
mov dword [esp], 0x64
call edi
call ebx
mov eax, dword [esi]
test eax, eax
jne 0x661ac8
mov eax, dword [esp + 0x74]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
jmp 0x66178d
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
jmp 0x661a31
xor eax, eax
fldz
mov edi, dword [esp + 0x74]
xor ebx, ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], eax
fstp qword [esp + 0x80]
jmp 0x6608d2