Function at 0x42d2c0
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x4509b3
call fcn.004419dc
sub esp, 0x264
push ebx
push esi
mov ebx, ecx
xor esi, esi
push edi
mov dword [ebp - 0x30], ebx
mov edx, dword [ebx + 0x18]
mov dword [ebp - 0x10], esi
lea eax, [ebx + 0x44c]
cmp dword [ebp - 0x10], edx
jge 0x42d307
mov ecx, dword [eax]
test ecx, ecx
je 0x42d2fb
mov ecx, dword [ecx]
inc dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
je 0x42d326
inc esi
add eax, 4
cmp esi, 0x400
jl 0x42d2e6
or eax, 0xffffffff
mov ecx, dword [ebp + 0xc]
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
jne 0x42d32a
cmp ecx, 1
je 0x42d32a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ecx
jmp 0x42e7bb
mov eax, esi
jmp 0x42d30a
cmp byte [ebx + 0x428], 0
mov esi, dword [ebp + 0x14]
je 0x42d33e
cmp dword [ebx + 0x198c], ecx
je 0x42d364
xor eax, eax
cmp dword [ebx + 0x1988], eax
jl 0x42d364
lea edi, [ebx + 0x1588]
mov edx, dword [edi]
test edx, edx
je 0x42d358
cmp dword [edx], ecx
je 0x42d3cd
inc eax
add edi, 4
cmp eax, dword [ebx + 0x1988]
jle 0x42d34e
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
mov edx, 0x111
mov edi, dword [ebx + eax*4 + 0x44c]
lea eax, [ebx + eax*4 + 0x44c]
cmp ecx, edx
ja 0x42e19f
je 0x42df84
cmp ecx, 0xf
ja 0x42d529
je 0x42d50c
dec ecx
je 0x42e3b2
dec ecx
je 0x42d4fd
dec ecx
je 0x42d44a
dec ecx
dec ecx
je 0x42d41c
dec ecx
dec ecx
jne 0x42e7b2
push dword [edi + 0x1c]
mov ecx, ebx
push dword [ebp - 0x18]
call fcn.0042e9db
jmp 0x42e7b2
and dword [ebp - 0x24], 0
push esi
push dword [ebp + 0x10]
mov dword [ebx + 0x198c], ecx
mov byte [ebx + 0x428], 1
mov eax, dword [ebx + eax*4 + 0x1588]
push ecx
lea ecx, [ebp - 0x24]
push dword [ebp + 8]
mov eax, dword [eax + 4]
push ecx
push eax
mov ecx, 0x4615a8
call fcn.00412844
and byte [ebx + 0x428], 0
or dword [ebx + 0x198c], 0xffffffff
dec eax
jne 0x42d364
mov eax, dword [ebp - 0x24]
jmp 0x42e7c4
push dword [ebp + 8]
mov eax, esi
shr eax, 0x10
push eax
mov ecx, ebx
movzx eax, si
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x18]
call fcn.0042ebdb
test al, al
je 0x42e3b2
mov byte [edi + 0x4138], 1
jmp 0x42e3b2
lea eax, [ebp - 0x4c]
push eax
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ax, word [ebp - 0x4c]
sub ax, word [edi + 0x2e]
mov dword [ebp - 0x34], eax
mov ax, word [ebp - 0x48]
sub ax, word [edi + 0x30]
cmp dword [edi + 8], 0x80000000
mov dword [ebp - 0x28], eax
jne 0x42d4e8
and dword [ebp - 0x24], 0
and dword [ebp - 0x10], 0
lea esi, [ebx + 0x44c]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebx + 0x18]
jge 0x42d4e8
mov eax, dword [esi]
test eax, eax
je 0x42d4d9
mov ecx, dword [eax + 4]
inc dword [ebp - 0x24]
cmp ecx, dword [edi]
jne 0x42d4d9
lea ecx, [ebp - 0x4c]
push ecx
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x48]
push 0
sub dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x4c]
sub dword [ebp - 0x44], eax
push dword [ebp - 0x40]
movsx eax, word [ebp - 0x34]
add dword [ebp - 0x4c], eax
push dword [ebp - 0x44]
movsx eax, word [ebp - 0x28]
add dword [ebp - 0x48], eax
push dword [ebp - 0x48]
mov eax, dword [esi]
push dword [ebp - 0x4c]
push dword [eax]
call dword [sym.imp.USER32.dll_MoveWindow]
inc dword [ebp - 0x10]
add esi, 4
cmp dword [ebp - 0x10], 0x400
jl 0x42d483
mov ax, word [ebp - 0x34]
add word [edi + 0x2e], ax
mov ax, word [ebp - 0x28]
add word [edi + 0x30], ax
jmp 0x42e7b2
push dword [ebp - 0x18]
mov ecx, ebx
call fcn.0042f67c
jmp 0x42e7b2
cmp dword [edi + 0x4178], 0
je 0x42e7b2
push edi
mov ecx, ebx
push dword [ebp + 8]
call fcn.00434e1a
jmp 0x42e3b2
cmp ecx, 0x20
je 0x42de69
cmp ecx, 0x4e
je 0x42d63e
cmp ecx, 0x53
je 0x42d61e
cmp ecx, 0x7b
jne 0x42e7b2
mov ebx, dword [ebp + 0x10]
cmp ebx, dword [ebp + 8]
jne 0x42d584
cmp dword [edi + 0x4154], 0
je 0x42e3b2
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [ebp + 8]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push dword [edi + 0x4154]
jmp 0x42d60f
cmp dword [ebp - 0x18], 0xffffffff
je 0x42d5ab
mov eax, dword [eax]
push 3
pop esi
mov edx, dword [eax + 0x14]
cmp edx, esi
jl 0x42d5ab
lea ecx, [eax + 0x50]
mov eax, dword [ecx]
test eax, eax
je 0x42d5a3
cmp dword [eax], ebx
je 0x42d61a
inc esi
add ecx, 4
cmp esi, edx
jle 0x42d599
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e3b2
mov eax, dword [edi + eax*4 + 0x44]
mov cl, byte [eax + 0x78]
cmp cl, 0xe
je 0x42e3b2
cmp cl, 0xf
je 0x42e3b2
cmp cl, 0x13
je 0x42e3b2
cmp cl, 0x10
je 0x42e3b2
cmp dword [eax + 4], 0
je 0x42e3b2
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x14]
push 0
push dword [edi]
mov eax, dword [edi + eax*4 + 0x44]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
jmp 0x42e3b2
mov eax, esi
jmp 0x42d5ae
add edi, 0x20
mov ecx, edi
call fcn.00401438
test al, al
jne 0x42e7b2
push dword [edi]
mov ecx, ebx
call fcn.0042d23d
jmp 0x42e3b2
mov ecx, dword [esi + 8]
mov edx, 0xfffffe6e
cmp ecx, edx
ja 0x42d83f
je 0x42d7cc
mov eax, 0xfffffdd9
cmp ecx, eax
ja 0x42d6f4
je 0x42d6e1
cmp ecx, 0xfffffd09
je 0x42d6c0
cmp ecx, 0xfffffd0e
je 0x42d6b4
mov eax, 0xfffffd0f
cmp ecx, eax
je 0x42d68d
add eax, 7
cmp ecx, eax
jne 0x42e7b2
push eax
jmp 0x42d7bd
cmp byte [edi + 0x414e], 1
jne 0x42d6a1
push eax
mov ecx, ebx
push dword [esi + 4]
call fcn.004348fe
and byte [edi + 0x414e], 0
and byte [edi + 0x414d], 0
jmp 0x42e7b2
mov byte [edi + 0x414d], 1
jmp 0x42e7b2
cmp byte [edi + 0x414d], 0
lea eax, [edi + 0x414e]
mov byte [eax], 1
jne 0x42e7b2
and byte [eax], 0
push dword [esi + 8]
jmp 0x42d7bd
push 0
push 0
push 0x130b
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x42d687
cmp ecx, 0xfffffdda
je 0x42d775
cmp ecx, 0xfffffe3d
je 0x42d7cc
cmp ecx, 0xfffffe64
jne 0x42e7b2
mov edi, dword [esi]
push 0xfffffffffffffff0
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test ah, 1
je 0x42e7b2
cmp word [esi + 0xc], 0x20
jne 0x42e7b2
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 9
push 0x110a
push edi
call esi
test eax, eax
je 0x42e7b2
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xac]
push eax
push 0
push 0x110c
push edi
mov dword [ebp - 0xac], 4
call esi
test eax, eax
jmp 0x42d82f
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
jge 0x42e7b2
push 9
call edi
test ax, ax
jge 0x42e7b2
push 0
push 0
push 0x130b
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x10
mov dword [ebp - 0x10], eax
call edi
test ax, ax
jge 0x42d7b7
dec dword [ebp - 0x10]
jmp 0x42d7ba
inc dword [ebp - 0x10]
push dword [ebp - 0x10]
push dword [esi + 4]
mov ecx, ebx
call fcn.004348fe
jmp 0x42e7b2
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 9
push 0x110a
push dword [esi]
call edi
test eax, eax
je 0x42e7b2
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xac]
push eax
push 0
push 0x110c
mov dword [ebp - 0xac], 4
push dword [esi]
call edi
test eax, eax
je 0x42e7b2
mov eax, dword [esi + 0x34]
cmp eax, dword [esi + 0x5c]
je 0x42e7b2
mov esi, dword [esi + 0xc]
cmp esi, 0x1000
je 0x42e7b2
cmp esi, 1
je 0x42e7b2
push 0
push dword [ebp - 0x88]
jmp 0x42d7c0
cmp ecx, 0xfffffec0
je 0x42de58
cmp ecx, 0xfffffed4
je 0x42de58
cmp ecx, 0xffffff93
je 0x42ddad
cmp ecx, 0xffffff94
je 0x42dd25
cmp ecx, 0xfffffff4
je 0x42dc18
cmp ecx, 0xfffffffb
je 0x42d9ee
cmp ecx, 0xfffffffe
jne 0x42e7b2
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x20]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
je 0x42d8d4
mov eax, dword [ebx + eax*4 + 0x44c]
push 3
pop edx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x10], edx
cmp ecx, edx
jl 0x42d8d4
lea edx, [eax + 0x50]
mov eax, dword [edx]
test eax, eax
je 0x42d8c9
mov eax, dword [eax]
cmp eax, dword [esi]
je 0x42d961
inc dword [ebp - 0x10]
add edx, 4
cmp dword [ebp - 0x10], ecx
jle 0x42d8b9
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
mov al, byte [eax + 0x78]
cmp al, 0x10
jb 0x42e7b2
cmp al, 0x11
jbe 0x42d969
cmp al, 0x13
jne 0x42e7b2
mov eax, dword [ebp - 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x64]
push eax
push 0
push 0x1012
push dword [esi]
call edi
cmp eax, 0xffffffff
je 0x42e7b2
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x140]
push eax
push 0
push 0x1005
mov dword [ebp - 0x140], 4
push dword [esi]
call edi
test byte [ebp - 0x5c], 0xe
je 0x42e7b2
push 0
push dword [ebp - 0x120]
jmp 0x42d7c0
mov eax, dword [ebp - 0x10]
jmp 0x42d8d7
mov eax, dword [ebp - 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp + 0x14]
push 0
push 0x1111
push dword [eax]
call esi
test eax, eax
je 0x42e7b2
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp + 0x14]
push 0
push 0x110c
push dword [eax]
mov dword [ebp - 0xac], 0xc
mov dword [ebp - 0xa0], 0xf000
call esi
test byte [ebp - 0x78], 0x46
je 0x42e7b2
mov ebx, dword [ebp + 0x14]
push 0
mov edi, 0x110b
push 9
push edi
push dword [ebx]
call esi
push dword [ebp - 0x74]
push 9
push edi
push dword [ebx]
call esi
jmp 0x42e7b2
and byte [ebp - 0x29], 0
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x20]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x18]
cmp eax, 0xffffffff
je 0x42da3e
mov eax, dword [ebx + eax*4 + 0x44c]
push 3
pop edx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x10], edx
cmp ecx, edx
jl 0x42da3e
lea edx, [eax + 0x50]
mov eax, dword [edx]
test eax, eax
je 0x42da33
mov eax, dword [eax]
cmp eax, dword [esi]
je 0x42da90
inc dword [ebp - 0x10]
add edx, 4
cmp dword [ebp - 0x10], ecx
jle 0x42da27
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
jne 0x42daad
push dword [esi]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xffffffff
je 0x42da9a
mov ecx, dword [ebx + ecx*4 + 0x44c]
mov dword [ebp - 0x10], 3
mov edx, dword [ecx + 0x14]
cmp edx, 3
jl 0x42da9a
add ecx, 0x50
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
test ecx, ecx
je 0x42da82
cmp dword [ecx], eax
je 0x42da95
inc dword [ebp - 0x10]
add dword [ebp - 0x24], 4
cmp dword [ebp - 0x10], edx
jle 0x42da75
jmp 0x42da9a
mov eax, dword [ebp - 0x10]
jmp 0x42da41
mov eax, dword [ebp - 0x10]
jmp 0x42da9d
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov byte [ebp - 0x29], 1
mov dword [ebp - 0x10], eax
mov eax, dword [edi + eax*4 + 0x44]
mov al, byte [eax + 0x78]
cmp al, 0x10
je 0x42db67
cmp al, 0x13
jne 0x42e7b2
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x118]
push eax
push 0
push 0x1012
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
jle 0x42dbe2
cmp byte [ebp - 0x29], 0
jne 0x42dbe2
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
push eax
push 0
push 0x1005
mov dword [ebp - 0x168], 4
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x42e7b2
test byte [ebp - 0x110], 0xe
je 0x42dbe2
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x148]
call fcn.0042ccf6
test al, al
je 0x42dbdc
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
test eax, eax
je 0x42dbdc
jmp 0x42dbd6
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x80]
push eax
push 0
push 0x1111
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x42dbe2
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xac]
push eax
push 0
push 0x110c
mov dword [ebp - 0xac], 4
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
test byte [ebp - 0x78], 0x46
je 0x42dbe2
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x88]
call fcn.0042ccf6
test al, al
je 0x42dbdc
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
cmp dword [eax + 4], 0
jne 0x42dbe2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
push dword [esi]
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
mov eax, dword [eax + 4]
test eax, eax
je 0x42e7b2
push 0
push dword [edi]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
jmp 0x42e7b2
cmp dword [ebp - 0x18], 0xffffffff
je 0x42dc4b
mov eax, dword [eax]
push 3
pop ecx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x10], ecx
cmp edx, ecx
jl 0x42dc4b
lea ecx, [eax + 0x50]
mov eax, dword [ecx]
test eax, eax
je 0x42dc40
mov eax, dword [eax]
cmp eax, dword [esi]
je 0x42dd15
inc dword [ebp - 0x10]
add ecx, 4
cmp dword [ebp - 0x10], edx
jle 0x42dc30
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x42dc75
push 0
push 0
push 0x41c
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
mov al, byte [eax + 0x78]
cmp al, 0x10
je 0x42dc8b
cmp al, 0x13
jne 0x42e7b2
mov eax, dword [esi + 0xc]
dec eax
je 0x42dd1d
sub eax, 0x10000
jne 0x42e7b2
mov eax, dword [esi + 0x2c]
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push eax
mov ecx, ebx
call fcn.0042ccf6
test al, al
je 0x42e3b2
mov eax, dword [ebp - 0x14]
push 0xfffffffffffffff0
mov eax, dword [edi + eax*4 + 0x44]
push dword [eax + 0x24]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x8000000
jne 0x42e3b2
test byte [esi + 0x28], 0x11
mov eax, dword [ebp - 0x14]
je 0x42dcef
mov ecx, dword [edi + eax*4 + 0x44]
cmp byte [ecx + 0x78], 0x14
jne 0x42e7b2
lea edi, [edi + eax*4 + 0x44]
mov eax, dword [edi]
mov eax, dword [eax + 0x3c]
cmp eax, 0xffffffff
je 0x42dd00
mov dword [esi + 0x30], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x38]
test eax, eax
jl 0x42e3b2
mov dword [esi + 0x34], eax
jmp 0x42e3b2
mov eax, dword [ebp - 0x10]
jmp 0x42dc4e
push 0x20
pop eax
jmp 0x42e7c4
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push eax
mov ecx, ebx
mov dword [ebp - 0x10], eax
call fcn.0042ccf6
mov eax, dword [ebp - 0x14]
mov cl, byte [esi + 0x10]
push 0
mov eax, dword [edi + eax*4 + 0x44]
mov byte [eax + 0x79], cl
push dword [esi + 4]
mov ecx, ebx
call fcn.004348fe
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + eax*4 + 0x44]
lea eax, [edi + eax*4 + 0x44]
cmp dword [ecx + 0x1c], 0
jle 0x42e7b2
mov ecx, dword [ebp - 0x10]
mov dword [ebx + 0x42c], ecx
mov eax, dword [eax]
add eax, 0x18
lea ecx, [ebx + 0x430]
push eax
call fcn.004010e6
mov eax, dword [ebp - 0x14]
push 0x435cbd
mov eax, dword [edi + eax*4 + 0x44]
mov al, byte [eax + 0x7c]
mov byte [ebx + 0x43c], al
push dword [esi + 0x10]
push 0x1030
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x42e7b2
xor edi, edi
lea esi, [ebx + 0x1568]
push edi
push edi
push edi
push dword [esi]
call dword [sym.imp.COMCTL32.dll_ImageList_SetDragCursorImage]
push 0xfffffffffffffff0
push 0xfffffffffffffff8
push edi
push dword [esi]
call dword [sym.imp.COMCTL32.dll_ImageList_BeginDrag]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [ebp + 0x10]
push 1
pop esi
mov dword [ebx + 0x156c], eax
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], edi
push eax
lea ecx, [ebp - 0x100]
mov dword [ebp - 4], esi
call fcn.0040374f
push 2
lea eax, [ebp - 0x100]
push esi
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x38], esp
push str._GUI_DRAGID
call fcn.0040101d
mov ecx, 0x4602d0
call fcn.0043f47a
mov ebx, dword [ebp + 0x14]
lea esi, [ebx + 0x20]
push esi
push dword [ebx]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebx + 0x24]
push dword [esi]
push edi
call dword [sym.imp.COMCTL32.dll_ImageList_DragEnter]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.00402e90
jmp 0x42e7b2
push 1
push 0
push dword [esi]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x42e7b2
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0xbc]
jl 0x42e7b2
cmp eax, dword [ebp - 0xb4]
jg 0x42e7b2
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0xb8]
jl 0x42e7b2
cmp eax, dword [ebp - 0xb0]
jg 0x42e7b2
or dword [ebp - 0x14], 0xffffffff
cmp byte [edi + 0x4118], 0
je 0x42df64
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov esi, eax
test esi, esi
je 0x42df37
cmp esi, dword [ebp + 8]
je 0x42df37
or eax, 0xffffffff
cmp dword [ebp - 0x18], eax
je 0x42df34
mov eax, dword [ebp - 0x18]
push 3
mov ecx, dword [ebx + eax*4 + 0x44c]
pop eax
mov dword [ebp - 0x10], eax
mov edx, dword [ecx + 0x14]
cmp edx, eax
jl 0x42df31
lea eax, [ecx + 0x50]
mov ecx, dword [eax]
test ecx, ecx
je 0x42df26
cmp dword [ecx], esi
je 0x42df5f
inc dword [ebp - 0x10]
add eax, 4
cmp dword [ebp - 0x10], edx
jle 0x42df1c
or eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
je 0x42df64
mov eax, dword [edi + eax*4 + 0x44]
mov ax, word [eax + 0x6c]
cmp ax, 0xffff
je 0x42df64
movsx eax, ax
push eax
mov ecx, ebx
call fcn.0042eb11
push 1
jmp 0x42dd1f
mov eax, dword [ebp - 0x10]
jmp 0x42df34
mov eax, dword [ebp - 0x18]
mov ecx, ebx
mov eax, dword [ebx + eax*4 + 0x44c]
push dword [eax + 0xc]
call fcn.0042eb11
cmp dword [edi + 0x10], 0
je 0x42e7b2
jmp 0x42df58
cmp word [ebp + 0x10], 2
jne 0x42dfae
cmp byte [ebx], 0
je 0x42e3b2
push 0
push 0xf060
push 0x112
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x42e3b2
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
test cx, cx
mov dword [ebp - 0x38], ecx
jne 0x42dfc9
test esi, esi
jne 0x42dfc9
movzx eax, word [ebp + 0x10]
mov dword [ebp - 0x10], eax
jmp 0x42e02a
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xffffffff
je 0x42dffd
mov eax, dword [eax]
mov dword [ebp - 0x10], 3
mov edx, dword [eax + 0x14]
cmp edx, 3
jl 0x42dffd
add eax, 0x50
mov ecx, dword [eax]
test ecx, ecx
je 0x42dfef
cmp dword [ecx], esi
je 0x42e01e
inc dword [ebp - 0x10]
add eax, 4
cmp dword [ebp - 0x10], edx
jle 0x42dfe5
mov ecx, dword [ebp - 0x18]
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
cmp ecx, 0xffffffff
je 0x42e026
imul ecx, ecx, 0x1003
add ecx, eax
mov dword [ebp - 0x10], ecx
jmp 0x42e02a
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
jmp 0x42e000
and dword [ebp - 0x10], 0
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x10]
call fcn.0042ccf6
test al, al
jne 0x42e060
mov eax, dword [edi + 0x4174]
add edi, 0x4174
cmp eax, 0xffffffff
je 0x42e7b2
or dword [edi], 0xffffffff
push 0
push eax
jmp 0x42d7c0
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
cmp byte [eax + 0x78], 0xf
jne 0x42e189
mov ebx, 0x104
push ebx
call fcn.00441226
mov edx, eax
mov eax, dword [ebp - 0x14]
pop ecx
mov dword [ebp - 0x34], edx
mov eax, dword [edi + eax*4 + 0x44]
push 0xa
pop ecx
lea edi, [ebp - 0xe4]
mov esi, dword [eax + 4]
xor eax, eax
mov dword [ebp - 0xe8], 0x2c
rep stosd dword es:[edi], eax
lea eax, [ebp - 0xe8]
xor edi, edi
push eax
push edi
push dword [ebp - 0x10]
mov dword [ebp - 0xc0], ebx
mov ebx, dword [sym.imp.USER32.dll_GetMenuItemInfoA]
mov dword [ebp - 0xe4], 0x10
push esi
mov dword [ebp - 0xc4], edx
call ebx
test eax, eax
je 0x42e17d
test byte [ebp - 0xdf], 2
je 0x42e17d
or dword [ebp - 0x28], 0xffffffff
push esi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
cmp eax, edi
mov dword [ebp - 0x24], eax
jle 0x42e10c
push edi
push esi
call dword [sym.imp.USER32.dll_GetMenuItemID]
cmp eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
je 0x42e114
inc edi
cmp edi, dword [ebp - 0x24]
jl 0x42e0f6
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x28], eax
jne 0x42e17d
mov dword [ebp - 0x28], edi
dec edi
js 0x42e134
lea eax, [ebp - 0xe8]
push eax
push 1
push edi
push esi
call ebx
test eax, eax
je 0x42e117
test byte [ebp - 0xdf], 2
jne 0x42e117
mov eax, dword [ebp - 0x34]
inc edi
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], edi
lea edi, [eax + 1]
cmp edi, dword [ebp - 0x24]
jge 0x42e169
lea eax, [ebp - 0xe8]
push eax
push 1
push edi
push esi
call ebx
test eax, eax
je 0x42e166
test byte [ebp - 0xdf], 2
je 0x42e169
inc edi
jmp 0x42e147
push 0x400
dec edi
push dword [ebp - 0x28]
push edi
push dword [ebp - 0x50]
push esi
call dword [sym.imp.USER32.dll_CheckMenuRadioItem]
push dword [ebp - 0x34]
call fcn.004415fb
mov ebx, dword [ebp - 0x30]
pop ecx
movzx eax, word [ebp - 0x38]
push eax
push dword [ebp - 0x10]
mov ecx, ebx
call fcn.004348fe
test al, al
jmp 0x42e3ac
mov edx, 0x138
cmp ecx, edx
ja 0x42e3dc
je 0x42e258
cmp ecx, 0x112
je 0x42e358
cmp ecx, 0x113
jbe 0x42e7b2
cmp ecx, 0x115
jbe 0x42e2c5
cmp ecx, 0x133
je 0x42e270
add edx, 0xfffffffc
cmp ecx, edx
je 0x42e20e
jbe 0x42e7b2
cmp ecx, 0x137
ja 0x42e7b2
push esi
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0x18]
call fcn.0042ee95
jmp 0x42e7c4
cmp dword [ebp - 0x18], 0xffffffff
je 0x42e23b
mov eax, dword [eax]
push 3
pop ecx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x10], ecx
cmp edx, ecx
jl 0x42e23b
add eax, 0x50
mov ecx, dword [eax]
test ecx, ecx
je 0x42e230
cmp dword [ecx], esi
je 0x42e26b
inc dword [ebp - 0x10]
add eax, 4
cmp dword [ebp - 0x10], edx
jle 0x42e226
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
cmp byte [eax + 0x78], 1
jne 0x42e7b2
push esi
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0x18]
call fcn.0042ef5a
jmp 0x42e7c4
mov eax, dword [ebp - 0x10]
jmp 0x42e23e
cmp dword [ebp - 0x18], 0xffffffff
push 3
pop ecx
je 0x42e29d
mov eax, dword [eax]
mov dword [ebp - 0x10], ecx
mov edx, dword [eax + 0x14]
cmp edx, ecx
jl 0x42e29d
add eax, 0x50
mov ecx, dword [eax]
test ecx, ecx
je 0x42e292
cmp dword [ecx], esi
je 0x42e2c0
inc dword [ebp - 0x10]
add eax, 4
cmp dword [ebp - 0x10], edx
jle 0x42e288
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
mov al, byte [eax + 0x78]
cmp al, 2
je 0x42e258
cmp al, 3
je 0x42e258
jmp 0x42e7b2
mov eax, dword [ebp - 0x10]
jmp 0x42e2a0
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xffffffff
je 0x42e2f9
mov eax, dword [eax]
mov dword [ebp - 0x10], 3
mov edx, dword [eax + 0x14]
cmp edx, 3
jl 0x42e2f9
add eax, 0x50
mov ecx, dword [eax]
test ecx, ecx
je 0x42e2eb
cmp dword [ecx], esi
je 0x42e317
inc dword [ebp - 0x10]
add eax, 4
cmp dword [ebp - 0x10], edx
jle 0x42e2e1
mov ecx, dword [ebp - 0x18]
or eax, 0xffffffff
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
cmp ecx, 0xffffffff
je 0x42e31f
imul ecx, ecx, 0x1003
add ecx, eax
jmp 0x42e321
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
jmp 0x42e2fc
xor ecx, ecx
cmp word [ebp + 0x10], 8
jne 0x42e332
mov edx, dword [edi + eax*4 + 0x44]
cmp byte [edx + 0x78], 0x12
je 0x42e34b
cmp word [ebp + 0x10], 4
jne 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
cmp byte [eax + 0x78], 0x16
jne 0x42e7b2
mov eax, dword [ebp + 0x10]
shr eax, 0x10
push eax
push ecx
jmp 0x42e191
mov eax, dword [ebp + 0x10]
and eax, 0xfff0
sub eax, 0xf000
je 0x42e3d0
sub eax, 0x20
je 0x42e3b9
sub eax, 0x10
je 0x42e39a
sub eax, 0x30
je 0x42e38a
sub eax, 0xc0
jne 0x42e7b2
push 0
push 0
push edi
push 0xfffffffffffffffb
jmp 0x42e3a1
push 0
push 0
push edi
push 0xfffffffffffffffd
mov ecx, ebx
call fcn.0042d0b2
jmp 0x42e3b2
push 0
push 0
push edi
push 0xfffffffffffffffa
mov ecx, ebx
call fcn.0042d0b2
test byte [ebx + 0x10], 1
je 0x42e7b2
xor eax, eax
jmp 0x42e7c4
push 0
push 0
push edi
push 0xfffffffffffffffc
mov ecx, ebx
call fcn.0042d0b2
mov ecx, ebx
call fcn.0042ea5c
jmp 0x42e3a8
mov byte [edi + 0x4138], 1
jmp 0x42e7b2
sub ecx, 0x200
je 0x42e781
dec ecx
dec ecx
je 0x42e602
sub ecx, 0x30
je 0x42e5dd
dec ecx
jne 0x42e7b2
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_DragQueryPoint]
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call fcn.0042e7d5
cmp eax, 0xffffffff
mov dword [ebp - 0x14], eax
je 0x42e7b2
mov eax, dword [edi + eax*4 + 0x44]
test byte [eax + 0x79], 8
je 0x42e7b2
mov eax, dword [eax]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x84]
mov dword [ebp + 0x14], eax
push ecx
lea ecx, [ebp - 0x104]
push ecx
push 0xb0
push eax
call esi
push 0
push 0
push 0xffffffffffffffff
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
and dword [ebp - 0x10], 0
mov dword [ebp + 8], eax
test eax, eax
jle 0x42e4dd
mov ebx, 0x104
lea eax, [ebp - 0x270]
push ebx
push eax
push dword [ebp - 0x10]
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov eax, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x44]
cmp byte [eax + 0x78], 2
jne 0x42e4a0
push 0x456afc
jmp 0x42e4ae
mov eax, dword [ebp + 8]
dec eax
cmp dword [ebp - 0x10], eax
jge 0x42e4bc
push 0x456b20
lea eax, [ebp - 0x270]
push eax
call fcn.00441df0
pop ecx
pop ecx
lea eax, [ebp - 0x270]
push eax
push 1
push 0xc2
push dword [ebp + 0x14]
call esi
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp + 8]
jl 0x42e478
mov ebx, dword [ebp - 0x30]
push 0xffffffffffffffff
push dword [ebp - 0x84]
push 0xb1
push dword [ebp + 0x14]
call esi
push dword [ebp + 0x10]
call dword [sym.imp.SHELL32.dll_DragFinish]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + ecx*4 + 0x44]
cmp byte [eax + 0x78], 2
je 0x42e3b2
xor edx, edx
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], edx
cmp eax, 0xffffffff
je 0x42e532
cmp ecx, 0xffffffff
je 0x42e532
imul eax, eax, 0x1003
add eax, ecx
jmp 0x42e534
xor eax, eax
push eax
lea ecx, [ebp - 0x68]
call fcn.0040374f
push 2
lea eax, [ebp - 0x68]
push 1
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp + 0x10], esp
push str._GUI_DROPID
call fcn.0040101d
mov esi, 0x4602d0
mov ecx, esi
call fcn.0043f47a
push 0xffffffffffffffff
lea ecx, [ebp - 0x68]
call fcn.0040374f
push 2
lea eax, [ebp - 0x68]
push 1
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp + 0x10], esp
push str._GUI_DRAGID
call fcn.0040101d
mov ecx, esi
call fcn.0043f47a
lea eax, [ebp - 0x270]
lea ecx, [ebp - 0x68]
push eax
call fcn.00403875
push 2
lea eax, [ebp - 0x68]
push 1
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp + 0x10], esp
push str._GUI_DRAGFILE
call fcn.0040101d
mov ecx, esi
call fcn.0043f47a
push 0
push 0
push edi
push 0xfffffffffffffff3
mov ecx, ebx
call fcn.0042d0b2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.00402e90
jmp 0x42e3b2
cmp byte [edi + 0x4138], 0
lea esi, [edi + 0x4138]
je 0x42e5fa
push 0
push 0
push edi
push 0xfffffffffffffff4
mov ecx, ebx
call fcn.0042d0b2
and byte [esi], 0
jmp 0x42e7b2
cmp dword [ebx + 0x156c], 0
je 0x42e7b2
push 0
call dword [sym.imp.COMCTL32.dll_ImageList_DragLeave]
call dword [sym.imp.COMCTL32.dll_ImageList_EndDrag]
call dword [sym.imp.USER32.dll_ReleaseCapture]
movsx eax, si
shr esi, 0x10
movsx ecx, si
lea edx, [ebp - 0x18]
push edx
push ecx
push eax
mov ecx, ebx
call fcn.0042e7d5
cmp eax, 0xffffffff
je 0x42e7b2
mov edx, dword [ebp - 0x18]
cmp edx, 0xffffffff
je 0x42e656
mov ecx, edx
imul ecx, ecx, 0x1003
add ecx, eax
jmp 0x42e658
xor ecx, ecx
cmp ecx, dword [ebx + 0x156c]
je 0x42e7b2
mov esi, dword [ebx + edx*4 + 0x44c]
cmp edx, 0xffffffff
mov dword [ebp - 0x50], esi
je 0x42e680
imul edx, edx, 0x1003
add edx, eax
mov dword [ebp - 0x28], edx
jmp 0x42e684
and dword [ebp - 0x28], 0
lea esi, [esi + eax*4 + 0x44]
mov eax, dword [esi]
test byte [eax + 0x79], 8
je 0x42e778
mov edi, dword [eax]
lea eax, [ebp - 0x38]
push 0
push eax
push dword [ebx + 0x156c]
mov ecx, ebx
call fcn.0042fdbe
lea eax, [ebp - 0x34]
push 0
push eax
mov ecx, ebx
push dword [ebp - 0x38]
call fcn.0042fdbe
mov dword [ebp - 0x30], eax
mov eax, dword [esi]
mov al, byte [eax + 0x78]
cmp al, 2
je 0x42e6c9
cmp al, 3
jne 0x42e6e3
push dword [ebp - 0x30]
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
push 0
push 0xb1
push edi
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp - 0x30]
call fcn.004415fb
and dword [ebp - 0x68], 0
and dword [ebp - 0x5c], 0
pop ecx
push 1
pop esi
mov dword [ebp - 0x60], esi
push 2
lea ecx, [ebp - 0x68]
pop edi
push dword [ebp - 0x28]
mov dword [ebp - 4], edi
call fcn.0040374f
push edi
lea eax, [ebp - 0x68]
push esi
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x30], esp
push str._GUI_DROPID
call fcn.0040101d
mov esi, 0x4602d0
mov ecx, esi
call fcn.0043f47a
push 0x45cb90
lea ecx, [ebp - 0x68]
call fcn.00403875
push edi
lea eax, [ebp - 0x68]
push 1
push eax
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x30], esp
push str._GUI_DRAGFILE
call fcn.0040101d
mov ecx, esi
call fcn.0043f47a
push 0
push 0
push dword [ebp - 0x50]
mov ecx, ebx
push 0xfffffffffffffff3
call fcn.0042d0b2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.00402e90
and dword [ebx + 0x156c], 0
jmp 0x42e7b2
cmp dword [ebx + 0x156c], 0
je 0x42e7b2
movsx eax, si
shr esi, 0x10
mov dword [ebp - 0x3c], eax
movsx eax, si
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call dword [sym.imp.COMCTL32.dll_ImageList_DragMove]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefDlgProcA]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10