Function at 0x660204e1
Capabilities:
Hide graphical window
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
and dword [ebp - 4], 0
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
je 0x6603d663
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 4], ecx
mov ebx, dword [ebp + 0x10]
mov edi, dword [sym.imp.USER32.dll_IsIconic]
cmp ebx, 0x20
mov eax, 0x86
mov edx, 0x112
jbe 0x66020579
cmp ebx, 0x37
jbe 0x6602079b
cmp ebx, 0x53
jbe 0x660207db
cmp ebx, eax
jbe 0x6602082d
cmp ebx, edx
jbe 0x6603db17
mov eax, 0x11f
cmp ebx, eax
jbe 0x6603db61
mov eax, 0x201
cmp ebx, eax
jbe 0x6603dc6b
mov eax, 0x1000
cmp ebx, eax
ja 0x660208c6
je 0x66020861
cmp ebx, 0x222
jne 0x660205ac
jmp 0x6603e061
cmp ebx, 0x20
je 0x6603d8c5
cmp ebx, 7
jbe 0x66020603
mov eax, ebx
sub eax, 0xf
je 0x6602076c
dec eax
je 0x6603d8a2
sub eax, 4
je 0x66020753
dec eax
je 0x6603d83f
mov ebx, dword [ebp + 0x10]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push esi
call fcn.66020b87
cmp ebx, 5
mov edi, eax
jbe 0x66020a8a
cmp ebx, 0xc
je 0x6603e2f7
cmp ebx, 0x18
je 0x66020b65
cmp ebx, 0x30
je 0x66020b4b
cmp ebx, 0x81
je 0x66020b2f
cmp ebx, 0x84
ja 0x66020b16
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0x14
je 0x66020722
mov eax, ebx
dec eax
je 0x660206d6
dec eax
je 0x660206c8
sub eax, 3
je 0x6602065d
dec eax
jne case.0x6603dec7.292
mov ecx, dword [ecx + 0x520]
test ecx, ecx
je 0x6602063c
xor eax, eax
push 2
cmp word [ebp + 0x14], ax
setne al
push eax
call fcn.660114b3
cmp word [ebp + 0x14], 0
push 0
je 0x66020650
push dword [ebp + 0xc]
push esi
call fcn.66023a89
jmp 0x660205fc
push 0
push esi
call fcn.6602ad82
jmp 0x66020764
cmp dword [ebp + 0x14], 1
je 0x6603d679
mov eax, dword [esi + 0x30]
test byte [eax + 0x28], 0x80
jne 0x6603d69a
mov eax, dword [esi + 0x128]
test eax, eax
jne 0x6603d6cb
test byte [esi + 0x100], 0x40
je 0x6603d6f9
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x660205ac
push dword [ebp + 0xc]
call fcn.66022b0d
mov edx, dword [esi + 0x138]
lea ecx, [esi + 0x138]
and eax, 3
and dx, 0xfe7f
shl eax, 7
or edx, eax
mov dword [ecx], edx
jmp 0x660205ac
push dword [ebp + 0xc]
push esi
call fcn.6602bb50
jmp 0x660205ac
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
jne 0x660206f6
push 0
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetSystemMenu]
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0x37], 0x11
je 0x6603d716
cmp dword [0x6610f7e8], 0
jne 0x6603d7d9
push 0xffffffffffffffff
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_SetWindowContextHelpId]
jmp 0x660205ac
cmp dword [ebp + 0xc], 0
je 0x66020735
push dword [ebp + 0xc]
call edi
test eax, eax
jne 0x6602085a
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0x37], 0x11
je 0x6603d822
push esi
call fcn.66023adc
test eax, eax
jne 0x66020764
jmp case.0x6603dec7.292
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x6603d868
push 1
pop eax
jmp 0x660205fc
push dword [ebp + 0xc]
and byte [esi + 0x13b], 0xf7
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x6603d8ad
push 0
push 0
push 0x16
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push esi
call fcn.66026fc8
jmp 0x6602085a
je 0x6603d9ed
mov eax, ebx
sub eax, 0x21
je 0x6603d98c
dec eax
je 0x6603d9ab
dec eax
dec eax
jne case.0x6603dec7.292
mov eax, dword [esi + 0x30]
mov esi, dword [ebp + 0x18]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
jne 0x6603d978
and dword [esi + 0x18], 0
and dword [esi + 0x1c], 0
jmp 0x66020764
je 0x6603da16
cmp ebx, 0x47
jne case.0x6603dec7.292
push dword [ebp + 0x18]
mov edi, dword [esi + 0x30]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push esi
call fcn.66020b87
test byte [edi + 0x22], 8
mov ebx, eax
je 0x66020826
mov eax, dword [esi + 0x30]
test byte [eax + 0x20], 0x10
jne 0x66020826
push 0xfffffffffffffff0
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x21000000
jne 0x66020826
push esi
call fcn.66024148
mov eax, ebx
jmp 0x660205fc
je 0x66020846
cmp ebx, 0x82
jne case.0x6603dec7.292
push esi
call fcn.6602bb83
jmp 0x660205ac
push dword [ebp + 0x14]
push esi
push dword [ebp + 0xc]
call fcn.6602391a
test eax, eax
je case.0x6603dec7.292
xor eax, eax
jmp 0x660205fc
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0x37], 0x11
je 0x66020872
push esi
call fcn.660218ad
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x10]
test byte [ecx + 0x3c], 1
je 0x66020888
and byte [esi + 0x139], 0xfd
mov ecx, dword [esi + 0x138]
shr ecx, 9
and ecx, 1
push ecx
push eax
call fcn.6602196c
test eax, eax
jne 0x660205fc
mov eax, dword [esi + 0x138]
mov ecx, eax
and eax, 0x200
and ecx, 0xfeffffff
shl eax, 0xf
or ecx, eax
mov dword [esi + 0x138], ecx
jmp 0x660205ac
mov eax, 0x100e
cmp ebx, eax
jbe 0x6602096b
mov eax, 0x1032
cmp ebx, eax
jbe 0x660209e6
mov eax, 0x104b
cmp ebx, eax
jbe 0x6603e045
mov edi, 0x105a
cmp ebx, edi
jbe 0x66020a29
mov eax, ebx
sub eax, 0x105b
je 0x6603e3ae
dec eax
je 0x66020a3a
dec eax
jne 0x6603e159
mov eax, dword [esi + 0x30]
test byte [eax + 0x20], 0x10
jne 0x6603e230
cmp dword [ebp + 0x14], 0
je 0x6603e21b
or byte [esi + 0x13b], 8
lea eax, [esi + 0x138]
mov eax, dword [esi + 0x138]
not eax
shr eax, 0x1a
and eax, 1
push eax
push esi
call fcn.66023706
push dword [ebp + 0xc]
push esi
call fcn.66022e54
test eax, eax
jne 0x6603e226
and byte [esi + 0x13b], 0xfb
jmp 0x6602085a
jne 0x66020986
mov eax, dword [ebp + 0x14]
sub eax, 3
je 0x6603dd83
dec eax
dec eax
je 0x6603dd4c
jmp case.0x6603dec7.292
cmp ebx, 0x1001
jne case.0x6603dec7.292
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
jne 0x6603dd2f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x38]
neg eax
sbb eax, eax
neg eax
push eax
push esi
call fcn.660224e3
mov eax, dword [esi + 0x128]
test eax, eax
jne 0x6603dd3d
cmp dword [esi + 0x134], 0
lea eax, [esi + 0x134]
je case.0x6603dec7.292
push eax
push esi
call fcn.660225e0
jmp 0x660205ac
je 0x6603dfce
cmp ebx, 0x1011
jne case.0x6603dec7.292
mov eax, dword [ebp + 0x14]
mov ecx, 0x105
cmp eax, ecx
jbe 0x6603dda5
mov ecx, 0x10b
cmp eax, ecx
ja 0x6603de11
jne 0x6603dde7
push dword [ebp + 0x18]
push esi
call fcn.66023510
jmp 0x660205fc
jne 0x6603e0b7
push esi
call fcn.66027fde
jmp 0x6602085a
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x58]
test byte [ecx + 0x99], 0x10
jne 0x6603e249
mov eax, dword [esi + 0x180]
lea edi, [esi + 0x180]
test eax, eax
jne 0x6603e289
mov ecx, esi
call fcn.6602bd2e
mov eax, dword [esi + 0x15c]
test eax, eax
je case.0x6603dec7.292
push eax
push 0
push dword [0x6610f6c0]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp case.0x6603dec7.292
je 0x66020aa1
mov eax, ebx
dec eax
dec eax
jne 0x660205fa
push esi
call fcn.6601f911
jmp 0x660205fa
mov eax, dword [esi + 0x30]
add eax, 0x1c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
cmp dword [ebp + 0x14], 1
je 0x660205fa
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov al, byte [eax + 0x37]
cmp al, 0x1d
je 0x6603e2b4
cmp al, 0x1e
je 0x6603e2b4
cmp al, 0x1f
je 0x6603e2b4
xor ebx, ebx
cmp dword [0x661105fc], ebx
jne 0x6603e298
push ebx
push 7
push esi
call fcn.66022e97
cmp dword [0x661105fc], ebx
jne 0x6603e2a6
push dword [ebp + 0xc]
push esi
call fcn.66022e54
test eax, eax
jne 0x660205fa
push esi
call fcn.6602419c
jmp 0x660205fa
cmp ebx, 0x86
jbe 0x66020b75
cmp ebx, 0x112
jne 0x660205fa
jmp 0x6603e2ca
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x20]
mov eax, 0xc00000
mov edx, ecx
and edx, eax
cmp edx, eax
je 0x660205fa
jmp 0x6603e2d8
cmp dword [ebp + 0x14], 0
je 0x660205fa
push 0xfffffd41
push esi
call fcn.6602184b
jmp 0x660205fa
cmp word [ebp + 0x18], 3
jne 0x660205fa
jmp 0x6603e2e9
cmp dword [0x6610f6dc], 0
jne 0x660205fa
jmp 0x6603e386
lea eax, [ebp - 4]
mov ecx, 0x6610f470
push eax
call fcn.6600381b
mov ecx, dword [ebp - 4]
jmp 0x66020505
push dword [ebp + 0xc]
call edi
test eax, eax
jne 0x66020667
push dword [ebp - 4]
call fcn.66023a32
mov eax, dword [esi + 0x30]
or byte [eax + 0x28], 0x80
jmp 0x66020674
cmp dword [ebp + 0x14], 2
je 0x6603d6aa
cmp dword [ebp + 0x14], 0
jne 0x66020674
push esi
call fcn.66081257
mov eax, dword [esi + 0x30]
push 0
add eax, 0x1c
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [esi + 0x30]
and byte [eax + 0x28], 0x7f
jmp 0x66020674
mov ecx, dword [eax]
lea edx, [ebp + 0x10]
push edx
push eax
call dword [ecx + 0x40]
test eax, eax
jl 0x66020682
test byte [ebp + 0x10], 1
je 0x66020682
push 1
push 0
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x66020682
mov eax, dword [ebp + 0x18]
shr eax, 0x10
movsx eax, ax
push eax
movsx eax, word [ebp + 0x18]
push eax
push dword [ebp + 0x14]
push esi
call fcn.6607542e
jmp 0x6602068f
mov edi, 0x46000001
call dword [sym.imp.USER32.dll_CreateMenu]
test byte [esi + 0x18c], 1
mov dword [esi + 0x198], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0x8000
je 0x6603d73f
mov edi, 0x46300001
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push dword [0x6610f6c8]
sub eax, dword [ebp - 0x18]
push 0xcac
push dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
push eax
mov eax, dword [esi + 0x24]
push dword [ebp - 0x18]
shr eax, 1
push dword [ebp - 0x1c]
and eax, 1
shl eax, 9
push edi
push 0
push 0x66050da8
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [esi + 0x30]
test eax, eax
mov edx, dword [ecx + 0x2c]
mov dword [edx + 0x3c], eax
jne 0x6603d7a1
or eax, 0xffffffff
jmp 0x660205fc
mov dword [ecx + 0x44], eax
push dword [ecx + 0x2c]
call fcn.66095462
mov eax, dword [esi + 0x30]
push 5
mov eax, dword [eax + 0x2c]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push esi
call fcn.66092956
test eax, eax
jne 0x66020705
push 7
call fcn.6607299a
jmp 0x66020705
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
test byte [eax + 3], 8
je 0x66020712
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
je 0x66020712
mov eax, dword [esi + 0x24]
test eax, 0x20000000
je 0x66020712
shr eax, 0x1d
and eax, 1
push 0x3000
push eax
push dword [ebp + 0xc]
call fcn.6607a879
jmp 0x66020712
mov eax, dword [esi + 0x18c]
lea ecx, [esi + 0x18c]
test al, 0x10
je 0x66020744
and al, 0xef
mov dword [ecx], eax
jmp 0x6602085a
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push 5
push dword [ebp + 0xc]
call edi
mov ebx, eax
test ebx, ebx
je case.0x6603dec7.292
push 0
push 0
push 0x15
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
push 2
push ebx
jmp 0x6603d84a
mov esi, dword [esi + 0x30]
mov eax, dword [esi + 0x58]
test byte [eax + 0x99], 0x10
je 0x6603d88d
mov eax, dword [esi + 0x2c]
push dword [ebp + 0x14]
push dword [eax + 0x34]
push dword [eax + 0x3c]
call fcn.6607b21b
jmp 0x66020764
push 0
push dword [ebp + 0x14]
push 0x27
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_DefWindowProcA]
jmp 0x660205fc
push esi
call fcn.660715fb
jmp 0x66020852
cmp dword [ebp + 0x14], 0
jne 0x66020784
push dword [ebp + 0xc]
push esi
call fcn.66071614
jmp 0x660205fc
cmp dword [ebp + 0x18], 0x201fffe
jne case.0x6603dec7.292
push 5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push eax
call edi
mov ebx, eax
test ebx, ebx
mov dword [ebp + 8], ebx
je 0x6603d919
push 0xffffffffffffffec
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 8
je 0x6603d8fe
push 2
push ebx
jmp 0x6603d8e1
test ebx, ebx
je 0x6603d919
push ebx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x6603d919
push 2
push ebx
call edi
mov ebx, eax
mov dword [ebp + 8], ebx
jmp 0x6603d8fe
push 0
push ebx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
call fcn.66018332
cmp ebx, eax
je case.0x6603dec7.292
push 2
push dword [ebp + 8]
call edi
test eax, eax
mov dword [ebp + 8], eax
je 0x6603d960
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
call fcn.66018332
cmp ebx, eax
jne 0x6603d931
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x6603d931
cmp dword [ebp + 8], 0
je case.0x6603dec7.292
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x6602085a
push esi
push dword [ebp + 0x14]
push 0x24
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_DefMDIChildProcA]
jmp 0x660207d1
mov eax, dword [ecx + 0x520]
test eax, eax
je 0x6603d9ab
cmp dword [eax + 0x18], 0
je 0x6603d9ab
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
push 4
jmp 0x66020766
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
je case.0x6603dec7.292
mov edi, 0x105a
push 2
push edi
push edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne case.0x6603dec7.292
push eax
push eax
push edi
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x660205ac
push dword [esi + 0x134]
call fcn.660cf51b
test eax, eax
jne 0x660205fc
push eax
push dword [esi + 0x28]
call fcn.660cf5bb
test eax, eax
jne 0x660205fc
jmp case.0x6603dec7.292
mov eax, dword [esi + 0x28]
xor ebx, ebx
mov eax, dword [eax]
cmp byte [eax + 0x37], 0x1d
jne 0x6603da3b
mov eax, dword [esi + 0x194]
lea ecx, [esi + 0x194]
mov ebx, eax
shr ebx, 6
and ebx, 1
and al, 0xbf
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
cmp dword [eax + 4], 1
jne 0x6603da7f
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and eax, 1
mov dword [ebp + 8], eax
je 0x6603da8c
xor eax, eax
push eax
push eax
push eax
mov eax, dword [ebp + 0x18]
push dword [eax + 0x18]
push dword [eax + 0x14]
call fcn.6606f6fe
mov edi, eax
mov eax, dword [esi + 0x30]
push edi
push dword [eax + 0xa0]
call fcn.6607136a
test eax, eax
jne 0x6603da9e
test ebx, ebx
jne 0x66020764
jmp case.0x6603dec7.292
mov eax, dword [ebp + 0x18]
push 0
push dword [esi + 0x30]
push dword [eax + 0xc]
call fcn.66023cd5
jmp 0x6603da6a
test edi, edi
je 0x66020764
cmp dword [edi + 0xa0], 0
jne 0x6603dac9
push edi
call fcn.6602aa10
mov edi, eax
test edi, edi
je 0x66020764
cmp esi, edi
je 0x66020764
jmp 0x6603daa6
lea eax, [ebp - 0x158]
push 0x104
push eax
push edi
call fcn.66071dc3
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.6606f538
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
add eax, 0xf
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x158]
push dword [edi + 0xa0]
push 8
push eax
mov eax, dword [ebp + 0x18]
push dword [eax + 0xc]
call fcn.66015e39
jmp 0x66020764
je 0x6603db4c
cmp ebx, 0xa1
jne case.0x6603dec7.292
push esi
call fcn.66071125
test eax, eax
jne 0x6603db42
cmp dword [ebp + 0x14], 2
jne 0x6603db42
push dword [ebp + 0xc]
call edi
test eax, eax
je 0x6602085a
call fcn.6602ada8
jmp 0x660205ac
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push esi
call fcn.66071693
test eax, eax
je 0x6603db42
jmp 0x6602085a
je 0x6603dc47
mov eax, ebx
sub eax, 0x116
je 0x6603ddce
dec eax
jne case.0x6603dec7.292
mov ebx, dword [ebp + 0x14]
cmp ebx, dword [esi + 0x150]
jne 0x6603db95
push ebx
push dword [ebp + 0xc]
push esi
call fcn.660952bb
jmp 0x660205fc
mov eax, dword [esi + 0x30]
mov edx, dword [ebp + 0xc]
mov eax, dword [eax + 0x2c]
cmp edx, dword [eax + 0x38]
jne 0x6603dbd6
push dword [eax + 0x3c]
call fcn.6606ea97
mov edi, eax
test edi, edi
je 0x6603dbd3
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x6603dbd3
cmp ebx, dword [edi + 0x150]
jne 0x6603dbd3
push ebx
push dword [edi + 0x3c]
push edi
jmp 0x6603db8b
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x508], 0
je case.0x6603dec7.292
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
cmp dword [eax + 0x34], 0
je case.0x6603dec7.292
push dword [ebp + 0x14]
push esi
call fcn.66092b08
test eax, eax
jne 0x6603dc23
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x50c]
test ecx, ecx
je 0x6603dc1b
push dword [ebp + 0x14]
push 0x66092a9b
push ecx
call fcn.66092f90
test eax, eax
je case.0x6603dec7.292
test byte [eax + 0xd0], 0x20
je case.0x6603dec7.292
push dword [ebp + 0x14]
push eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
push dword [eax + 0x34]
call fcn.660c07a7
jmp case.0x6603dec7.292
and dword [ecx + 0xe4], 0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
mov dword [eax + 0x504], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
mov dword [eax + 0x500], ecx
jmp 0x660205ac
je 0x6603db42
cmp ebx, 0x120
jne case.0x6603dec7.292
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x58]
test byte [ecx + 0x99], 0x10
jne 0x6603dca7
mov ecx, dword [eax + 0x2c]
cmp esi, dword [ecx + 0x34]
jne 0x6603dc9a
cmp byte [ebp + 0x14], 0x2d
je 0x6603dca7
mov ecx, dword [ebp + 0x14]
shr ecx, 0x10
cmp cx, 0x2000
je 0x6603dcfa
mov eax, dword [eax + 0x2c]
cmp esi, dword [eax + 0x34]
jne case.0x6603dec7.292
cmp byte [ebp + 0x14], 0x2d
jne case.0x6603dec7.292
push dword [eax + 0x3c]
call fcn.6606ea97
mov edi, eax
test edi, edi
je 0x6603dd04
mov eax, dword [edi + 0x3c]
test eax, eax
je case.0x6603dec7.292
test edi, edi
jne 0x6603dd26
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x80000
jne 0x6603dd1e
mov eax, dword [ebp + 0x14]
shr eax, 0x10
cmp ax, 0x2000
jne case.0x6603dec7.292
mov eax, 0x10000
jmp 0x660205fc
mov eax, dword [esi + 0x30]
push 0
push 0
push 0x229
mov eax, dword [eax + 0x2c]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x6603dcce
test edi, edi
je case.0x6603dec7.292
test byte [edi + 0x138], 2
jmp 0x6603dcf4
push dword [ebp + 0xc]
push esi
call fcn.6602404d
jmp 0x660209a5
push eax
push esi
push dword [ebp + 0xc]
call fcn.660cf3bc
jmp 0x660209c7
lea eax, [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 5
push esi
mov dword [ebp + 0xc], edi
call fcn.66022e97
cmp eax, 0x9c68
je 0x6603dd74
cmp word [ebp + 0xc], di
je 0x66020764
push edi
push dword [ebp + 0x18]
push esi
call fcn.6609502b
jmp 0x6602085a
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 3
push esi
call fcn.66022e97
neg eax
sbb eax, eax
inc eax
jmp 0x660205fc
je 0x6603ddd9
sub eax, 3
je 0x6603ddce
dec eax
jne case.0x6603dec7.292
push dword [ebp + 0xc]
call fcn.66022b0d
test ax, ax
je case.0x6603dec7.292
mov eax, 0x180
jmp 0x660205fc
push esi
call fcn.6609548a
jmp 0x660205ac
push dword [ebp + 0x18]
push esi
call fcn.66087213
jmp 0x660205fc
cmp eax, 0x107
jne case.0x6603dec7.292
push dword [ebp + 0x18]
or byte [esi + 0x13b], 0x10
lea edi, [esi + 0x138]
push esi
call fcn.66083efa
and byte [edi + 3], 0xef
jmp 0x660205fc
mov ecx, 0x120
cmp eax, ecx
ja 0x6603dea1
je 0x6603de5c
sub eax, 0x10c
je 0x6603de4e
dec eax
je 0x6603de40
dec eax
dec eax
jne case.0x6603dec7.292
push dword [ebp + 0x18]
push esi
call fcn.66093e27
jmp 0x660205fc
push dword [ebp + 0x18]
push esi
call fcn.660784be
jmp 0x660205fc
push dword [ebp + 0x18]
push esi
call fcn.660786e9
jmp 0x660205fc
mov eax, dword [ebp + 0x18]
push ecx
fld dword [eax + 0x20]
fstp dword [esp]
fld dword [eax + 0x1c]
push ecx
fstp dword [esp]
fld dword [eax + 0x18]
push ecx
fstp dword [esp]
push dword [eax + 0x14]
fld dword [eax + 0x10]
push ecx
fstp dword [esp]
fld dword [eax + 0xc]
push ecx
fstp dword [esp]
fld dword [eax + 8]
mov ax, word [eax + 4]
push ecx
fstp dword [esp]
push eax
push esi
call fcn.6607646c
and eax, 0xffff
jmp 0x660205fc
mov ecx, 0x162
cmp eax, ecx
ja case.0x6603dec7.292
mov eax, dword [ebp + 0x14]
cmp eax, ecx
je 0x6603dfae
add eax, 0xfffffedf
cmp eax, 0xb
ja case.0x6603dec7.292
jmp dword [eax*4 + 0x6603e3d5]
mov eax, dword [ebp + 0x18]
push dword [eax + 0x18]
fld dword [eax + 0x14]
push ecx
fstp dword [esp]
fld dword [eax + 0x10]
push ecx
fstp dword [esp]
fld dword [eax + 0xc]
push ecx
fstp dword [esp]
fld dword [eax + 8]
mov ax, word [eax + 4]
push ecx
fstp dword [esp]
push eax
push esi
call fcn.66076a46
jmp 0x6603de97
mov eax, dword [ebp + 0x18]
push dword [eax + 0x10]
fld dword [eax + 0xc]
push ecx
fstp dword [esp]
fld dword [eax + 8]
mov ax, word [eax + 4]
push ecx
fstp dword [esp]
push eax
push esi
call fcn.66077f4f
jmp 0x6603de97
push esi
call fcn.66076d4d
jmp 0x660205fc
push dword [ebp + 0x18]
push esi
call fcn.66077787
jmp 0x660205fc
push dword [ebp + 0x18]
push esi
call fcn.66077884
jmp 0x660205fc
push dword [ebp + 0x18]
push esi
call fcn.660781be
jmp 0x660205fc
push 1
push dword [ebp + 0x18]
push esi
call fcn.660783c8
jmp 0x660205fc
push 0
jmp 0x6603df58
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x6602085a
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x6602085a
test byte [esi + 0x139], 0x40
je 0x6602085a
mov eax, dword [esi + 0x28]
push 0
push 0xf180
push 0x112
push dword [esi + 0x3c]
mov eax, dword [eax]
push esi
call dword [eax + 0x10]
jmp 0x6602085a
mov eax, dword [esi + 0x30]
push 0
push dword [eax + 0x74]
call fcn.6607a2d5
neg eax
sbb eax, eax
and eax, 0x7ff5fe84
add eax, 0x800a017c
jmp 0x660205fc
mov edi, dword [ebp + 0x18]
mov ebx, dword [sym.imp.GDI32.dll_OffsetWindowOrgEx]
push 0
mov eax, dword [edi + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
neg ecx
neg eax
push ecx
push eax
push dword [ebp + 0x14]
call ebx
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x6603e008
mov eax, dword [edi + 8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
neg edx
neg eax
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
push 0
push dword [edi + 0xc]
push 0x16
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push esi
call fcn.66026fc8
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x6603e031
mov eax, dword [edi + 8]
push dword [eax + 4]
push dword [eax]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edi, dword [edi + 8]
push 0
push dword [edi + 4]
push dword [edi]
push dword [ebp + 0x14]
call ebx
jmp 0x6602085a
je 0x6603e061
cmp ebx, 0x1046
jne case.0x6603dec7.292
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_SetActiveWindow]
jmp 0x660205ac
mov ecx, dword [ecx + 0x520]
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
test ecx, ecx
je 0x6603e080
xor eax, eax
cmp ebx, edi
sete al
push 2
push eax
call fcn.660114b3
cmp dword [ebp + 0x10], 0x104b
je 0x6603e097
xor eax, eax
cmp ebx, edi
sete al
push eax
push esi
call fcn.6602399d
cmp ebx, edi
jne 0x6603e0af
mov eax, dword [esi + 0x30]
add eax, 0x1c
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
push 1
push edi
jmp 0x66020648
push ebx
push 1
jmp 0x66020652
cmp ebx, 0x1056
jne case.0x6603dec7.292
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x58]
test byte [ecx + 0x99], 0x10
je 0x6603e126
mov eax, dword [eax + 0x2c]
mov edi, 0xffbfffff
mov eax, dword [eax + 0x34]
cmp esi, dword [eax + 0x190]
jne 0x6603e109
cmp dword [0x6610f7e8], 0
je 0x6603e109
mov ecx, dword [eax + 0x24]
shr ecx, 0x1d
and ecx, 1
push ecx
push dword [eax + 0x154]
call fcn.660955ae
and dword [esi + 0x138], edi
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x34]
push dword [eax + 0x3c]
call dword [sym.imp.USER32.dll_DrawMenuBar]
and dword [esi + 0x138], edi
jmp 0x6602085a
cmp dword [0x6610f7e8], 0
mov edi, 0xffbfffff
je 0x6603e154
mov eax, dword [esi + 0x154]
test eax, eax
je 0x6603e14e
mov ecx, dword [esi + 0x24]
shr ecx, 0x1d
and ecx, 1
push ecx
push eax
call fcn.660955ae
and dword [esi + 0x138], edi
push dword [ebp + 0xc]
jmp 0x6603e115
sub eax, 0x21
je 0x6603e20a
sub eax, 0xa
je 0x6603e190
dec eax
dec eax
jne case.0x6603dec7.292
push dword [ebp + 0xc]
push esi
call fcn.66022e54
test eax, eax
jne 0x6602085a
push dword [ebp + 0x14]
push dword [ebp + 0x18]
call fcn.660ca68b
jmp 0x660205fc
push dword [ebp + 0xc]
push esi
call fcn.66022e54
test eax, eax
jne 0x6602085a
mov ecx, dword [ebp + 0x14]
test ch, 0x80
je 0x6603e1fd
mov edi, dword [ebp + 0x18]
sub ecx, 0x8006
je 0x6603e1f5
sub ecx, 5
je 0x6603e1ed
dec ecx
jne 0x6603e1c2
push edi
call fcn.660ca0b7
test eax, eax
je 0x6602085a
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [esi + 0x28]
movzx eax, byte [eax + 0xf8]
push eax
push edi
call fcn.66022e97
jmp 0x6602085a
push edi
call fcn.660c9bbd
jmp 0x6603e1c2
push edi
call fcn.660c9d5f
jmp 0x6603e1c2
lea eax, [ebp - 0x54]
push eax
movzx eax, cx
push eax
push dword [ebp + 0x18]
jmp 0x6603e1e3
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x4f8]
jmp 0x660205fc
push esi
call fcn.66071148
jmp 0x6602094e
mov eax, 0x16c
jmp 0x660205fc
mov eax, dword [ebp + 0x14]
neg eax
sbb eax, eax
and eax, 5
push eax
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x6602085a
mov eax, dword [eax + 0x2c]
mov ebx, dword [eax + 0x34]
push ebx
call fcn.6609548a
mov eax, dword [esi + 0x154]
lea edi, [esi + 0x154]
test eax, eax
je 0x6603e26f
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
and dword [edi], 0
cmp dword [ebx + 0x194], esi
lea eax, [ebx + 0x194]
jne 0x66020a4d
and dword [eax], 0
jmp 0x66020a4d
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
and dword [edi], 0
jmp 0x66020a61
mov eax, dword [ebp - 4]
dec dword [eax + 0x3c8]
jmp 0x66020ae5
mov eax, dword [ebp - 4]
inc dword [eax + 0x3c8]
jmp 0x66020afa
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x20]
shr eax, 0x14
test al, 1
je 0x660205fa
jmp 0x66020b0b
push dword [ebp + 0x14]
push esi
call fcn.660716f9
jmp 0x660205fa
push ecx
push 0xfffffffffffffff0
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x660205fa
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x660205fa
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0x37], 0x11
je 0x6603e315
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x58]
test byte [eax + 0x99], 0x10
je 0x66020b75
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x66020b75
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x66020b75
mov eax, dword [esi + 0x30]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x34]
mov ecx, dword [ecx + 0x138]
not ecx
shr ecx, 0x19
and ecx, 1
push ecx
push 0x86
push dword [eax + 0x38]
call ebx
mov eax, dword [esi + 0x30]
push 0
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x34]
mov ecx, dword [ecx + 0x138]
shr ecx, 0x19
and ecx, 1
push ecx
push 0x86
push dword [eax + 0x38]
call ebx
jmp 0x66020b75
test byte [esi + 0x24], 2
je 0x660205fa
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x660205fa
push dword [ebp + 0xc]
call fcn.66071894
jmp 0x660205fa
cmp dword [ecx + 0x514], 0
je 0x6602085a
push dword [ebp + 0x14]
push dword [ebp + 0x18]
call fcn.66092b99
mov eax, dword [ebp - 4]
and dword [eax + 0x514], 0
jmp 0x6602085a