Function at 0x45f430
Capabilities:
Check for unmoving mouse cursor
Get graphical window text
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x580fe8
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x5f0524]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], ebx
mov dword [ecx], 0
cmp edx, 0x111
ja 0x46005b
je 0x45ffad
lea eax, [edx - 2]
cmp eax, 0xfe
ja case.0x461194.1032
movzx eax, byte [eax + 0x4616ac]
jmp dword [eax*4 + 0x461654]
cmp edi, 1
jne case.0x461194.1032
test ebx, ebx
jne case.0x461194.1032
mov byte [esi + 0x7a5], 1
cmp byte [esi + 0x16c], bl
jne case.0x461194.1032
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je case.0x461194.1032
push ebx
push ebx
push 0x10
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x120]
test ecx, ecx
je case.0x461194.1032
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x98]
xor al, al
jmp 0x461636
cmp byte [esi + 0x16c], 0
jne 0x461634
mov eax, dword [esi + 0x1cc]
lea ebx, [esi + 0x1cc]
mov ecx, ebx
mov byte [esi + 0x174], 0
call dword [eax + 0x30]
test eax, eax
je 0x45f54d
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x45f54d
mov eax, dword [esi + 0x1e8]
push 1
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45f530
cmp byte [esi + 0x174], 0
jne 0x461634
mov eax, dword [esi]
mov ecx, esi
push 1
push 0
call dword [eax + 0x7c]
cmp byte [esi + 0x7f9], 0
je 0x45f596
mov eax, dword [esi + 0x800]
mov byte [esi + 0x7f9], 0
test eax, eax
je 0x45f58c
push dword [esi + 0x7fc]
push eax
call dword [sym.imp.USER32.dll_ChangeClipboardChain]
mov dword [esi + 0x7fc], 0
cmp byte [esi + 0x18c], 0
je 0x45f5b2
mov eax, dword [esi]
mov ecx, esi
push 0
mov byte [esi + 0x708], 0
call dword [eax + 0x170]
mov byte [esi + 0x16c], 1
mov byte [esi + 0x174], 0
jmp 0x461634
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push eax
push dword [esi + 0x30]
movups xmmword [ebp - 0x20], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.0045bed0
mov edx, dword [esi + 0x158]
lea eax, [esi + 0x10]
mov ecx, esi
neg ecx
push 0
sbb ecx, ecx
and ecx, eax
call fcn.0049d120
mov ecx, dword [esi + 0x68c]
add esp, 4
mov ebx, eax
mov dword [ebp - 0x3c], ebx
test ecx, ecx
je 0x45f62d
test ebx, ebx
je 0x45f617
lea edx, [ebx + 8]
jmp 0x45f619
xor edx, edx
push dword [ebp - 0x14]
mov eax, dword [ecx]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push edx
call dword [eax + 0x24]
jmp 0x45f63f
push dword [esi + 0x170]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebx + 8]
call fcn.004fd493
lea ecx, [ebp - 0x30]
call fcn.004fb7fd
push edi
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0
call fcn.004fbb37
mov eax, dword [esi]
xor edi, edi
mov ecx, esi
mov dword [ebp - 0x38], edi
call dword [eax + 0xe8]
test eax, eax
je 0x45f6c9
nop word [eax + eax]
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax + 0xec]
mov ebx, eax
mov ecx, ebx
mov edx, dword [ebx]
call dword [edx + 8]
mov edx, dword [ebx]
mov ecx, ebx
mov dword [ebp - 0x40], eax
call dword [edx + 0x10]
mov edx, dword [ebx]
mov ecx, ebx
mov edi, eax
call dword [edx + 0x2c]
mov edx, dword [ebx]
add eax, edi
push eax
mov ecx, ebx
call dword [edx + 0x24]
mov ecx, dword [ebp - 0x40]
add eax, ecx
push eax
push edi
push ecx
lea ecx, [ebp - 0x30]
call fcn.004fbd8e
mov edi, dword [ebp - 0x38]
mov ecx, esi
mov eax, dword [esi]
inc edi
mov dword [ebp - 0x38], edi
call dword [eax + 0xe8]
cmp edi, eax
jb 0x45f670
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x45f6d2
lea eax, [ebx + 8]
jmp 0x45f6d4
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x20]
test eax, eax
je 0x45f6e7
mov eax, dword [eax + 4]
push 0xcc0020
push 0
push 0
push eax
push ecx
push edx
push 0
push 0
push dword [ebp - 0x2c]
call dword [sym.imp.GDI32.dll_BitBlt]
lea ecx, [ebp - 0x30]
call fcn.004fbd28
test ebx, ebx
je 0x45f715
mov eax, dword [ebx + 4]
lea ecx, [ebx + 4]
call dword [eax + 4]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x30]
mov dword [eax], 1
call fcn.004fb953
jmp 0x461634
call fcn.0042bb70
cmp byte [esi + 0x175], 0
mov dword [ebp - 0x38], eax
je 0x45f8ca
push ebx
push edi
push dword [ebp + 0xc]
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov edi, dword [ebp - 0x34]
mov dword [edi], eax
cmp dword [esi + 0x68c], 0
je 0x45f8a5
lea eax, [ebp - 0x30]
xorps xmm0, xmm0
push eax
push dword [esi + 0x30]
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
movsx eax, bx
mov ecx, esi
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
shr ebx, 0x10
movsx eax, bx
sub eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
call dword [eax + 0x24]
lea ecx, [ebx + ebx*4]
sub eax, ecx
mov ecx, esi
cmp dword [ebp - 0x3c], eax
jle 0x45f7e0
mov eax, ebx
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x34]
cmp edx, eax
jle 0x45f7ca
mov dword [edi], 0x11
jmp 0x461634
cmp edx, ecx
mov eax, 0xb
mov esi, 0xe
cmovl eax, esi
mov dword [edi], eax
jmp 0x461634
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x34]
lea edx, [ebx + ebx*4]
sub eax, edx
cmp ecx, eax
jle 0x45f821
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x24]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x3c]
cmp edx, eax
jg 0x45f7bf
xor eax, eax
cmp edx, ecx
setl al
add eax, 0xf
mov dword [edi], eax
jmp 0x461634
cmp dword [ebp - 0x3c], edx
jge 0x45f866
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x34]
cmp edx, eax
jle 0x45f850
mov dword [edi], 0x10
jmp 0x461634
cmp edx, ecx
mov eax, 0xa
mov esi, 0xd
cmovl eax, esi
mov dword [edi], eax
jmp 0x461634
cmp ecx, edx
jge 0x45f8a5
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x24]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
sub eax, ecx
cmp edx, eax
jle 0x45f894
mov dword [edi], 0xe
jmp 0x461634
xor eax, eax
cmp edx, ecx
setl al
add eax, 0xc
mov dword [edi], eax
jmp 0x461634
cmp dword [edi], 1
jne 0x461634
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x461634
mov dword [edi], 2
jmp 0x461634
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
push ebx
push edi
push dword [ebp + 0xc]
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov edi, dword [ebp - 0x34]
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
mov dword [edi], eax
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_GetWindowRect]
movsx eax, bx
mov ecx, esi
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
shr ebx, 0x10
movsx eax, bx
sub eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
call dword [eax + 0x24]
lea ecx, [ebx + ebx*4]
sub eax, ecx
mov ecx, esi
cmp dword [ebp - 0x3c], eax
jle 0x45f963
mov eax, ebx
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x34]
cmp edx, eax
jg 0x45f7bf
cmp edx, ecx
mov eax, 0xb
mov esi, 0xe
cmovl eax, esi
mov dword [edi], eax
jmp 0x461634
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x34]
lea edx, [ebx + ebx*4]
sub eax, edx
cmp ecx, eax
jle 0x45f9a8
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x24]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x3c]
cmp edx, eax
jg 0x45f7bf
xor eax, eax
cmp edx, ecx
setl al
add eax, 0xf
mov dword [edi], eax
jmp 0x461634
cmp dword [ebp - 0x3c], edx
jge 0x45f9e6
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov edx, dword [ebp - 0x34]
cmp edx, eax
jg 0x45f845
cmp edx, ecx
mov eax, 0xa
mov esi, 0xd
cmovl eax, esi
mov dword [edi], eax
jmp 0x461634
cmp ecx, edx
jge 0x461634
mov eax, ebx
mov ecx, esi
shl eax, 4
sub eax, ebx
add eax, eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
call dword [eax + 0x24]
mov ecx, dword [ebp - 0x38]
jmp 0x45f880
cmp byte [esi + 0x7a0], 0
je 0x45fa19
mov ecx, esi
call fcn.0045eea0
cmp byte [esi + 0x7a2], 0
mov edi, dword [sym.imp.USER32.dll_SetCursor]
je 0x45fa2c
push 0
call edi
mov ecx, esi
call fcn.0045f220
mov eax, dword [esi + 0x6a4]
lea ebx, [esi + 0x6a4]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x45fa78
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x45fa72
mov eax, dword [esi + 0x6c0]
push 0xd
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45fa55
mov edi, dword [sym.imp.USER32.dll_SetCursor]
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
cmp byte [esi + 0x714], 0
je case.0x461194.1032
cmp byte [esi + 0x7a2], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
jne 0x461634
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x461634
movzx ecx, word [ebp - 0x14]
movzx eax, word [ebp - 0x18]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x84
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esi + 0x798], eax
cmp eax, 0xd
je 0x45fb63
cmp eax, 0x11
je 0x45fb63
cmp eax, 0xe
je 0x45fb57
cmp eax, 0x10
je 0x45fb57
cmp eax, 0xc
je 0x45fb4b
cmp eax, 0xf
je 0x45fb4b
cmp eax, 0xa
je 0x45fb3f
cmp eax, 0xb
je 0x45fb3f
cmp byte [esi + 0x79d], 0
je 0x461634
call fcn.004fd921
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call edi
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [esi + 0x79d], 0
jmp 0x461634
call fcn.004fd921
push 0x7f84
jmp 0x45fb6d
call fcn.004fd921
push 0x7f85
jmp 0x45fb6d
call fcn.004fd921
push 0x7f83
jmp 0x45fb6d
call fcn.004fd921
push 0x7f82
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call edi
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SetCapture]
push eax
call fcn.004f4693
mov byte [esi + 0x79d], 1
jmp 0x461634
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
mov ecx, esi
call fcn.0045c010
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
mov ecx, esi
call fcn.0045c1a0
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
cmp edi, 1
jne case.0x461194.1032
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
test ebx, ebx
jne 0x461114
xor al, al
jmp 0x461636
cmp dword [esi + 0x68c], 0
je case.0x461194.1032
mov dword [ecx], 1
jmp 0x461634
cmp edi, 1
je 0x45fc84
cmp edi, 2
je 0x45fc84
mov eax, dword [esi + 0x3ac]
lea ecx, [esi + 0x3ac]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x45fc58
mov eax, dword [esi + 0x3c8]
push 7
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x3ac]
lea ecx, [esi + 0x3ac]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45fc33
cmp byte [esi + 0x7a6], 0
je 0x45fd07
call fcn.00437520
mov dword [esi + 0x7a8], eax
xor al, al
mov dword [esi + 0x7ac], edx
mov byte [esi + 0x7a6], 0
jmp 0x461636
cmp byte [esi + 0x7a0], 0
je 0x45fc94
mov ecx, esi
call fcn.0045eea0
cmp byte [esi + 0x7a2], 0
je 0x45fca5
push 0
call dword [sym.imp.USER32.dll_SetCursor]
push 5
lea ecx, [esi + 0x98]
call fcn.004f9895
mov eax, dword [esi + 0x37c]
lea ecx, [esi + 0x37c]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x45fcec
mov eax, dword [esi + 0x398]
push 6
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x37c]
lea ecx, [esi + 0x37c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45fcc7
mov byte [esi + 0x7a6], 1
mov dword [esi + 0x7a8], 0
mov dword [esi + 0x7ac], 0
xor al, al
jmp 0x461636
cmp byte [esi + 0x7a0], 0
jne 0x45fd24
cmp byte [esi + 0x7a2], 0
je case.0x461194.1032
cmp byte [esi + 0x155], 0
je case.0x461194.1032
push 0
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [ebp - 0x34]
mov dword [eax], 1
jmp 0x461634
mov eax, dword [esi + 0x43c]
lea ecx, [esi + 0x43c]
mov dword [esi + 0x6a0], edi
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x45fd87
mov eax, dword [esi + 0x458]
push 0xc
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x43c]
lea ecx, [esi + 0x43c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45fd62
cmp dword [esi + 0x6a0], 0xd
sete al
jmp 0x461636
push ebx
push edi
push edx
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, dword [ebp - 0x34]
or eax, 4
mov dword [ecx], eax
jmp 0x461634
cmp byte [esi + 0x755], 0
je 0x45fefb
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4c
call edi
push 0x4d
mov dword [ebp - 0x34], eax
call edi
push 0x4e
mov dword [ebp - 0x40], eax
call edi
push 0x4f
mov dword [ebp - 0x3c], eax
call edi
mov edi, eax
call fcn.004045f0
cmp eax, 2
jge 0x45fe09
call fcn.00404650
mov dword [ebp - 0x34], eax
call fcn.00404690
mov dword [ebp - 0x40], eax
call fcn.004046d0
mov dword [ebp - 0x3c], eax
call fcn.00404710
mov edi, eax
mov eax, dword [ebx + 0x18]
test al, 2
jne 0x45fe5f
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x3c]
add ecx, edx
add eax, dword [ebx + 0x10]
cmp eax, ecx
jl 0x45fe2b
sub edx, dword [ebx + 0x10]
add edx, dword [ebp - 0x34]
mov dword [ebx + 8], edx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0xc]
add eax, dword [ebx + 0x14]
lea ecx, [edi + edx]
cmp eax, ecx
jl 0x45fe43
sub edi, dword [ebx + 0x14]
add edi, edx
mov dword [ebx + 0xc], edi
mov eax, dword [ebp - 0x34]
cmp dword [ebx + 8], eax
jge 0x45fe4e
mov dword [ebx + 8], eax
cmp dword [ebx + 0xc], edx
jge 0x45fefb
mov dword [ebx + 0xc], edx
jmp 0x45fefb
test al, 1
jne 0x45fefb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov dword [ebx + 8], eax
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x1c]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebx + 8]
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0x14], eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x3c]
add edx, eax
cmp ecx, edx
jl 0x45fea6
sub eax, dword [ebx + 0x10]
add eax, dword [ebp - 0x34]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x18]
test al, 2
je 0x45fea6
xor eax, 2
mov dword [ebx + 0x18], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0x14]
add eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x38]
lea ecx, [edi + edx]
cmp eax, ecx
jl 0x45fece
sub edi, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
add edi, edx
mov dword [ebx + 0xc], edi
test al, 2
je 0x45fece
xor eax, 2
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x34]
cmp dword [ebx + 8], eax
jge 0x45fee6
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x18]
test al, 2
je 0x45fee6
xor eax, 2
mov dword [ebx + 0x18], eax
cmp dword [ebx + 0xc], edx
jge 0x45fefb
mov eax, dword [ebx + 0x18]
mov dword [ebx + 0xc], edx
test al, 2
je 0x45fefb
xor eax, 2
mov dword [ebx + 0x18], eax
mov eax, dword [esi + 0x3dc]
lea ecx, [esi + 0x3dc]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je case.0x45f49b.174
mov eax, dword [esi + 0x3f8]
push 0xa
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x3dc]
lea ecx, [esi + 0x3dc]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x45ff10
cmp dword [esi + 0x68c], 0
setne al
jmp 0x461636
test byte [ebx + 0x18], 1
jne case.0x461194.1032
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x12c]
call eax
test al, al
jne case.0x461194.1032
cmp dword [esi + 0x68c], 0
je 0x45ff72
mov ecx, esi
call fcn.0045c320
cmp dword [esi + 0x738], 0xffffffff
jne case.0x461194.1032
cmp dword [esi + 0x73c], 0xffffffff
jne case.0x461194.1032
cmp dword [esi + 0x68c], 0
je 0x45ff9c
mov ecx, esi
call fcn.0045c1a0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x104]
xor al, al
jmp 0x461636
mov eax, edi
shr eax, 0x10
test eax, eax
jne case.0x461194.1032
mov ecx, dword [esi + 0x5bc]
test ecx, ecx
je 0x45ffed
mov eax, dword [ecx]
movzx ebx, di
push ebx
mov eax, dword [eax + 0xc]
call eax
test al, al
je 0x45ffed
mov ecx, dword [esi + 0x5bc]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x28]
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
mov ecx, dword [esi + 0x5c0]
test ecx, ecx
je 0x460020
mov eax, dword [ecx]
movzx ebx, di
push ebx
mov eax, dword [eax + 0x24]
call eax
test al, al
je 0x460020
mov ecx, dword [esi + 0x5c0]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
mov ecx, dword [esi + 0x640]
test ecx, ecx
je case.0x461194.1032
mov eax, dword [ecx]
movzx edi, di
push edi
mov eax, dword [eax + 0x24]
call eax
test al, al
je case.0x461194.1032
mov ecx, dword [esi + 0x640]
push edi
mov eax, dword [ecx]
call dword [eax + 0x7c]
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
cmp edx, 0x312
ja 0x46116c
je 0x46111f
cmp edx, 0x200
ja 0x460896
je 0x4607d6
sub edx, 0x112
je 0x4607a1
sub edx, 1
jne case.0x461194.1032
cmp edi, 1
jne 0x46015f
mov edi, dword [sym.imp.USER32.dll_SetTimer]
mov ebx, dword [sym.imp.USER32.dll_KillTimer]
cmp byte [esi + 0x735], dl
je 0x4600cc
call fcn.0049d680
test al, al
je 0x4600cc
push 1
push dword [esi + 0x30]
call ebx
push 0
push 0
push 2
push dword [esi + 0x30]
call edi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x18], 0
push eax
push dword [esi + 0x30]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebp - 0x18]
test eax, eax
je 0x46010b
sub ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
sub dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
js 0x460131
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
cmp dword [ebp - 0x18], eax
jg 0x460131
cmp dword [ebp - 0x14], 0
jl 0x460131
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
cmp dword [ebp - 0x14], eax
jle 0x461634
add dword [esi + 0x750], 0xfffffe0c
cmp dword [esi + 0x750], 0
jg 0x461634
push 1
push dword [esi + 0x30]
call ebx
push 0
push 0x19
push 2
push dword [esi + 0x30]
call edi
jmp 0x461634
cmp edi, 2
jne 0x4601ff
cmp byte [esi + 0x191], 0
lea ebx, [edi + 0x62]
jne 0x46017d
cmp byte [esi + 0x734], 0
jne 0x460183
mov ebx, dword [esi + 0x72c]
cmp byte [esi + 0x735], 0
je 0x4601a8
call fcn.0049d680
test al, al
je 0x4601a8
push ebx
mov ecx, esi
call fcn.0045e410
push 2
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, 0x66666667
mov ecx, 1
imul ebx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [esi + 0x730]
cmp edi, ecx
mov eax, edi
cmovl eax, ecx
add eax, edx
cmp eax, ebx
jl 0x4601e9
push ebx
mov ecx, esi
call fcn.0045e410
push 2
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x461634
cmp edi, 1
cmovl edi, ecx
mov ecx, esi
lea eax, [edx + edi]
push eax
call fcn.0045e410
jmp 0x461634
cmp edi, 3
jne 0x4602ca
cmp byte [esi + 0x735], 0
je 0x460233
call fcn.0049d680
test al, al
je 0x460233
push edi
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 0
push 1
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SetTimer]
cmp byte [esi + 0x191], 0
mov ecx, 0x64
jne 0x46024a
cmp byte [esi + 0x734], 0
jne 0x460250
mov ecx, dword [esi + 0x72c]
mov ebx, dword [esi + 0x730]
mov eax, 0x66666667
imul ecx
mov eax, ebx
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, 1
cmp edi, edx
mov ecx, edi
cmovl ecx, edx
sub eax, ecx
test eax, eax
jg 0x4602b5
push 3
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
mov ecx, esi
call fcn.0045e410
imul eax, dword [esi + 0x74c], 0x3e8
push 0
push 0x1f4
push 1
push dword [esi + 0x30]
mov dword [esi + 0x750], eax
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x461634
cmp edi, 1
mov ecx, esi
cmovl edi, edx
sub ebx, edi
push ebx
call fcn.0045e410
jmp 0x461634
cmp edi, 4
jne 0x46034c
lea eax, [ebp - 0x30]
mov dword [ebp - 0x18], 0
push eax
push dword [esi + 0x30]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebp - 0x18]
test eax, eax
mov eax, dword [ebp - 0x14]
je 0x460311
sub ecx, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
test ecx, ecx
js 0x46032d
cmp ecx, dword [esi + 0x738]
jg 0x46032d
test eax, eax
js 0x46032d
cmp eax, dword [esi + 0x73c]
jle 0x461634
push 4
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
push 0x19
push 5
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x461634
cmp edi, 5
jne 0x46052d
cmp dword [esi + 0x738], 0xffffffff
je 0x460367
cmp dword [esi + 0x73c], 0xffffffff
jne 0x460372
push 5
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
cmp dword [esi + 0x740], 0
mov eax, 0x88888889
mov ebx, 1
jge 0x4603eb
mov ecx, dword [esi + 0x73c]
imul ecx
mov eax, dword [esi]
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ebx
cmovl edi, ebx
call dword [eax + 0x2c]
mov ecx, dword [esi + 0x73c]
add eax, edi
cmp eax, ecx
jge 0x4604f5
mov eax, 0x88888889
imul ecx
mov eax, dword [esi]
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ebx
cmovl edi, ebx
call dword [eax + 0x2c]
add eax, edi
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
push eax
mov ecx, esi
call fcn.0045e600
jmp 0x461634
mov ecx, dword [esi + 0x738]
imul ecx
mov eax, dword [esi]
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [esi + 0x744], 0
jge 0x46045c
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x24]
mov ecx, dword [esi + 0x738]
add eax, edi
cmp eax, ecx
jge 0x4604f5
mov eax, 0x88888889
imul ecx
mov eax, dword [esi]
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x2c]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
add eax, edi
mov ecx, esi
push eax
call fcn.0045e600
jmp 0x461634
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x24]
add eax, edi
cmp eax, dword [esi + 0x738]
jge 0x4604f5
mov ecx, dword [esi + 0x73c]
mov eax, 0x88888889
imul ecx
mov eax, dword [esi]
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x2c]
mov ecx, dword [esi + 0x73c]
add eax, edi
cmp eax, ecx
jge 0x4604f5
mov eax, 0x88888889
imul ecx
mov eax, 1
add edx, ecx
mov ecx, dword [esi + 0x738]
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, 1
cmovl ebx, eax
mov eax, 0x88888889
imul ecx
mov eax, 1
add edx, ecx
mov ecx, esi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, eax
mov eax, dword [esi]
call dword [eax + 0x2c]
add eax, ebx
jmp 0x460445
mov eax, dword [sym.imp.USER32.dll_KillTimer]
push 5
push dword [esi + 0x30]
call eax
push dword [esi + 0x73c]
mov ecx, esi
push dword [esi + 0x738]
call fcn.0045e600
mov dword [esi + 0x738], 0xffffffff
mov dword [esi + 0x73c], 0xffffffff
jmp 0x461634
cmp edi, 6
jne 0x46070b
cmp dword [esi + 0x738], 0xffffffff
je 0x460548
cmp dword [esi + 0x73c], 0xffffffff
jne 0x460553
push 6
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esi + 0x740]
mov ebx, 1
mov ecx, dword [esi + 0x744]
test eax, eax
mov dword [ebp - 0x3c], eax
mov eax, 0x66666667
mov dword [ebp - 0x40], ecx
jns 0x4605d9
imul dword [esi + 0x73c]
mov eax, dword [esi]
mov ecx, esi
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ebx
cmovl edi, ebx
call dword [eax + 0x2c]
sub eax, edi
mov edi, dword [ebp - 0x40]
cmp eax, edi
jg 0x4605b1
mov eax, dword [sym.imp.USER32.dll_KillTimer]
push 6
push dword [esi + 0x30]
call eax
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax + 0x24]
push eax
jmp 0x4606e7
mov eax, 0x66666667
mov ecx, esi
imul dword [esi + 0x73c]
mov eax, dword [esi]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x2c]
sub eax, edi
jmp 0x4603d6
imul dword [esi + 0x738]
mov eax, dword [esi]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
test ecx, ecx
mov ecx, esi
jns 0x460654
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x24]
sub eax, edi
mov edi, dword [ebp - 0x3c]
cmp eax, edi
jg 0x46061c
mov eax, dword [sym.imp.USER32.dll_KillTimer]
push 6
push dword [esi + 0x30]
call eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
push eax
push edi
jmp 0x4606e7
mov eax, 0x66666667
mov ecx, esi
imul dword [esi + 0x738]
mov eax, dword [esi]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x2c]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
sub eax, edi
mov ecx, esi
push eax
call fcn.0045e600
jmp 0x461634
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x24]
sub eax, edi
cmp eax, dword [ebp - 0x3c]
jle 0x4606d4
mov eax, 0x66666667
mov ecx, esi
imul dword [esi + 0x73c]
mov eax, dword [esi]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, 1
cmovl edi, ebx
call dword [eax + 0x2c]
sub eax, edi
mov edi, dword [ebp - 0x40]
cmp eax, edi
jle 0x4606d7
mov eax, 0x66666667
mov ecx, 1
imul dword [esi + 0x73c]
mov eax, 0x66666667
sar edx, 1
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, 1
cmovl ebx, ecx
imul dword [esi + 0x738]
mov eax, dword [esi]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ecx
cmovl edi, ecx
mov ecx, esi
call dword [eax + 0x2c]
sub eax, ebx
jmp 0x46063d
mov edi, dword [ebp - 0x40]
mov eax, dword [sym.imp.USER32.dll_KillTimer]
push 6
push dword [esi + 0x30]
call eax
push edi
push dword [ebp - 0x3c]
mov ecx, esi
call fcn.0045e600
imul eax, dword [esi + 0x74c], 0x3e8
push 0
push eax
push 4
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x461634
cmp edi, 0x64
jne 0x460729
cmp byte [esi + 0x7a0], 0
je 0x461634
mov ecx, esi
call fcn.0045eea0
jmp 0x461634
cmp edi, 0x2710
jb case.0x461194.1032
lea eax, [edi - 0x2710]
mov dword [esi + 0x7f4], 0
lea ebx, [esi + 0x52c]
mov dword [esi + 0x7f0], eax
mov eax, dword [ebx]
mov ecx, ebx
mov byte [esi + 0x7f8], 0
call dword [eax + 0x30]
test eax, eax
je 0x46078d
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x46078d
mov eax, dword [esi + 0x548]
push 0x1a
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460770
cmp byte [esi + 0x7f8], 0
jne 0x461634
xor al, al
jmp 0x461636
cmp edi, 0xf060
jne case.0x461194.1032
cmp byte [esi + 0x18f], 0
je case.0x461194.1032
cmp byte [esi + 0x190], 0
jne case.0x461194.1032
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x144]
jmp 0x461634
cmp byte [esi + 0x7a0], 0
je 0x4607e6
mov ecx, esi
call fcn.0045eea0
cmp byte [esi + 0x7a2], 0
mov edi, dword [sym.imp.USER32.dll_SetCursor]
je 0x4607f9
push 0
call edi
mov ecx, esi
call fcn.0045f220
cmp byte [esi + 0x79d], 0
je 0x460848
cmp byte [esi + 0x79c], 0
je 0x460826
movsx ecx, bx
shr ebx, 0x10
movsx eax, bx
push eax
push ecx
mov ecx, esi
call fcn.0045ea40
jmp 0x460848
call fcn.004fd921
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call edi
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [esi + 0x79d], 0
mov eax, dword [esi + 0x6a4]
lea ebx, [esi + 0x6a4]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
mov eax, dword [esi + 0x6c0]
push 0xd
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460872
xor al, al
jmp 0x461636
cmp edx, 0x308
ja 0x4610d8
je 0x46106e
lea eax, [edx - 0x201]
cmp eax, 0x17
ja case.0x461194.1032
movzx eax, byte [eax + 0x4617d8]
jmp dword [eax*4 + 0x4617ac]
cmp edi, 4
jne 0x4608d8
mov byte [esi + 0x7a4], 1
xor al, al
jmp 0x461636
cmp edi, 0x12
je 0x4608e2
cmp edi, 7
jne 0x4608e9
mov byte [esi + 0x7a4], 0
xor al, al
jmp 0x461636
mov eax, dword [esi + 0x2ec]
lea ebx, [esi + 0x2ec]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x46092f
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x46092f
mov eax, dword [esi + 0x308]
push 0x10
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460912
cmp byte [esi + 0x7a3], 0
jne case.0x461194.1032
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
mov eax, dword [esi + 0x25c]
lea ebx, [esi + 0x25c]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
mov eax, dword [esi + 0x278]
push 0x18
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460974
xor al, al
jmp 0x461636
mov eax, dword [esi + 0x1fc]
lea ebx, [esi + 0x1fc]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x4609dd
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x4609dd
nop word [eax + eax]
mov eax, dword [esi + 0x218]
push 3
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x4609c0
cmp dword [esi + 0x640], 0
je case.0x461194.1032
mov eax, dword [esi + 0x49c]
lea ecx, [esi + 0x49c]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460a25
nop
mov eax, dword [esi + 0x4b8]
push 0x13
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x49c]
lea ecx, [esi + 0x49c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460a00
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
mov dword [ebp - 0x14], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esi + 0x640]
push esi
push dword [ebp - 0x14]
mov eax, dword [ecx]
push dword [ebp - 0x18]
call dword [eax + 0x84]
xor al, al
jmp 0x461636
mov eax, dword [esi + 0x31c]
lea ebx, [esi + 0x31c]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x460a9d
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460a9d
nop dword [eax + eax]
mov eax, dword [esi + 0x338]
push 9
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460a80
mov eax, dword [esi + 0x718]
cmp eax, str.Close
jne 0x460abb
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x11c]
xor al, al
jmp 0x461636
cmp eax, 0x5be0f0
jne case.0x461194.1032
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x144]
xor al, al
jmp 0x461636
cmp dword [esi + 0x68c], 0
je 0x460b77
cmp byte [esi + 0x79d], 0
je 0x460b77
movsx eax, bx
xorps xmm0, xmm0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x30]
push eax
push dword [esi + 0x30]
shr ebx, 0x10
movsx edi, bx
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
add ecx, edi
cmp dword [ebp + 0xc], 0xa1
lea eax, [edx + ebx]
jne 0x460b31
mov eax, ebx
mov ecx, edi
sub ebx, edx
sub edi, dword [ebp - 0x2c]
mov dword [esi + 0x790], eax
mov dword [esi + 0x794], ecx
test ebx, ebx
js 0x461634
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x24]
cmp ebx, eax
jg 0x461634
test edi, edi
js 0x461634
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
cmp edi, eax
jg 0x461634
mov byte [esi + 0x79c], 1
jmp 0x461634
mov eax, dword [esi + 0x22c]
lea ebx, [esi + 0x22c]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x460bbd
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460bbd
nop dword [eax]
mov eax, dword [esi + 0x248]
push 5
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460ba0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x240]
xor al, al
jmp 0x461636
movsx edi, bx
shr ebx, 0x10
movsx ebx, bx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], ebx
cmp edx, 0xa2
jne 0x460c05
lea eax, [ebp - 0x30]
xorps xmm0, xmm0
push eax
push dword [esi + 0x30]
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
sub edi, dword [ebp - 0x30]
sub ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], ebx
mov eax, dword [esi + 0x28c]
lea ebx, [esi + 0x28c]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x460c47
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460c44
mov eax, dword [esi + 0x2a8]
push 0x19
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460c27
mov edi, dword [ebp - 0x40]
cmp byte [esi + 0x79c], 0
je 0x460c62
push dword [ebp - 0x38]
mov ecx, esi
push edi
call fcn.0045ea40
mov byte [esi + 0x79c], 0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x240]
xor al, al
jmp 0x461636
movzx eax, bx
mov dword [ebp - 0x38], eax
mov eax, ebx
shr eax, 0x10
mov dword [ecx], 1
mov ecx, esi
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
mov dword [ebp - 0x3c], 0
call dword [eax + 0xe8]
test eax, eax
je 0x460d50
xor ecx, ecx
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xec]
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0xd4]
call eax
test al, al
je 0x460d38
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x3c]
call dword [eax + 0xec]
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x78]
call eax
test al, al
je 0x460d38
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x3c]
call dword [eax + 0xec]
push dword [ebp - 0x14]
mov ecx, eax
push dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, dword [edx + 0x20]
call eax
test al, al
je 0x460d38
mov eax, dword [esi]
mov ecx, esi
push 0
push 0x5f5f78
push 0x5f6030
push 0
push dword [ebp - 0x3c]
call dword [eax + 0xec]
push eax
call fcn.0057dc0f
add esp, 0x14
push ebx
push edi
push 0x20a
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
test eax, eax
je 0x460d50
mov eax, dword [esi]
mov ecx, esi
inc dword [ebp - 0x3c]
call dword [eax + 0xe8]
mov ecx, dword [ebp - 0x3c]
cmp ecx, eax
jb 0x460ca2
mov ebx, dword [ebp - 0x34]
cmp dword [ebx], 0
je 0x460dcb
mov eax, dword [esi + 0x6d4]
lea ecx, [esi + 0x6d4]
call dword [eax + 0x30]
test eax, eax
je 0x460dcb
push 0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push eax
push 0
push 0x68
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov eax, dword [ebp - 0x40]
test edi, edi
jg 0x460d8f
neg eax
lea ecx, [esi + 0x6d4]
mov dword [esi + 0x704], eax
mov eax, dword [ecx]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460dcb
mov eax, dword [esi + 0x6f0]
push 0xe
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x6d4]
lea ecx, [esi + 0x6d4]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460da6
mov dword [ebx], 0
jmp 0x461634
cmp byte [esi + 0x756], 0
je case.0x461194.1032
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
mov dword [ebp - 0x14], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x460e11
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x758], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x75c], eax
mov byte [esi + 0x756], 0
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov eax, dword [esi + 0x760]
lea ecx, [esi + 0x760]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
mov eax, dword [esi + 0x77c]
push 0x11
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x760]
lea ecx, [esi + 0x760]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460e37
xor al, al
jmp 0x461636
dec edi
cmp edi, 7
ja case.default.0x460e69
jmp dword [edi*4 + 0x4617f0]
mov dword [esi + 0x648], 1
jmp case.default.0x460e69
mov dword [esi + 0x648], 2
jmp case.default.0x460e69
mov dword [esi + 0x648], 3
jmp case.default.0x460e69
mov dword [esi + 0x648], 4
jmp case.default.0x460e69
mov dword [esi + 0x648], 5
jmp case.default.0x460e69
mov dword [esi + 0x648], 6
jmp case.default.0x460e69
mov dword [esi + 0x648], 7
jmp case.default.0x460e69
mov dword [esi + 0x648], 8
mov eax, dword [ebx]
mov ecx, esi
mov dword [esi + 0x64c], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x654], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x650], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x658], eax
mov eax, dword [esi]
call dword [eax + 0x2c]
mov edx, dword [esi]
mov ecx, esi
mov dword [ebp - 0x14], eax
call dword [edx + 0x24]
mov edx, dword [esi]
mov ecx, esi
mov ebx, eax
call dword [edx + 0x10]
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
call dword [edx + 8]
push dword [ebp - 0x14]
mov edx, edi
mov ecx, eax
push ebx
call fcn.0042b780
add esp, 8
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x54]
mov edx, dword [esi + 0x658]
mov ecx, edx
mov edi, dword [esi + 0x650]
sub ecx, edi
cmp ecx, eax
jle 0x460f66
mov ecx, dword [esi + 0x648]
cmp ecx, 8
je 0x460f5e
cmp ecx, 4
je 0x460f5e
cmp ecx, 7
je 0x460f5e
sub edx, eax
mov dword [esi + 0x650], edx
jmp 0x460f66
add eax, edi
mov dword [esi + 0x658], eax
mov eax, dword [esi + 0x65c]
lea ecx, [esi + 0x65c]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x460fa5
nop dword [eax + eax]
mov eax, dword [esi + 0x678]
push 8
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x65c]
lea ecx, [esi + 0x65c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x460f80
mov edi, dword [ebp - 0x38]
mov eax, dword [esi + 0x64c]
mov dword [edi], eax
mov eax, dword [esi + 0x654]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x650]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x658]
mov dword [edi + 0xc], eax
cmp byte [esi + 0x69c], 0
je 0x461015
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
mov ecx, dword [edi + 8]
sub ecx, dword [edi]
cmp eax, ecx
jle 0x461015
mov eax, dword [esi + 0x648]
cmp eax, 1
je 0x461007
cmp eax, 5
je 0x461007
cmp eax, 7
je 0x461007
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
add eax, dword [edi]
mov dword [edi + 8], eax
jmp 0x461015
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
mov ecx, dword [edi + 8]
sub ecx, eax
mov dword [edi], ecx
cmp byte [esi + 0x69d], 0
je 0x461067
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
mov ecx, dword [edi + 0xc]
sub ecx, dword [edi + 4]
cmp eax, ecx
jle 0x461067
mov eax, dword [esi + 0x648]
cmp eax, 3
je 0x461058
cmp eax, 5
je 0x461058
cmp eax, 6
je 0x461058
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
add eax, dword [edi + 4]
mov dword [edi + 0xc], eax
xor al, al
jmp 0x461636
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
mov ecx, dword [edi + 0xc]
sub ecx, eax
mov dword [edi + 4], ecx
xor al, al
jmp 0x461636
mov eax, dword [esi + 0x55c]
lea ecx, [esi + 0x55c]
call dword [eax + 0x30]
test eax, eax
je 0x4610ae
xor edi, edi
mov eax, dword [esi + 0x578]
push 0x1b
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x55c]
lea ecx, [esi + 0x55c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x461083
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
mov eax, dword [esi + 0x7fc]
test eax, eax
je 0x45fba7
push ebx
push edi
push 0x308
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
jmp 0x461634
cmp edx, 0x30d
jne case.0x461194.1032
mov eax, dword [esi + 0x7fc]
cmp edi, eax
jne 0x4610ff
mov dword [esi + 0x7fc], ebx
mov dword [ecx], 0
jmp 0x461634
test eax, eax
je 0x461114
push ebx
push edi
push 0x30d
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], 0
jmp 0x461634
mov eax, dword [esi + 0x4fc]
lea ecx, [esi + 0x4fc]
mov word [esi + 0x7e8], di
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je case.0x461194.1032
nop
mov eax, dword [esi + 0x518]
push 0x17
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x4fc]
lea ecx, [esi + 0x4fc]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x461140
xor al, al
jmp 0x461636
cmp edx, 0x8001
ja 0x46161d
je 0x461606
add edx, 0xfffffbff
cmp edx, 0x14
ja case.0x461194.1032
movzx eax, byte [edx + 0x461844]
jmp dword [eax*4 + 0x461810]
push dword [edi + 4]
push dword [edi]
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
push eax
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_RegisterHotKey]
test eax, eax
je 0x4611d9
push dword [edi + 8]
lea ecx, [esi + 0x7b0]
call fcn.00408850
mov eax, dword [ebp - 0x34]
mov dword [eax], 1
jmp 0x461634
cmp byte [edi + 0xc], 0
je 0x461634
mov ecx, 0x5bf710
call fcn.00408f00
mov edi, eax
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, edi
call dword [esi + 0x1b8]
push 0x5c6ea0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1e0]
mov ecx, dword [ebp - 0x40]
mov eax, dword [edi]
push dword [ecx + 0x10]
mov ecx, edi
call dword [eax + 0x1e0]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x50]
mov ecx, eax
call fcn.00424e30
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
call dword [eax + 4]
jmp 0x461634
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
push eax
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_UnregisterHotKey]
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push dword [edi + 8]
lea ecx, [esi + 0x7b0]
call fcn.00461c00
test al, al
je 0x461634
push dword [ebp - 0x38]
lea ecx, [esi + 0x7b0]
call fcn.00461bd0
jmp 0x461634
lea eax, [esi + 0x7b0]
lea ecx, [eax + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
call dword [eax + 0x30]
test eax, eax
je 0x4612f9
cmp dword [esi + 0x800], 0
je 0x4612f9
mov eax, dword [esi + 0x7b8]
lea ecx, [esi + 0x7b8]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x4612f9
nop dword [eax + eax]
mov eax, dword [esi + 0x7d4]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
movzx eax, ax
push eax
push dword [esi + 0x800]
call dword [sym.imp.USER32.dll_UnregisterHotKey]
mov eax, dword [esi + 0x7b8]
lea ecx, [esi + 0x7b8]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x4612c0
mov ecx, dword [ebp - 0x14]
call fcn.00408890
jmp 0x461634
mov eax, dword [edi]
push 0
push dword [edi + 4]
add eax, 0x2710
push eax
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [ebp - 0x34]
neg eax
sbb eax, eax
neg eax
mov dword [ecx], eax
jmp 0x461634
mov eax, dword [edi]
add eax, 0x2710
push eax
push dword [esi + 0x30]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x461634
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x148]
call eax
test al, al
je 0x46135c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x13c]
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x12c]
call eax
test al, al
je 0x461376
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x13c]
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x128]
jmp 0x461634
mov eax, dword [edi]
lea ecx, [esi + 0x5dc]
mov dword [esi + 0x5c8], eax
mov eax, dword [edi + 4]
mov dword [esi + 0x5cc], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x5d0], eax
mov eax, dword [edi + 0xc]
xor edi, edi
mov dword [esi + 0x5d4], eax
mov eax, dword [esi + 0x5dc]
call dword [eax + 0x30]
test eax, eax
je 0x4613e5
nop
mov eax, dword [esi + 0x5f8]
push 2
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x4613c0
mov ecx, dword [ebp - 0x34]
mov eax, dword [esi + 0x5d8]
mov dword [ecx], eax
jmp 0x461634
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x461634
nop
mov eax, dword [esi + 0x628]
push 0xf
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x461410
jmp 0x461634
sub ebx, 0x200
je 0x4615bf
sub ebx, 1
je 0x4614ed
sub ebx, 3
jne 0x461634
cmp dword [esi + 0x5c0], ebx
je 0x461634
mov eax, dword [esi + 0x46c]
lea ecx, [esi + 0x46c]
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x4614a5
nop dword [eax]
mov eax, dword [esi + 0x488]
push 0x12
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x46c]
lea ecx, [esi + 0x46c]
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x461480
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0
push eax
mov dword [ebp - 0x44], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [esi + 0x800]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
call edi
mov ecx, dword [esi + 0x5c0]
push esi
push dword [ebp - 0x44]
mov eax, dword [ecx]
push dword [ebp - 0x48]
call dword [eax + 0x80]
push dword [esi + 0x800]
call edi
jmp 0x461634
cmp byte [esi + 0x7a1], 0
je 0x461575
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x148]
call eax
test al, al
je 0x461516
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x13c]
jmp 0x461575
cmp byte [esi + 0x7a6], 0
jne 0x46156b
call fcn.00437520
mov edi, dword [esi + 0x7a8]
mov ecx, dword [esi + 0x7ac]
add edi, 0x96
adc ecx, 0
cmp ecx, edx
jg 0x46156b
jl 0x461543
cmp edi, eax
jae 0x46156b
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax + 0x128]
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x12c]
call eax
test al, al
je 0x461575
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x13c]
jmp 0x461575
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x144]
mov eax, dword [esi + 0x2bc]
lea ebx, [esi + 0x2bc]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x461634
mov eax, dword [ebx]
mov ecx, ebx
xor edi, edi
call dword [eax + 0x30]
test eax, eax
je 0x461634
nop
mov eax, dword [esi + 0x2d8]
push 0x16
push esi
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
inc edi
call dword [eax + 0x30]
cmp edi, eax
jb 0x4615a0
jmp 0x461634
cmp byte [esi + 0x7a2], 0
je 0x461634
call fcn.004fd921
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x461634
mov ecx, edi
call fcn.00424e30
jmp 0x461634
mov ecx, edi
call fcn.00424e90
jmp 0x461634
mov ecx, edi
call fcn.00424ef0
mov ecx, dword [ebp - 0x34]
movzx eax, al
mov dword [ecx], eax
jmp 0x461634
push 0
push 0
push 0x8001
push dword [esi + 0xb8]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x461634
cmp edx, 0x8002
jne case.0x461194.1032
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0xc4]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0051a19b
mov esp, ebp
pop ebp
ret 0x10