Function at 0x453599
Capabilities:
Check for unmoving mouse cursor
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xf8
push ebx
push esi
xor edx, edx
cmp dword [ebp + 0x7c], edx
mov esi, ecx
push edi
mov dword [ebp + 0x60], esi
jne 0x4535b9
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x7c], eax
mov eax, dword [ebp + 0x74]
lea ecx, [ebp + 0x74]
mov dword [ebp + 0x74], eax
call fcn.00429ef2
mov eax, dword [ebp + 0x74]
lea ecx, [ebp + 0x34]
mov edi, ecx
mov word [ebp + 0x34], dx
mov ebx, eax
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x4c], edi
jmp 0x4535e8
cmp cx, 0x3d
je 0x4535f2
inc eax
inc eax
mov cx, word [eax]
cmp cx, dx
jne 0x4535e0
jmp 0x4535fb
lea edi, [eax + 2]
mov word [eax], dx
mov dword [ebp + 0x4c], edi
push ebx
call fcn.0040a93c
and dword [ebp + 0x2c], 0
cmp byte [esi + 0x4d], 0
pop ecx
jne 0x453624
test byte [esi + 9], 0xf
jne 0x453624
push 1
push 0
lea eax, [ebp + 0x2c]
push eax
push ebx
mov ecx, esi
call fcn.0043dc02
jmp 0x453634
push 1
push 0
lea eax, [ebp + 0x2c]
push eax
push ebx
mov ecx, esi
call fcn.0043cace
lea ecx, [ebp + 0x30]
call fcn.0042460b
cmp byte [esi + 0x4d], 0
jne 0x45365a
test byte [esi + 9], 0xf
jne 0x45365a
push 1
push 0
lea eax, [ebp + 0x30]
push eax
push edi
mov ecx, esi
call fcn.0043dc02
jmp 0x45366a
push 1
push 0
lea eax, [ebp + 0x30]
push eax
push edi
mov ecx, esi
call fcn.0043cace
mov eax, dword [ebp + 0x30]
mov ebx, dword [ebp + 0x2c]
mov edi, dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
mov dword [ebp + 0x68], eax
cmp word [ebx], 0x40
jne 0x453778
push str._DeskTopFresh
push ebx
call edi
test eax, eax
jne 0x4536cf
push dword [ebp + 0x68]
push 0x478e34
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4536c3
push 0
push 0x48af98
push str.USER32.DLL
push str.UpdatePerUserSystemParameters
call fcn.0042584c
add esp, 0x10
call dword [0x48af98]
jmp 0x4536c8
call fcn.004292ca
xor esi, esi
jmp 0x454876
push 0x47cae4
push ebx
call edi
test eax, eax
jne 0x453778
push dword [ebp + 0x68]
push 0x478e40
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x453734
push dword [ebp + 0x68]
push 0x47cae0
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x453721
push dword [ebp + 0x68]
push 0x478e34
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4536c8
cmp byte [0x48adc8], 0
je 0x453734
mov ecx, 0x48b200
mov byte [0x48adc8], 0
call fcn.00424c1e
jmp 0x4536c8
cmp byte [0x48ae0e], 0
je 0x45374c
push dword [0x48add4]
mov byte [0x48adc8], 1
jmp 0x45376d
mov eax, dword [0x48aee8]
test eax, eax
je 0x4536c8
cmp dword [eax + 0x18], 0
je 0x4536c8
mov byte [0x48adc8], 1
push dword [eax + 0x18]
call fcn.0040b4b1
pop ecx
jmp 0x4536c8
mov eax, dword [ebp + 0x7c]
xor esi, esi
cmp eax, esi
je 0x4536c8
add eax, 0x108
push eax
lea ecx, [ebp + 0x20]
call fcn.0042a1a0
push ebx
lea ecx, [ebp + 0x38]
call fcn.0042a183
xor ecx, ecx
mov cx, word [ebx]
cmp cx, si
mov eax, ebx
mov dword [ebp + 0x74], eax
je 0x4537cc
cmp cx, 0x2e
jne 0x4537b4
mov dword [ebp + 0x48], eax
inc eax
inc eax
mov cx, word [eax]
cmp cx, si
jne 0x4537ab
cmp dword [ebp + 0x48], esi
mov dword [ebp + 0x74], eax
je 0x4537cc
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x74], eax
cmp word [eax], 0x2e
mov dword [ebp + 0x5c], esi
jne 0x4537e0
mov word [eax], si
inc eax
inc eax
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x5c], eax
lea ecx, [ebp + 0x74]
call fcn.00429ef2
cmp dword [ebp + 0x5c], esi
je 0x453802
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x5c], eax
mov eax, ecx
push eax
call fcn.00403953
mov eax, dword [ebp + 0x74]
pop ecx
mov word [eax], si
mov esi, dword [ebp + 0x78]
test esi, esi
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x74], 0
je 0x4538ab
cmp word [esi], 0
mov ecx, esi
je 0x4538ab
push 0x7e
pop edi
xor edx, edx
mov dx, word [ecx]
mov eax, edx
call fcn.004213da
test al, al
jne 0x4538ab
cmp dx, 0x2e
je 0x45389a
cmp dx, 0x24
je 0x45389a
cmp dx, 0x25
je 0x45389a
cmp dx, 0x2a
jne 0x453852
or byte [ebp + 0x74], 4
jmp 0x45389f
cmp dx, di
jne 0x45389f
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x453867
or byte [ebp + 0x74], 2
mov ecx, eax
jmp 0x45389f
cmp dx, di
jne 0x45389f
lea eax, [ecx + 2]
cmp word [eax], 0x2e
jne 0x45387b
or byte [ebp + 0x74], 8
jmp 0x453863
cmp dx, di
jne 0x45389f
lea eax, [ecx + 2]
cmp word [eax], 0x2a
jne 0x45388f
or byte [ebp + 0x74], 0xa
jmp 0x453863
cmp dx, di
jne 0x45389f
or byte [ebp + 0x74], 1
jmp 0x45389f
mov al, byte [ecx]
mov byte [ebp + 0x5b], al
inc ecx
inc ecx
cmp word [ecx], 0
jne 0x453824
and dword [ebp + 0x78], 0
cmp byte [ebp + 0x74], 0
je 0x4538c7
push dword [ebp + 0x74]
mov ecx, dword [ebp + 0x60]
lea eax, [ebp + 0x30]
push eax
call fcn.00446e5f
mov dword [ebp + 0x68], eax
lea ecx, [ebp + 0x28]
call fcn.0042460b
cmp byte [ebp + 0x5b], 0
je 0x4538f0
cmp byte [ebp + 0x5b], 0x2e
je 0x4538f0
lea eax, [ebp + 0x78]
push eax
push esi
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00436a61
add esp, 0x10
push ebx
lea ecx, [ebp + 0x24]
call fcn.0042a183
mov edi, dword [ebp + 0x24]
xor esi, esi
cmp dword [ebp + 0x5c], esi
mov dword [ebp + 0x50], edi
jne 0x45390d
mov dword [ebp + 0x5c], 0x4758e0
cmp word [ebx], 0x40
je 0x454261
and dword [ebp + 0x40], 0
mov eax, 0x48b5d4
push eax
mov dword [ebp + 0x64], eax
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ebx, dword [ebp + 0x60]
mov byte [ebp + 0x7b], 1
mov byte [ebp + 0x7f], 0
mov byte [ebp + 0x77], 0
cmp byte [ebp + 0x7f], 0
je 0x453943
mov byte [ebp + 0x77], 1
push 0x3a
lea eax, [ebp + 0x54]
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x54], edi
call fcn.00429fa7
mov eax, dword [ebp + 0x54]
cmp word [eax], 0x3a
pop ecx
mov byte [ebp + 0x7f], 0
jne 0x453975
and word [eax], 0
lea edi, [eax + 2]
cmp word [edi], 0
mov dword [ebp + 0x50], edi
je 0x453975
mov byte [ebp + 0x7f], 1
cmp byte [ebp + 0x7b], 0
je 0x453998
push dword [ebp + 0x48]
push str.this
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453998
mov eax, dword [ebp + 0x20]
mov byte [ebp + 0x77], 1
mov dword [ebp + 0x48], eax
push dword [ebp + 0x48]
mov esi, dword [ebx + 0x28]
push 0x478e18
mov byte [ebp + 0x7b], 0
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4539cf
cmp byte [ebp + 0x7f], 0
mov ebx, dword [ebx + 0x24]
mov esi, dword [ebx + 0x28]
mov eax, dword [esi + 0x108]
mov dword [ebp + 0x48], eax
mov byte [ebp + 0x77], 1
jne 0x45393f
test esi, esi
je 0x453a90
cmp esi, dword [ebp + 0x40]
je 0x453a90
cmp byte [ebp + 0x7f], 0
jne 0x4539fe
push dword [ebp + 0x48]
mov eax, dword [esi + 0x108]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x453ad1
mov eax, dword [esi + 0x58]
xor edi, edi
cmp dword [eax], edi
mov dword [ebp + 0x54], edi
jle 0x453a4a
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 8]
test eax, eax
je 0x453a3f
push dword [ebp + 0x48]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
jne 0x453a3f
cmp byte [ebp + 0x7f], 0
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
je 0x453c2e
mov eax, dword [eax + edi*4]
cmp dword [eax + 4], 0xf
je 0x453ab8
mov eax, dword [esi + 0x58]
inc edi
cmp edi, dword [eax]
mov dword [ebp + 0x54], edi
jl 0x453a0a
cmp byte [ebp + 0x7f], 0
jne 0x453d07
and dword [ebp + 0x54], 0
cmp dword [esi + 0x12c], 0
jle 0x453a90
mov eax, dword [esi + 0x130]
mov ecx, dword [ebp + 0x54]
mov edi, dword [eax + ecx*4]
push dword [ebp + 0x48]
mov eax, dword [edi + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x453d10
inc dword [ebp + 0x54]
mov eax, dword [ebp + 0x54]
cmp eax, dword [esi + 0x12c]
jl 0x453a61
cmp byte [ebp + 0x77], 0
jne 0x453d07
mov ebx, dword [ebx + 0x24]
mov dword [ebp + 0x40], esi
xor esi, esi
cmp ebx, esi
je 0x453dfd
cmp ebx, 0x48aec0
je 0x453dfd
jmp 0x453ac9
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax + 0xe8]
mov edi, dword [ebp + 0x50]
jmp 0x453939
mov ebx, dword [ebp + 0x5c]
push ebx
push str.MouseCapture
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x453c5a
push ebx
push str.POSTMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453b1a
mov ecx, dword [esi + 0x8c]
xor edi, edi
push edi
push edi
push dword [ebp + 0x60]
push esi
push dword [ebp + 0x4c]
call fcn.0045d57b
cmp dword [ebp + 0x64], edi
mov esi, eax
jmp 0x453e00
push ebx
push str.SENDMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453b4e
mov ecx, dword [esi + 0x8c]
lea eax, [ebp + 0x64]
push eax
push 1
push dword [ebp + 0x60]
push esi
push dword [ebp + 0x4c]
call fcn.0045d57b
cmp dword [ebp + 0x64], 0
mov esi, eax
jmp 0x453e00
push ebx
push 0x475b6c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453bce
mov eax, dword [esi + 0x8c]
mov ebx, dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x18]
xor edi, edi
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x64]
cmp eax, edi
mov dword [ebp - 4], 3
mov dword [ebp], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], 1
mov dword [ebp + 0x1c], edi
je 0x453ba6
push eax
mov dword [ebp + 0x64], edi
call ebx
lea eax, [ebp - 4]
push eax
push esi
push 0x465
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0x64], edi
mov esi, eax
je 0x454856
push dword [ebp + 0x64]
call ebx
jmp 0x454856
push ebx
push 0x47cabc
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x453f4f
push ebx
push 0x47cab8
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453c00
mov esi, dword [esi + 0x18]
and dword [ebp + 0x54], 0
jmp 0x453e38
mov eax, dword [ebp + 0x64]
test eax, eax
mov edi, dword [esi + 0x18]
je 0x453c15
and dword [ebp + 0x64], 0
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push esi
push dword [ebp + 0x38]
push ebx
push dword [ebp + 0x68]
push edi
push dword [ebp + 0x60]
call fcn.00424b06
add esp, 0x18
jmp 0x453dfb
push dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x54]
mov edi, dword [eax + ecx*4]
push str.MouseCapture
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453e14
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x23
je 0x453e14
mov esi, edi
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x23
sete bl
test bl, bl
je 0x453c6c
add dword [ebp + 0x68], 2
or dword [ebp + 0x7c], 0xffffffff
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
test bl, bl
pop ecx
pop ecx
je 0x453de2
cmp dword [ebp + 0x7c], 0
jle 0x453dd7
mov ebx, dword [esi + 0x18]
mov esi, dword [esi + 0x8c]
mov edi, 0x48b5d4
push edi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
test esi, esi
je 0x453dd1
test ebx, ebx
je 0x453dd1
xor edi, edi
call fcn.00426c4d
push edi
call dword [sym.imp.KERNEL32.DLL_SetLastError]
push edi
push dword [0x48add0]
push 0x426bdf
push 7
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
mov dword [0x48b118], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [0x48b118], edi
je 0x453cf7
mov dword [0x48b120], esi
mov dword [0x48b11c], ebx
push 0x48b5d4
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x453dfb
cmp dword [ebp + 0x64], 0
jmp 0x45420c
mov eax, dword [ebp + 0x5c]
xor esi, esi
cmp word [eax], si
jne 0x453d41
push dword [ebp + 0x68]
mov ecx, edi
call fcn.00424710
mov edi, dword [edi + 8]
cmp word [edi], si
je 0x453dfd
push dword [ebp + 0x68]
mov ecx, dword [ebp + 0x60]
push edi
call fcn.00428e1b
jmp 0x453dfd
push eax
push str.Enable
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453dfd
mov eax, dword [ebp + 0x68]
movzx eax, word [eax]
push eax
mov dword [ebp + 0x7c], esi
call fcn.0040e5a7
add esp, 4
test al, al
jne 0x453d74
cmp dword [ebp + 0x64], esi
jmp 0x45420c
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
cmp dword [ebp + 0x7c], esi
pop ecx
pop ecx
je 0x453d8e
and byte [edi + 0xc], 0xfe
jmp 0x453d92
or byte [edi + 0xc], 1
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x7c]
call fcn.0042a1a0
push 0x47906c
lea ecx, [ebp + 0x7c]
call fcn.004246c0
test byte [edi + 0xc], 1
mov eax, 0x476efc
jne 0x453dbb
mov eax, 0x479068
mov ecx, dword [ebp + 0x60]
push eax
push dword [ebp + 0x7c]
call fcn.00428e6b
lea ecx, [ebp + 0x7c]
call fcn.00424686
jmp 0x453dfd
push edi
jmp 0x453cfc
jne 0x453dfb
xor edi, edi
call fcn.00426c4d
jmp 0x453dfb
cmp dword [ebp + 0x7c], 0
jle 0x453df3
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x453dfb
jne 0x453dfb
call dword [sym.imp.USER32.dll_ReleaseCapture]
xor esi, esi
cmp dword [ebp + 0x64], esi
je 0x454856
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x454856
push dword [ebp + 0x5c]
push 0x47cab8
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x453f36
mov eax, dword [edi + 0x1c]
mov esi, dword [eax + 0x18]
add dword [ebp + 0x54], 0x1000
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
je 0x453eb7
cmp dword [ebp + 0x64], 0
je 0x453e58
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
or dword [ebp + 0x7c], 0xffffffff
or dword [ebp + 0x74], 0xffffffff
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [ebp + 0x68]
xor bl, bl
cmp word [eax], 0x2a
jne 0x453e7a
mov bl, byte [eax]
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
test eax, eax
pop ecx
pop ecx
jle 0x454854
test bl, bl
je 0x454335
cmp dword [ebp + 0x7c], 0
jl 0x454854
xor eax, eax
cmp dword [ebp + 0x7c], eax
setne al
push eax
call dword [sym.imp.USER32.dll_ShowCursor]
jmp 0x454854
lea ecx, [ebp + 0x50]
call fcn.0042460b
lea ecx, [ebp + 0x78]
call fcn.0042460b
add dword [ebp + 0x68], 2
push 0x2c
push 0x3b
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], 0
je 0x453f00
add dword [ebp + 0x68], 2
push 0x2c
push 0x3b
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
add esp, 0x10
push dword [ebp + 0x50]
push esi
push dword [ebp + 0x60]
call fcn.0042d52d
push dword [ebp + 0x78]
push dword [ebp + 0x54]
push dword [ebp + 0x60]
call fcn.0042d52d
add esp, 0x18
lea ecx, [ebp + 0x78]
call fcn.00424686
lea ecx, [ebp + 0x50]
call fcn.00424686
cmp dword [ebp + 0x64], 0
jmp 0x45424d
push dword [ebp + 0x5c]
push 0x47cabc
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x45407b
mov esi, edi
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
jne 0x453e49
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x48], eax
lea eax, [ebp + 0x44]
push eax
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_ScreenToClient]
lea ecx, [ebp + 0x50]
call fcn.0042460b
lea ecx, [ebp + 0x78]
call fcn.0042460b
lea ecx, [ebp + 0x74]
call fcn.0042460b
lea ecx, [ebp + 0x7c]
call fcn.0042460b
push 2
pop esi
add dword [ebp + 0x68], esi
push 0x2c
push 0x3b
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
mov eax, dword [ebp + 0x68]
xor edi, edi
add esp, 0x10
cmp word [eax], di
je 0x454020
add dword [ebp + 0x68], esi
push 0x2c
push 0x3b
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], di
je 0x454020
add dword [ebp + 0x68], esi
push 0x2c
push 0x3b
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], di
je 0x454020
add dword [ebp + 0x68], esi
push 0x2c
push 0x3b
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
add esp, 0x10
push dword [ebp + 0x50]
mov esi, dword [ebp + 0x60]
push dword [ebp + 0x3c]
push esi
call fcn.0042d52d
push dword [ebp + 0x78]
push dword [ebp + 0x40]
push esi
call fcn.0042d52d
push dword [ebp + 0x74]
push dword [ebp + 0x44]
push esi
call fcn.0042d52d
push dword [ebp + 0x7c]
push dword [ebp + 0x48]
push esi
call fcn.0042d52d
add esp, 0x30
lea ecx, [ebp + 0x7c]
call fcn.00424686
lea ecx, [ebp + 0x74]
call fcn.00424686
lea ecx, [ebp + 0x78]
call fcn.00424686
lea ecx, [ebp + 0x50]
call fcn.00424686
jmp 0x453dfb
mov ecx, dword [edi + 4]
cmp ecx, 3
je 0x454088
cmp ecx, 1
jne 0x4540bd
mov eax, dword [ebp + 0x5c]
xor ebx, ebx
cmp word [eax], bx
jne 0x4540bf
cmp byte [ebp + 0x5b], bl
jne 0x4540bf
cmp ecx, 3
mov eax, 0x1000000
jne 0x4540a6
test dword [edi + 0x40], eax
jne 0x4540b0
cmp ecx, 1
jne 0x4540bf
test dword [edi + 0x5c], eax
je 0x4540bf
push ebx
push dword [ebp + 0x68]
call fcn.0040e4ff
pop ecx
pop ecx
jmp 0x4540bf
xor ebx, ebx
push dword [ebp + 0x5c]
push str.POSTMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4540ea
push ebx
push ebx
push dword [ebp + 0x60]
lea ecx, [edi + 0x34]
push dword [edi + 0x1c]
push dword [ebp + 0x4c]
call fcn.0045d57b
jmp 0x4541f8
push dword [ebp + 0x5c]
push str.SENDMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454105
lea eax, [ebp + 0x64]
push eax
push 1
jmp 0x4540d4
push dword [ebp + 0x5c]
push 0x475b6c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x45418d
mov eax, dword [edi + 0x1c]
cmp eax, ebx
je 0x454209
mov ecx, dword [ebp + 0x4c]
add edi, 0x34
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x60]
mov dword [ebp - 0x20], edi
mov edi, dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x64]
cmp eax, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], ebx
je 0x454165
push eax
mov dword [ebp + 0x64], ebx
call edi
lea eax, [ebp - 0x28]
push eax
push esi
push 0x465
push dword [esi + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0x64], ebx
mov esi, eax
je 0x454856
push dword [ebp + 0x64]
call edi
jmp 0x454856
mov esi, dword [ebp + 0x5c]
push esi
push str.bkcolor
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x454202
push esi
push str.Cursor
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x454202
push esi
push 0x47b220
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x454202
cmp dword [edi + 4], 9
jne 0x4541e3
lea eax, [ebp + 0x64]
push eax
push dword [ebp + 0x38]
mov ecx, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x4c]
push dword [ebp + 0x60]
call fcn.0043ae8d
jmp 0x4541f8
mov eax, dword [edi]
lea ecx, [ebp + 0x64]
push ecx
push dword [ebp + 0x38]
mov ecx, edi
push esi
push dword [ebp + 0x68]
push dword [ebp + 0x60]
call dword [eax + 4]
cmp dword [ebp + 0x64], ebx
mov esi, eax
jmp 0x453e00
mov edi, dword [edi + 0x1c]
cmp edi, ebx
jne 0x454220
cmp dword [ebp + 0x64], ebx
je 0x45443e
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45443e
mov eax, dword [ebp + 0x64]
cmp eax, ebx
mov esi, dword [edi + 0x18]
je 0x454234
push eax
mov dword [ebp + 0x64], ebx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
push edi
push dword [ebp + 0x38]
push dword [ebp + 0x5c]
push dword [ebp + 0x68]
push esi
push dword [ebp + 0x60]
call fcn.00424b06
add esp, 0x18
cmp dword [ebp + 0x64], ebx
je 0x454854
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x454854
push ebx
push str._Cur
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454374
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
jne 0x453e58
lea ecx, [ebp + 0x4c]
call fcn.0042460b
lea ecx, [ebp + 0x48]
call fcn.0042460b
lea ecx, [ebp + 0x74]
call fcn.0042460b
mov esi, dword [ebp + 0x60]
add dword [ebp + 0x68], 2
push 0x2c
push 0x3b
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, esi
call fcn.00421926
push 0x2c
push 0x3b
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, esi
call fcn.00421926
push 0x2c
push 0x3b
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
mov ecx, esi
call fcn.00421926
lea eax, [ebp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [ebp + 0x4c]
push dword [ebp + 0x3c]
push esi
call fcn.0042d52d
push dword [ebp + 0x48]
push dword [ebp + 0x40]
push esi
call fcn.0042d52d
xor esi, esi
push esi
lea eax, [ebp + 0x74]
push eax
push 8
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x74]
push dword [ebp + 0x60]
call fcn.0042e908
add esp, 0x30
lea ecx, [ebp + 0x74]
call fcn.00424686
lea ecx, [ebp + 0x48]
call fcn.00424686
lea ecx, [ebp + 0x4c]
call fcn.00424686
jmp 0x454856
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
call fcn.00429fe9
test al, al
je 0x454854
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
test eax, eax
pop ecx
pop ecx
jle 0x454854
push dword [ebp + 0x74]
push dword [ebp + 0x7c]
call dword [sym.imp.USER32.dll_SetCursorPos]
jmp 0x454854
push ebx
push str._EATEKEYS
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4543a0
push dword [ebp + 0x60]
push dword [ebp + 0x68]
call fcn.00451cf0
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setl cl
mov esi, ecx
jmp 0x454856
push ebx
push str._POSTMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4543ec
mov byte [ebp + 0x50], 0
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x78], esi
mov dword [ebp + 0x74], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x48], esi
call fcn.0042460b
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3a
jne 0x45477f
add dword [ebp + 0x68], 2
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [ebp + 0x68]
mov edx, eax
jmp 0x45474f
push ebx
push str._SENDMSG
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454403
mov byte [ebp + 0x50], 1
jmp 0x4543b5
push ebx
push str._POS
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454490
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3f
sete bl
test bl, bl
je 0x454426
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
cmp dword [ebp + 0x74], esi
pop ecx
pop ecx
jg 0x454448
mov esi, 0x80070057
jmp 0x454856
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
call fcn.00429fe9
test al, al
je 0x45445b
add dword [ebp + 0x68], 2
test bl, bl
je 0x45446b
sub dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
mov word [eax], 0x3f
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x124]
xor esi, esi
push esi
push dword [ebp + 0x60]
push dword [ebp + 0x60]
push dword [ebp + 0x68]
push dword [ebp + 0x74]
call fcn.00435a1a
add esp, 0x18
jmp 0x454856
push ebx
push str._RMENU
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454555
lea ecx, [ebp + 0x78]
call fcn.0042460b
lea ecx, [ebp + 0x74]
mov dword [ebp + 0x50], esi
call fcn.0042460b
push 0x3a
push 0x3b
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
mov eax, dword [ebp + 0x68]
add esp, 0x10
cmp word [eax], si
je 0x4544d8
add dword [ebp + 0x68], 2
lea ecx, [ebp + 0x68]
call fcn.00429ef2
push dword [ebp + 0x68]
call fcn.00412d51
pop ecx
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x68], eax
call fcn.0042460b
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
push dword [ebp + 0x68]
mov dword [ebp + 0x40], esi
call fcn.0042921d
mov eax, dword [ebp + 0x40]
add esp, 0xc
cmp eax, esi
je 0x45452f
cmp word [eax], si
je 0x45452f
push esi
lea ecx, [ebp + 0x78]
push ecx
lea ecx, [ebp + 0x50]
push ecx
push eax
push dword [ebp + 0x7c]
mov word [eax - 2], si
call fcn.00404db8
add esp, 0x14
push dword [ebp + 0x78]
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x74]
call fcn.00428e1b
lea ecx, [ebp + 0x7c]
call fcn.00424686
lea ecx, [ebp + 0x74]
call fcn.00424686
lea ecx, [ebp + 0x78]
jmp 0x45484f
push ebx
push str._IsWindow
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4545ed
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [eax]
mov di, word [eax]
cmp di, 0x3f
jne 0x454581
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x4545a6
cmp ax, 0x3a
jne 0x4545aa
add dword [ebp + 0x68], 2
cmp di, 0x3f
jne 0x45443e
lea ecx, [ebp + 0x54]
call fcn.0042460b
push 0x3a
push 0x3b
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
add esp, 0x10
push dword [ebp + 0x54]
push dword [ebp + 0x74]
call dword [sym.imp.USER32.dll_IsWindow]
push eax
push dword [ebp + 0x60]
call fcn.0042d501
lea ecx, [ebp + 0x54]
jmp 0x454685
push ebx
push str._Enable
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4546c3
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [eax]
mov di, word [eax]
cmp di, 0x3f
jne 0x454619
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x45463e
cmp ax, 0x3a
jne 0x454642
add dword [ebp + 0x68], 2
cmp dword [ebp + 0x74], esi
jle 0x45443e
cmp di, 0x3f
jne 0x45468d
lea ecx, [ebp + 0x5c]
call fcn.0042460b
push 0x3a
push 0x3b
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042dfb9
add esp, 0x10
push dword [ebp + 0x5c]
push dword [ebp + 0x74]
call dword [sym.imp.USER32.dll_IsWindowEnabled]
push eax
push dword [ebp + 0x60]
call fcn.0042d501
lea ecx, [ebp + 0x5c]
add esp, 0xc
jmp 0x45484f
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x7c], 0xfffffc18
call fcn.0042e410
cmp dword [ebp + 0x7c], esi
pop ecx
pop ecx
jl 0x454854
xor eax, eax
cmp dword [ebp + 0x7c], esi
setne al
push eax
push dword [ebp + 0x74]
call dword [sym.imp.USER32.dll_EnableWindow]
jmp 0x454854
push ebx
push str._Visable
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x454854
lea ecx, [ebp + 0x68]
call fcn.00429ef2
mov eax, dword [eax]
mov di, word [eax]
cmp di, 0x3f
jne 0x4546ef
add dword [ebp + 0x68], 2
or dword [ebp + 0x74], 0xffffffff
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
pop ecx
pop ecx
je 0x454714
cmp ax, 0x3a
jne 0x454718
add dword [ebp + 0x68], 2
cmp dword [ebp + 0x74], esi
jle 0x45443e
push edi
push dword [ebp + 0x68]
push dword [ebp + 0x74]
push dword [ebp + 0x60]
call fcn.004361a9
add esp, 0x10
jmp 0x454854
cmp cx, 0x2c
je 0x454757
cmp cx, 0x3b
je 0x454757
cmp cx, 0x3a
je 0x454757
inc eax
inc eax
mov dword [ebp + 0x68], eax
mov cx, word [eax]
cmp cx, si
jne 0x454738
sub eax, edx
sar eax, 1
push eax
push edx
lea ecx, [ebp + 0x7c]
call fcn.00409ba0
mov eax, dword [ebp + 0x68]
cmp word [eax], si
je 0x454771
add dword [ebp + 0x68], 2
mov ecx, dword [ebp + 0x60]
push 1
lea eax, [ebp + 0x7c]
push eax
call fcn.00402996
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
cmp dword [ebp + 0x78], esi
pop ecx
pop ecx
jne 0x4547a0
lea ecx, [ebp + 0x7c]
call fcn.00424686
jmp 0x45443e
mov eax, dword [ebp + 0x68]
mov ax, word [eax]
cmp ax, 0x3b
je 0x4547b2
cmp ax, 0x3a
jne 0x4547e0
add dword [ebp + 0x68], 2
mov eax, dword [ebp + 0x68]
xor edi, edi
cmp word [eax], 0x23
jne 0x4547ca
add dword [ebp + 0x68], 2
mov edi, 0x5000
lea eax, [ebp + 0x74]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042e410
test eax, eax
pop ecx
pop ecx
jle 0x4547e0
add dword [ebp + 0x74], edi
push dword [ebp + 0x50]
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 0x68]
push dword [ebp + 0x60]
call fcn.0042e705
add esp, 0x14
test eax, eax
jne 0x454793
cmp byte [ebp + 0x50], al
push dword [ebp + 0x48]
push dword [ebp + 0x4c]
push dword [ebp + 0x74]
push dword [ebp + 0x78]
jne 0x454816
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x45481c
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp + 0x7c]
cmp word [ecx], si
je 0x45484c
push eax
lea eax, [ebp - 0x8c]
push 0x476214
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
lea eax, [ebp - 0x8c]
push eax
push dword [ebp + 0x7c]
call fcn.00428e1b
lea ecx, [ebp + 0x7c]
call fcn.00424686
xor esi, esi
lea ecx, [ebp + 0x24]
call fcn.00424686
lea ecx, [ebp + 0x28]
call fcn.00424686
lea ecx, [ebp + 0x38]
call fcn.00424686
lea ecx, [ebp + 0x20]
call fcn.00424686
lea ecx, [ebp + 0x30]
call fcn.00424686
lea ecx, [ebp + 0x2c]
call fcn.00424686
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc