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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50a928
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x54b708]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 0xc]
cmp eax, 0x111
mov ebx, dword [ebp + 8]
mov dword [ebx], 0
ja 0x42e699
je 0x42e5f4
lea ecx, [eax - 2]
cmp ecx, 0xfe
ja case.default.0x42f847
movzx ecx, byte [ecx + 0x42fa04]
jmp dword [ecx*4 + 0x42f9bc]
mov eax, 1
cmp dword [ebp + 0x10], eax
jne case.default.0x42f847
test byte [ebp + 0x14], al
je case.default.0x42f847
cmp byte [esi + 0x104], 0
jne case.default.0x42f847
mov edx, dword [esi + 0x4f8]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je case.default.0x42f847
mov eax, dword [esi + 0x4f8]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [esi + 0x104], 0
jne 0x42f9a4
mov edx, dword [esi + 0x164]
mov eax, dword [edx + 0x30]
lea edi, [esi + 0x164]
mov ecx, edi
mov byte [esi + 0x10c], 0
call eax
test eax, eax
jbe 0x42dca4
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
mov ecx, edi
xor ebx, ebx
call eax
test eax, eax
jbe 0x42dca4
mov ecx, dword [esi + 0x180]
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
push esi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x30]
mov ecx, edi
add ebx, 1
call eax
cmp ebx, eax
jb 0x42dc81
cmp byte [esi + 0x10c], 0
jne 0x42f9a4
mov edx, dword [esi]
mov eax, dword [edx + 0x7c]
push 1
push 0
mov ecx, esi
call eax
cmp byte [esi + 0x124], 0
je 0x42dcdc
mov edx, dword [esi]
mov eax, dword [edx + 0x170]
push 0
mov ecx, esi
mov byte [esi + 0x460], 0
call eax
mov byte [esi + 0x104], 1
mov byte [esi + 0x10c], 0
jmp 0x42f9a4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x42f9a4
mov edx, dword [esi + 0x2c]
lea ecx, [esp + 0x24]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x24]
mov edi, esi
call fcn.0042af50
mov eax, dword [esi + 0xf4]
push 0
push eax
lea ebx, [esi + 0xc]
call fcn.0045d280
mov ecx, dword [esi + 0x414]
add esp, 8
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x42dd61
test eax, eax
je 0x42dd41
add eax, 8
jmp 0x42dd43
xor eax, eax
mov edi, dword [esp + 0x30]
mov edx, dword [ecx]
push edi
mov edi, dword [esp + 0x30]
push edi
mov edi, dword [esp + 0x30]
push edi
mov edi, dword [esp + 0x30]
push edi
push eax
mov eax, dword [edx + 0x24]
call eax
jmp 0x42dd77
mov ecx, dword [esi + 0x108]
push ecx
lea edx, [esp + 0x28]
mov ecx, eax
push edx
add ecx, 8
call fcn.004a6c3f
lea ecx, [esp + 0x34]
call fcn.004a62e0
mov eax, dword [ebp + 0x10]
xor ebx, ebx
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x54], ebx
call fcn.004a6734
mov edx, dword [esi]
mov eax, dword [edx + 0xe8]
mov ecx, esi
call eax
test eax, eax
jbe 0x42de0e
mov edx, dword [esi]
mov eax, dword [edx + 0xec]
push ebx
mov ecx, esi
call eax
mov edi, eax
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
mov edx, dword [edi]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x10]
mov ecx, edi
call eax
mov edx, dword [edi]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x2c]
mov ecx, edi
call eax
add eax, dword [esp + 0x14]
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x24]
mov ecx, edi
call eax
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x20]
add ecx, eax
push ecx
push edx
push eax
lea ecx, [esp + 0x44]
call fcn.004a6190
mov eax, dword [esi]
mov edx, dword [eax + 0xe8]
mov ecx, esi
add ebx, 1
call edx
cmp ebx, eax
jb 0x42dda3
mov esi, dword [esp + 0x10]
test esi, esi
je 0x42de1b
lea eax, [esi + 8]
jmp 0x42de1d
xor eax, eax
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
push eax
push ecx
push 0
push 0
lea ecx, [esp + 0x54]
call fcn.004300e0
lea ecx, [esp + 0x34]
call fcn.004a6767
test esi, esi
je 0x42de5e
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
lea ecx, [esi + 4]
call eax
mov ecx, dword [ebp + 8]
mov dword [ecx], 1
lea ecx, [esp + 0x34]
mov dword [esp + 0x50], 0xffffffff
call fcn.004a67ae
jmp 0x42f9a4
cmp byte [esi + 0x10d], 0
je 0x42e044
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [esi + 0x4f8]
push ecx
push eax
push edx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebx], eax
cmp dword [esi + 0x414], 0
je 0x42dfc4
mov ecx, dword [esi + 0x2c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp + 0x14]
movsx edi, word [ebp + 0x14]
mov edx, dword [esi]
sub edi, dword [esp + 0x34]
shr eax, 0x10
movsx eax, ax
sub eax, dword [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x24]
call eax
sub eax, 5
cmp edi, eax
mov ecx, esi
jle 0x42df20
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
call eax
mov ecx, eax
mov eax, dword [esp + 0x10]
sub ecx, 0x1e
cmp eax, ecx
jle 0x42df08
mov dword [ebx], 0x11
jmp 0x42f9a4
xor edx, edx
cmp eax, 0x1e
setge dl
sub edx, 1
and edx, 3
add edx, 0xb
mov dword [ebx], edx
jmp 0x42f9a4
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
call edx
sub eax, 5
cmp dword [esp + 0x10], eax
jle 0x42df52
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
sub eax, 0x1e
cmp edi, eax
jg 0x42defd
xor eax, eax
cmp edi, 0x1e
setl al
add eax, 0xf
mov dword [ebx], eax
jmp 0x42f9a4
cmp edi, 5
jge 0x42df90
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov ecx, eax
mov eax, dword [esp + 0x10]
sub ecx, 0x1e
cmp eax, ecx
jle 0x42df78
mov dword [ebx], 0x10
jmp 0x42f9a4
xor edx, edx
cmp eax, 0x1e
setge dl
sub edx, 1
and edx, 3
add edx, 0xa
mov dword [ebx], edx
jmp 0x42f9a4
cmp dword [esp + 0x10], 5
jge 0x42dfc4
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
sub eax, 0x1e
cmp edi, eax
jle 0x42dfb2
mov dword [ebx], 0xe
jmp 0x42f9a4
xor eax, eax
cmp edi, 0x1e
setl al
add eax, 0xc
mov dword [ebx], eax
jmp 0x42f9a4
cmp dword [ebx], 1
jne 0x42f9a4
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x42f9a4
mov dword [ebx], 2
mov edx, dword [esi + 0x1c4]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x1c4]
mov ecx, ebx
call eax
test eax, eax
jbe 0x42e033
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42e033
lea ebx, [ebx]
mov ecx, dword [esi + 0x1e0]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 5
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42e010
mov edx, dword [esi]
mov eax, dword [edx + 0x218]
mov ecx, esi
call eax
jmp 0x42f9a4
cmp dword [esi + 0x414], 0
je case.default.0x42f847
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x4f8]
push edi
push ecx
push eax
push edx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebx], eax
mov ecx, dword [esi + 0x2c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp + 0x14]
mov edx, dword [esi]
shr eax, 0x10
movsx eax, ax
sub eax, dword [esp + 0x38]
movsx edi, di
sub edi, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
sub eax, 5
cmp edi, eax
mov ecx, esi
jg 0x42dee9
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
call edx
sub eax, 5
cmp dword [esp + 0x10], eax
jle 0x42e0dc
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
sub eax, 0x1e
cmp edi, eax
jg 0x42defd
xor eax, eax
cmp edi, 0x1e
setl al
add eax, 0xf
mov dword [ebx], eax
jmp 0x42f9a4
cmp edi, 5
jl 0x42df57
cmp dword [esp + 0x10], 5
jge 0x42f9a4
jmp 0x42df97
cmp dword [esi + 0x414], 0
je case.default.0x42f847
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x42f9a4
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x2c]
shl eax, 0x10
or eax, dword [esp + 0x1c]
push eax
push 0
push 0x84
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xd
mov dword [esi + 0x4f0], eax
je 0x42e1bc
cmp eax, 0x11
je 0x42e1bc
cmp eax, 0xe
je 0x42e1b0
cmp eax, 0x10
je 0x42e1b0
cmp eax, 0xc
je 0x42e1a4
cmp eax, 0xf
je 0x42e1a4
cmp eax, 0xa
je 0x42e198
cmp eax, 0xb
je 0x42e198
cmp byte [esi + 0x4f5], 0
je 0x42f9a4
call fcn.004a77b8
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [esi + 0x4f5], 0
jmp 0x42f9a4
call fcn.004a77b8
push 0x7f84
jmp 0x42e1c6
call fcn.004a77b8
push 0x7f85
jmp 0x42e1c6
call fcn.004a77b8
push 0x7f83
jmp 0x42e1c6
call fcn.004a77b8
push 0x7f82
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea ecx, [esi + 0xc]
call fcn.0040d200
mov byte [esi + 0x4f5], 1
jmp 0x42f9a4
cmp dword [esi + 0x414], 0
je case.default.0x42f847
mov ecx, esi
call fcn.0042b110
mov dword [ebx], 0
jmp 0x42f9a4
cmp dword [esi + 0x414], 0
je case.default.0x42f847
mov ecx, esi
call fcn.0042b2d0
mov dword [ebx], 0
jmp 0x42f9a4
mov eax, 1
cmp dword [ebp + 0x10], eax
jne case.default.0x42f847
cmp dword [esi + 0x414], 0
je case.default.0x42f847
cmp dword [ebp + 0x14], 0
je case.default.0x42f847
mov dword [ebx], 0
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 0x414], 0
je case.default.0x42f847
mov dword [ebx], 1
jmp 0x42f9a4
mov eax, dword [ebp + 0x10]
cmp eax, 1
je 0x42e2ea
cmp eax, 2
je 0x42e2ea
mov eax, dword [esi + 0x2b4]
mov edx, dword [eax + 0x30]
lea ebx, [esi + 0x2b4]
mov ecx, ebx
xor edi, edi
call edx
test eax, eax
jbe 0x42e333
lea esp, [esp]
mov eax, dword [esi + 0x2d0]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 7
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42e2b0
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 5
lea ecx, [esi + 0x64]
call fcn.004a445b
mov edx, dword [esi + 0x284]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x284]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42e333
lea ecx, [ecx]
mov ecx, dword [esi + 0x2a0]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 6
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42e310
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x314]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x314]
mov dword [esi + 0x428], ecx
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42e393
lea esp, [esp]
mov ecx, dword [esi + 0x330]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 0xb
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42e370
cmp dword [esi + 0x428], 0xd
sete al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
push edx
push eax
mov eax, dword [esi + 0x4f8]
push eax
call dword [sym.imp.USER32.dll_DefWindowProcW]
or eax, 4
mov dword [ebx], eax
jmp 0x42f9a4
cmp byte [esi + 0x4ad], 0
je case.0x42dbed.174
mov edi, dword [ebp + 0x14]
mov eax, dword [edi + 0x18]
test al, 2
jne 0x42e49a
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4c
call ebx
push 0x4e
mov dword [esp + 0x20], eax
call ebx
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x1c]
add ecx, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
jl 0x42e425
push 0x4c
call ebx
push 0x4e
mov dword [esp + 0x20], eax
call ebx
sub eax, dword [edi + 0x10]
add eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
push 0x4d
call ebx
push 0x4f
mov dword [esp + 0x20], eax
call ebx
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x1c]
add ecx, dword [edi + 0xc]
add eax, edx
cmp ecx, eax
jl 0x42e457
push 0x4d
call ebx
push 0x4f
mov dword [esp + 0x20], eax
call ebx
sub eax, dword [edi + 0x14]
add eax, dword [esp + 0x1c]
mov dword [edi + 0xc], eax
push 0x4c
call ebx
cmp dword [edi + 8], eax
jge 0x42e467
push 0x4c
call ebx
mov dword [edi + 8], eax
push 0x4d
call ebx
cmp dword [edi + 0xc], eax
jge case.0x42dbed.174
push 0x4d
call ebx
mov dword [edi + 0xc], eax
cmp dword [esi + 0x414], 0
setne al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test al, 1
jne case.0x42dbed.174
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
mov dword [edi + 8], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, esi
call edx
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x4c
mov dword [edi + 0xc], eax
call ebx
push 0x4e
mov dword [esp + 0x20], eax
call ebx
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x1c]
add ecx, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
jl 0x42e4ff
push 0x4c
call ebx
push 0x4e
mov dword [esp + 0x20], eax
call ebx
sub eax, dword [edi + 0x10]
add eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x18]
test al, 2
je 0x42e4ff
xor eax, 2
mov dword [edi + 0x18], eax
push 0x4d
call ebx
push 0x4f
mov dword [esp + 0x20], eax
call ebx
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x1c]
add ecx, dword [edi + 0xc]
add eax, edx
cmp ecx, eax
jl 0x42e53e
push 0x4d
call ebx
push 0x4f
mov dword [esp + 0x20], eax
call ebx
sub eax, dword [edi + 0x14]
add eax, dword [esp + 0x1c]
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x18]
test al, 2
je 0x42e53e
xor eax, 2
mov dword [edi + 0x18], eax
push 0x4c
call ebx
cmp dword [edi + 8], eax
jge 0x42e55b
push 0x4c
call ebx
mov dword [edi + 8], eax
mov eax, dword [edi + 0x18]
test al, 2
je 0x42e55b
xor eax, 2
mov dword [edi + 0x18], eax
push 0x4d
call ebx
cmp dword [edi + 0xc], eax
jge case.0x42dbed.174
push 0x4d
call ebx
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x18]
test al, 2
je case.0x42dbed.174
xor eax, 2
mov dword [edi + 0x18], eax
cmp dword [esi + 0x414], 0
setne al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
test byte [eax + 0x18], 1
jne 0x42e5dd
mov edx, dword [esi]
mov eax, dword [edx + 0x12c]
mov ecx, esi
call eax
test al, al
jne 0x42e5dd
cmp dword [esi + 0x414], 0
je 0x42e5be
call fcn.0042b460
or eax, 0xffffffff
cmp dword [esi + 0x490], eax
jne 0x42e5dd
cmp dword [esi + 0x494], eax
jne 0x42e5dd
mov edx, dword [esi]
mov eax, dword [edx + 0x104]
mov ecx, esi
call eax
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
mov ecx, eax
shr ecx, 0x10
jne case.default.0x42f847
mov ecx, dword [esi + 0x344]
test ecx, ecx
je 0x42e639
mov edx, dword [ecx]
movzx edi, ax
mov eax, dword [edx + 0xc]
push edi
call eax
test al, al
je 0x42e636
mov esi, dword [esi + 0x344]
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
push edi
mov ecx, esi
call eax
mov dword [ebx], 0
jmp 0x42f9a4
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x348]
test ecx, ecx
je 0x42e670
mov edx, dword [ecx]
movzx edi, ax
mov eax, dword [edx + 0x1c]
push edi
call eax
test al, al
je 0x42e66d
mov esi, dword [esi + 0x348]
mov edx, dword [esi]
mov eax, dword [edx + 0x6c]
push edi
mov ecx, esi
call eax
mov dword [ebx], 0
jmp 0x42f9a4
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x3c8]
test ecx, ecx
je case.default.0x42f847
mov edx, dword [ecx]
movzx edi, ax
mov eax, dword [edx + 0x1c]
push edi
call eax
test al, al
je case.default.0x42f847
mov esi, dword [esi + 0x3c8]
jmp 0x42e658
cmp eax, 0x200
ja 0x42f0e1
je 0x42ee5c
sub eax, 0x112
je 0x42ee26
sub eax, 1
jne case.default.0x42f847
mov eax, dword [ebp + 0x10]
cmp eax, 1
jne 0x42e78a
cmp byte [esi + 0x48d], 0
mov edi, dword [sym.imp.USER32.dll_KillTimer]
mov ebx, dword [sym.imp.USER32.dll_SetTimer]
je 0x42e6fc
call fcn.0045d800
test al, al
je 0x42e6fc
mov ecx, dword [esi + 0x2c]
push 1
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 0
push 0
push 2
push edx
call ebx
mov ecx, dword [esi + 0x2c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x42e72a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x1c], eax
sub dword [esp + 0x20], ecx
cmp dword [esp + 0x1c], 0
jl 0x42e75a
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
cmp dword [esp + 0x1c], eax
jg 0x42e75a
cmp dword [esp + 0x20], 0
jl 0x42e75a
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
cmp dword [esp + 0x20], eax
jle 0x42f9a4
add dword [esi + 0x4a8], 0xfffffe0c
cmp dword [esi + 0x4a8], 0
jg 0x42f9a4
mov ecx, dword [esi + 0x2c]
push 1
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 0
push 0x19
push 2
push edx
call ebx
jmp 0x42f9a4
cmp eax, 2
jne 0x42e82d
cmp byte [esi + 0x129], 0
lea edi, [eax + 0x62]
jne 0x42e7a8
cmp byte [esi + 0x48c], 0
jne 0x42e7ae
mov edi, dword [esi + 0x484]
cmp byte [esi + 0x48d], 0
mov ebx, dword [sym.imp.USER32.dll_KillTimer]
je 0x42e7d6
call fcn.0045d800
test al, al
je 0x42e7d6
push edi
mov ecx, esi
call fcn.0042d100
mov eax, dword [esi + 0x2c]
push 2
push eax
call ebx
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov edx, 1
jl 0x42e7f3
mov edx, eax
mov ecx, dword [esi + 0x488]
add edx, ecx
cmp edx, edi
jl 0x42e814
push edi
mov ecx, esi
call fcn.0042d100
mov ecx, dword [esi + 0x2c]
push 2
push ecx
call ebx
jmp 0x42f9a4
cmp eax, 1
jge 0x42e81e
mov eax, 1
add eax, ecx
push eax
mov ecx, esi
call fcn.0042d100
jmp 0x42f9a4
cmp eax, 3
jne 0x42e901
cmp byte [esi + 0x48d], 0
mov edi, dword [sym.imp.USER32.dll_KillTimer]
je 0x42e866
call fcn.0045d800
test al, al
je 0x42e866
mov edx, dword [esi + 0x2c]
push 3
push edx
call edi
mov eax, dword [esi + 0x2c]
push 0
push 0
push 1
push eax
call dword [sym.imp.USER32.dll_SetTimer]
cmp byte [esi + 0x129], 0
mov ecx, 0x64
jne 0x42e87d
cmp byte [esi + 0x48c], 0
jne 0x42e883
mov ecx, dword [esi + 0x484]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov edx, 1
jl 0x42e89f
mov edx, eax
mov ecx, dword [esi + 0x488]
mov ebx, ecx
sub ebx, edx
test ebx, ebx
jg 0x42e8e8
mov ecx, dword [esi + 0x2c]
push 3
push ecx
call edi
push 0
mov ecx, esi
call fcn.0042d100
mov edx, dword [esi + 0x4a4]
mov eax, dword [esi + 0x2c]
imul edx, edx, 0x3e8
push 0
push 0x1f4
push 1
push eax
mov dword [esi + 0x4a8], edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x42f9a4
cmp eax, 1
jge 0x42e8f2
mov eax, 1
sub ecx, eax
push ecx
mov ecx, esi
call fcn.0042d100
jmp 0x42f9a4
cmp eax, 4
jne 0x42e979
mov edx, dword [esi + 0x2c]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x20]
test eax, eax
mov eax, dword [esp + 0x1c]
je 0x42e93c
sub eax, dword [esp + 0x34]
sub ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
test eax, eax
jl 0x42e958
cmp eax, dword [esi + 0x490]
jg 0x42e958
test ecx, ecx
jl 0x42e958
cmp ecx, dword [esi + 0x494]
jle 0x42f9a4
mov ecx, dword [esi + 0x2c]
push 4
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [esi + 0x2c]
push 0
push 0x19
push 5
push edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x42f9a4
cmp eax, 5
jne 0x42ebb8
or eax, 0xffffffff
cmp dword [esi + 0x490], eax
je 0x42e995
cmp dword [esi + 0x494], eax
jne 0x42e9a1
mov eax, dword [esi + 0x2c]
push 5
push eax
call dword [sym.imp.USER32.dll_KillTimer]
cmp dword [esi + 0x498], 0
mov eax, 0x88888889
jge 0x42ea2b
mov ecx, dword [esi + 0x494]
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42e9cf
mov ebx, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov edi, dword [esi + 0x494]
mov ecx, esi
call eax
add eax, ebx
cmp eax, edi
jge 0x42eb85
mov eax, 0x88888889
imul edi
add edx, edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42ea07
mov ebx, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov edi, eax
mov eax, dword [edx + 0x24]
mov ecx, esi
add edi, ebx
call eax
mov ebx, eax
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
mov ecx, dword [esi + 0x490]
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esi + 0x49c], 0
jge 0x42eab7
cmp eax, 1
mov ebx, 1
jl 0x42ea54
mov ebx, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov edi, dword [esi + 0x490]
mov ecx, esi
call eax
add eax, ebx
cmp eax, edi
jge 0x42eb85
mov eax, 0x88888889
imul edi
add edx, edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42ea91
mov dword [esp + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov edi, eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
mov ebx, eax
add ebx, dword [esp + 0x14]
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
cmp eax, 1
mov edi, 1
jl 0x42eac3
mov edi, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
add eax, edi
cmp eax, dword [esi + 0x490]
jge 0x42eb85
mov ecx, dword [esi + 0x494]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42eaff
mov ebx, eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov edi, dword [esi + 0x494]
mov ecx, esi
call eax
add eax, ebx
cmp eax, edi
jge 0x42eb85
mov eax, 0x88888889
imul edi
add edx, edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42eb33
mov ebx, eax
mov ecx, dword [esi + 0x490]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42eb5d
mov dword [esp + 0x14], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov edi, eax
mov eax, dword [edx + 0x24]
mov ecx, esi
add edi, ebx
call eax
mov ebx, eax
add ebx, dword [esp + 0x14]
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
mov ecx, dword [esi + 0x2c]
push 5
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edi, dword [esi + 0x494]
mov ebx, dword [esi + 0x490]
mov ecx, esi
call fcn.0042d2e0
or eax, 0xffffffff
mov dword [esi + 0x490], eax
mov dword [esi + 0x494], eax
jmp 0x42f9a4
cmp eax, 6
jne case.default.0x42f847
or eax, 0xffffffff
cmp dword [esi + 0x490], eax
je 0x42ebd4
cmp dword [esi + 0x494], eax
jne 0x42ebe0
mov edx, dword [esi + 0x2c]
push 6
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov ebx, dword [esi + 0x498]
test ebx, ebx
mov edi, dword [esi + 0x49c]
mov eax, 0x66666667
jge 0x42ec87
mov ecx, dword [esi + 0x494]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42ec16
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
sub eax, ebx
cmp eax, edi
jg 0x42ec41
mov eax, dword [esi + 0x2c]
push 6
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
mov ebx, eax
jmp 0x42edff
mov ecx, dword [esi + 0x494]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42ec63
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
sub edi, ebx
call edx
mov ebx, eax
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
mov ecx, dword [esi + 0x490]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
test edi, edi
jge 0x42ed24
cmp eax, 1
mov edi, 1
jl 0x42ecac
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
sub eax, edi
cmp eax, ebx
jg 0x42ecd7
mov eax, dword [esi + 0x2c]
push 6
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov edi, eax
jmp 0x42edff
mov ecx, dword [esi + 0x490]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42ecfe
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
mov ebx, eax
sub ebx, dword [esp + 0x14]
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42ed35
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
sub eax, dword [esp + 0x14]
cmp eax, ebx
jle 0x42edf3
mov ecx, dword [esi + 0x494]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42ed71
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
sub eax, dword [esp + 0x14]
cmp eax, edi
jle 0x42edf3
mov ecx, dword [esi + 0x494]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov ebx, 1
jl 0x42eda4
mov ebx, eax
mov ecx, dword [esi + 0x490]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
mov dword [esp + 0x14], 1
jl 0x42edcb
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
sub edi, ebx
call edx
mov ebx, eax
sub ebx, dword [esp + 0x14]
mov ecx, esi
call fcn.0042d2e0
jmp 0x42f9a4
mov eax, dword [esi + 0x2c]
push 6
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, esi
call fcn.0042d2e0
mov ecx, dword [esi + 0x4a4]
mov edx, dword [esi + 0x2c]
imul ecx, ecx, 0x3e8
push 0
push ecx
push 4
push edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x42f9a4
cmp dword [ebp + 0x10], 0xf060
jne case.default.0x42f847
cmp byte [esi + 0x127], 0
je case.default.0x42f847
cmp byte [esi + 0x128], 0
jne case.default.0x42f847
mov eax, dword [esi]
mov edx, dword [eax + 0x144]
call edx
jmp 0x42f9a4
mov ecx, dword [esi + 0x2c]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x42ee8a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x1c], eax
sub dword [esp + 0x20], ecx
cmp byte [esi + 0x48e], 0
je 0x42ef69
cmp byte [esi + 0x4a1], 0
je 0x42eeb4
mov edx, dword [esi]
mov eax, dword [edx + 0x190]
mov ecx, esi
call eax
test al, al
je 0x42f076
mov ecx, dword [esi + 0x2c]
mov edi, dword [sym.imp.USER32.dll_KillTimer]
push 1
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 2
push edx
call edi
mov eax, dword [esi + 0x2c]
push 3
push eax
call edi
mov ecx, dword [esi + 0x2c]
push 4
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 5
push edx
call edi
mov eax, dword [esi + 0x2c]
push 6
push eax
call edi
mov ebx, dword [esi + 0x490]
cmp ebx, 0xffffffff
je 0x42ef16
mov edi, dword [esi + 0x494]
cmp edi, 0xffffffff
je 0x42ef16
mov ecx, esi
call fcn.0042d2e0
or eax, 0xffffffff
mov dword [esi + 0x490], eax
mov dword [esi + 0x494], eax
cmp byte [esi + 0x48d], 0
je 0x42ef5e
call fcn.0045d800
test al, al
je 0x42ef5e
cmp byte [esi + 0x129], 0
mov eax, 0x64
jne 0x42ef3f
cmp byte [esi + 0x48c], 0
jne 0x42ef45
mov eax, dword [esi + 0x484]
cmp dword [esi + 0x488], eax
jge 0x42f076
push eax
mov ecx, esi
call fcn.0042d100
jmp 0x42f076
push 0
push 0xa
push 3
jmp 0x42f06c
cmp byte [esi + 0x4a0], 0
je 0x42f076
cmp byte [esi + 0x4a1], 0
je 0x42ef93
mov edx, dword [esi]
mov eax, dword [edx + 0x190]
mov ecx, esi
call eax
test al, al
je 0x42f076
mov ecx, dword [esi + 0x2c]
mov edi, dword [sym.imp.USER32.dll_KillTimer]
push 1
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 2
push edx
call edi
mov eax, dword [esi + 0x2c]
push 3
push eax
call edi
mov ecx, dword [esi + 0x2c]
push 4
push ecx
call edi
mov edx, dword [esi + 0x2c]
push 5
push edx
call edi
mov eax, dword [esi + 0x2c]
push 6
push eax
call edi
cmp byte [esi + 0x129], 0
mov eax, 0x64
jne 0x42efe0
cmp byte [esi + 0x48c], 0
jne 0x42efe6
mov eax, dword [esi + 0x484]
cmp dword [esi + 0x488], eax
jge 0x42eff6
push eax
mov ecx, esi
call fcn.0042d100
cmp byte [esi + 0x48d], 0
je 0x42f036
call fcn.0045d800
test al, al
je 0x42f036
mov ebx, dword [esi + 0x490]
cmp ebx, 0xffffffff
je 0x42f076
mov edi, dword [esi + 0x494]
cmp edi, 0xffffffff
je 0x42f076
mov ecx, esi
call fcn.0042d2e0
or eax, 0xffffffff
mov dword [esi + 0x490], eax
mov dword [esi + 0x494], eax
jmp 0x42f076
cmp dword [esi + 0x490], 0
jge 0x42f04e
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
mov dword [esi + 0x490], eax
cmp dword [esi + 0x494], 0
jge 0x42f066
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
mov dword [esi + 0x494], eax
push 0
push 0xa
push 6
mov ecx, dword [esi + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
cmp byte [esi + 0x4f5], 0
je 0x42f0ca
cmp byte [esi + 0x4f4], 0
je 0x42f0a4
call fcn.0042d6c0
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.004a77b8
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov byte [esi + 0x4f5], 0
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x214
ja 0x42f6fc
je 0x42f4c6
add eax, 0xfffffdff
cmp eax, 9
ja case.default.0x42f847
jmp dword [eax*4 + 0x42fb04]
mov edx, dword [esi + 0x1f4]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x1f4]
mov ecx, ebx
call eax
test eax, eax
jbe 0x42f153
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42f153
lea ecx, [ecx]
mov ecx, dword [esi + 0x210]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 0xe
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f130
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [esi + 0x194]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x194]
mov ecx, ebx
call eax
test eax, eax
jbe 0x42f1b3
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42f1b3
mov ecx, dword [esi + 0x1b0]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 3
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f190
cmp dword [esi + 0x3c8], 0
je 0x42f1df
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x3c8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x74]
push esi
push eax
mov eax, dword [esp + 0x24]
push eax
call edx
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0x224]
mov edx, dword [eax + 0x30]
lea ebx, [esi + 0x224]
mov ecx, ebx
call edx
test eax, eax
jbe 0x42f243
mov eax, dword [ebx]
mov edx, dword [eax + 0x30]
mov ecx, ebx
xor edi, edi
call edx
test eax, eax
jbe 0x42f243
lea esp, [esp]
mov eax, dword [esi + 0x240]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 9
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f220
mov eax, dword [esi + 0x470]
cmp eax, 0x520ebc
jne 0x42f273
mov edx, dword [esi]
mov eax, dword [edx + 0x11c]
mov ecx, esi
call eax
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, str.Iconize
jne 0x42f286
mov edx, dword [esi]
mov eax, dword [edx + 0x144]
mov ecx, esi
call eax
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [esi + 0x414], 0
je case.default.0x42f847
cmp byte [esi + 0x4f5], 0
je case.default.0x42f847
mov edx, dword [esi + 0x2c]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x42f9a4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x4e8], eax
sub eax, dword [esp + 0x34]
mov dword [esi + 0x4ec], ecx
sub ecx, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jl 0x42f9a4
mov edx, dword [esi]
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
cmp dword [esp + 0x1c], eax
jg 0x42f9a4
cmp dword [esp + 0x20], 0
jl 0x42f9a4
mov edx, dword [esi]
mov eax, dword [edx + 0x2c]
mov ecx, esi
call eax
cmp dword [esp + 0x20], eax
jg 0x42f9a4
mov byte [esi + 0x4f4], 1
jmp 0x42f9a4
cmp byte [esi + 0x4f4], 0
je 0x42f357
call fcn.0042d6c0
mov byte [esi + 0x4f4], 0
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x14]
shr eax, 0x10
mov dword [ebx], 1
mov edx, dword [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0xe8]
xor edi, edi
call eax
test eax, eax
jbe 0x42f42c
mov edx, dword [esi]
mov eax, dword [edx + 0xec]
push edi
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xd4]
call eax
test al, al
je 0x42f415
mov edx, dword [esi]
mov eax, dword [edx + 0xec]
push edi
mov ecx, esi
call eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax]
mov edx, dword [edx + 0x20]
push ecx
movzx ecx, word [ebp + 0x14]
push ecx
mov ecx, eax
call edx
test al, al
je 0x42f415
mov eax, dword [esi]
mov edx, dword [eax + 0xec]
push 0
push 0x54dec0
push 0x54de84
push 0
push edi
mov ecx, esi
call edx
push eax
call fcn.004b967b
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
add esp, 0x14
push ecx
push edx
push 0x20a
mov ecx, eax
call fcn.0040c6f0
test eax, eax
mov dword [ebx], eax
je 0x42e662
mov eax, dword [esi]
mov edx, dword [eax + 0xe8]
mov ecx, esi
add edi, 1
call edx
cmp edi, eax
jb 0x42f392
xor edi, edi
cmp dword [ebx], edi
je 0x42e662
mov eax, dword [esi + 0x42c]
mov edx, dword [eax + 0x30]
lea ecx, [esi + 0x42c]
call edx
test eax, eax
jbe 0x42e662
push edi
lea eax, [esp + 0x14]
push eax
push edi
push 0x68
mov dword [esp + 0x20], edi
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp dword [ebp + 0x10], edi
mov eax, dword [esp + 0x10]
jg 0x42f46d
neg eax
mov edx, dword [esi + 0x42c]
lea ecx, [esi + 0x42c]
mov dword [esi + 0x45c], eax
mov eax, dword [edx + 0x30]
call eax
test eax, eax
jbe 0x42e662
lea esp, [esp]
mov ecx, dword [esi + 0x448]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 0xc
push esi
call eax
mov edx, dword [esi + 0x42c]
mov eax, dword [edx + 0x30]
lea ecx, [esi + 0x42c]
add edi, 1
call eax
cmp edi, eax
jb 0x42f490
mov dword [ebx], 0
jmp 0x42f9a4
mov eax, dword [ebp + 0x10]
add eax, 0xffffffff
cmp eax, 7
ja case.default.0x42f4d1
jmp dword [eax*4 + 0x42fb2c]
mov dword [esi + 0x3d0], 1
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 2
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 3
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 4
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 5
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 6
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 7
jmp case.default.0x42f4d1
mov dword [esi + 0x3d0], 8
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov dword [esi + 0x3d4], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0x3dc], edx
mov ecx, dword [eax + 4]
mov dword [esi + 0x3d8], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esi]
mov dword [esi + 0x3e0], edx
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov ecx, eax
mov eax, edi
call fcn.0045c9f0
mov ecx, dword [esi + 0x3e0]
mov edi, dword [esi + 0x3d8]
mov edx, ecx
sub edx, edi
add esp, 8
cmp edx, eax
jle 0x42f5cb
mov edx, dword [esi + 0x3d0]
cmp edx, 8
je 0x42f5c3
cmp edx, 4
je 0x42f5c3
cmp edx, 7
je 0x42f5c3
sub ecx, eax
mov dword [esi + 0x3d8], ecx
jmp 0x42f5cb
add eax, edi
mov dword [esi + 0x3e0], eax
mov eax, dword [esi + 0x3e4]
mov edx, dword [eax + 0x30]
lea ebx, [esi + 0x3e4]
mov ecx, ebx
xor edi, edi
call edx
test eax, eax
jbe 0x42f607
mov eax, dword [esi + 0x400]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 8
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f5e4
mov ecx, dword [esi + 0x3d4]
mov edi, dword [ebp + 0x14]
mov dword [edi], ecx
mov edx, dword [esi + 0x3dc]
mov dword [edi + 8], edx
mov eax, dword [esi + 0x3d8]
mov dword [edi + 4], eax
mov ecx, dword [esi + 0x3e0]
mov dword [edi + 0xc], ecx
cmp byte [esi + 0x424], 0
je 0x42f67d
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
mov ecx, dword [edi + 8]
sub ecx, dword [edi]
cmp eax, ecx
jle 0x42f67d
mov eax, dword [esi + 0x3d0]
cmp eax, 1
je 0x42f66d
cmp eax, 5
je 0x42f66d
cmp eax, 7
je 0x42f66d
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
add eax, dword [edi]
mov dword [edi + 8], eax
jmp 0x42f67d
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
mov ecx, dword [edi + 8]
sub ecx, eax
mov dword [edi], ecx
cmp byte [esi + 0x425], 0
je 0x42f6e5
mov edx, dword [esi]
mov eax, dword [edx + 0x5c]
mov ecx, esi
call eax
mov ecx, dword [edi + 0xc]
sub ecx, dword [edi + 4]
cmp eax, ecx
jle 0x42f6e5
mov eax, dword [esi + 0x3d0]
cmp eax, 3
je 0x42f6d4
cmp eax, 5
je 0x42f6d4
cmp eax, 6
je 0x42f6d4
mov edx, dword [esi]
mov eax, dword [edx + 0x5c]
mov ecx, esi
call eax
add eax, dword [edi + 4]
mov dword [edi + 0xc], eax
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [esi]
mov eax, dword [edx + 0x5c]
mov ecx, esi
call eax
mov ecx, dword [edi + 0xc]
sub ecx, eax
mov dword [edi + 4], ecx
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x401
ja 0x42f828
je 0x42f7aa
cmp eax, 0x215
jne case.default.0x42f847
cmp byte [esi + 0x4ae], 0
je 0x42f793
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x42f744
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x4b0], eax
mov dword [esi + 0x4b4], ecx
mov byte [esi + 0x4ae], 0
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, dword [esi + 0x4b8]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x4b8]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42f793
lea ebx, [ebx]
mov ecx, dword [esi + 0x4d4]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 0xf
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f770
xor al, al
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [esi + 0x350], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x354], edx
mov ecx, dword [eax + 8]
mov dword [esi + 0x358], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esi + 0x364]
lea ecx, [esi + 0x364]
mov dword [esi + 0x35c], edx
mov edx, dword [eax + 0x30]
xor edi, edi
call edx
test eax, eax
jbe 0x42f81b
jmp 0x42f7f0
mov eax, dword [esi + 0x380]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 2
push esi
call eax
mov edx, dword [esi + 0x364]
mov eax, dword [edx + 0x30]
lea ecx, [esi + 0x364]
add edi, 1
call eax
cmp edi, eax
jb 0x42f7f0
mov ecx, dword [esi + 0x360]
mov dword [ebx], ecx
jmp 0x42f9a4
cmp eax, 0x8001
ja 0x42f98b
je 0x42f97c
add eax, 0xfffffbfe
cmp eax, 5
ja case.default.0x42f847
jmp dword [eax*4 + 0x42fb4c]
mov edx, dword [esi]
mov eax, dword [edx + 0x148]
call eax
test al, al
je 0x42f868
mov edx, dword [esi]
mov eax, dword [edx + 0x13c]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x128]
push 1
mov ecx, esi
call eax
jmp 0x42f9a4
mov edx, dword [esi + 0x364]
mov eax, dword [edx + 0x30]
lea ebx, [esi + 0x364]
mov ecx, ebx
xor edi, edi
call eax
test eax, eax
jbe 0x42f9a4
jmp 0x42f8a0
mov ecx, dword [esi + 0x3b0]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 0xd
push esi
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x30]
mov ecx, ebx
add edi, 1
call eax
cmp edi, eax
jb 0x42f8a0
jmp 0x42f9a4
mov eax, dword [ebp + 0x14]
sub eax, 0x201
je 0x42f927
sub eax, 3
jne 0x42f9a4
cmp dword [esi + 0x348], eax
je 0x42f9a4
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov edx, dword [esi + 0x4f8]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
push edx
call edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x348]
mov eax, dword [ecx]
mov eax, dword [eax + 0x70]
push esi
push edx
mov edx, dword [esp + 0x1c]
push edx
call eax
mov ecx, dword [esi + 0x4f8]
push ecx
call edi
jmp 0x42f9a4
mov edx, dword [esi]
mov eax, dword [edx + 0x148]
call eax
test al, al
mov edx, dword [esi]
mov ecx, esi
je 0x42f943
mov eax, dword [edx + 0x13c]
call eax
jmp 0x42f9a4
mov eax, dword [edx + 0x144]
call eax
jmp 0x42f9a4
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.0041a120
add esp, 4
jmp 0x42f9a4
mov edx, dword [ebp + 0x10]
push edx
call fcn.0041a180
add esp, 4
jmp 0x42f9a4
mov eax, dword [ebp + 0x10]
push eax
call fcn.0041a1e0
movzx ecx, al
add esp, 4
mov dword [ebx], ecx
jmp 0x42f9a4
mov edx, dword [esi + 0x4f8]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x42f9a4
cmp eax, 0x8002
jne case.default.0x42f847
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc4]
push esi
call edx
mov al, 1
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10