Function at 0x46178c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff28
push ebx
push esi
push edi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov dword [ebp - 8], eax
mov byte [ebp - 0x79], 0
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x200]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x1fc]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x20c], 0
je 0x461858
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov edx, dword [ebp - 8]
mov dword [eax + 0x204], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov byte [eax + 0x202], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov byte [eax + 0x201], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov byte [eax + 0x209], 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
call sym.LookAtLan.exe__Tb2dock_TTBDock_ArrangeToolbars_qqrv
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov al, byte [eax + 0x1f8]
add al, 0xfe
sub al, 2
setb al
mov byte [ebp - 0x29], al
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
mov al, byte [eax + 0x201]
mov byte [ebp - 0x1d], al
xor eax, eax
mov dword [ebp - 0x54], eax
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x462078
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x27e]
mov byte [ebp - 0x5d], al
mov eax, dword [ebp - 8]
mov dl, byte [ebp - 0x5d]
mov byte [eax + 0x2a9], dl
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.005444e4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov edx, dword [sym.LookAtLan.exe__Tb2dock_TTBFloatingWindowParent_]
call fcn.0055d098
test al, al
jne 0x461913
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp - 8]
call fcn.00521ee0
push eax
call sub.USER32.DLL_GetWindowRect
lea ecx, [ebp - 0xd4]
xor edx, edx
xor eax, eax
call fcn.005444e4
lea edx, [ebp - 0xd4]
lea ecx, [ebp - 0xcc]
mov eax, dword [ebp - 8]
call fcn.0051b870
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
lea ecx, [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x3c]
dec edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
dec eax
call fcn.005444e4
jmp 0x461985
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
call fcn.00521ee0
push eax
call sub.USER32.DLL_GetWindowRect
lea ecx, [ebp - 0xd4]
xor edx, edx
xor eax, eax
call fcn.005444e4
lea edx, [ebp - 0xd4]
lea ecx, [ebp - 0xcc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
call fcn.0051b870
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
lea ecx, [ebp - 0x4c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x3c]
dec edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x38]
dec eax
call fcn.005444e4
mov eax, dword [ebp - 0xa8]
sub eax, dword [ebp - 0xa0]
sub dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xa4]
sub eax, dword [ebp - 0x9c]
sub dword [ebp - 0x40], eax
push 0x11
call sub.USER32.DLL_GetKeyState
test ax, ax
setl byte [ebp - 0x4e]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x27a], 0
setne byte [ebp - 0x55]
mov dl, 1
mov eax, dword [0x5435a0]
call fcn.0055cef0
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x27a], 2
je 0x4619e3
push ebp
call fcn.00461620
pop ecx
jmp 0x461a00
mov eax, dword [ebp - 8]
cmp byte [eax + 0x20c], 0
je 0x461a00
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x210]
mov eax, dword [ebp - 0x54]
call fcn.00545050
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x461a3d
inc eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x84], 0
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x54]
call fcn.005451fc
call sym.LookAtLan.exe__Tb2dock_TTBDock_CommitPositions_qqrv
inc dword [ebp - 0x84]
dec dword [ebp - 0x90]
jne 0x461a1c
mov dl, 1
mov eax, dword [0x5435a0]
call fcn.0055cef0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 8]
dec eax
sub eax, 0xffffffff
jl 0x461cdb
inc eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x84], 0xffffffff
mov eax, 0x20
call fcn.0055c6d4
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
xor edx, edx
mov dword [eax + 0x1c], edx
xor eax, eax
push ebp
push 0x461ca2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x461b1a
mov eax, dword [ebp - 0x94]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x94]
add eax, 4
push eax
call sub.USER32.DLL_SetRectEmpty
push 1
push 0
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x220]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
call sym.LookAtLan.exe__Tb2dock_TBGetDockTypeOf_qqrpx15Tb2dock_TTBDockxo
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc0]
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0xc8]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x94]
lea edx, [eax + 0x14]
mov eax, dword [ebp - 8]
call sym.LookAtLan.exe__Tb2dock_TTBCustomDockableWindow_AddFloatingNCAreaToSize_qqrr14Windows_TPoint
jmp 0x461c07
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x54]
call fcn.005451fc
mov edx, dword [ebp - 0x94]
mov dword [edx], eax
mov eax, dword [ebp - 0x94]
add eax, 4
push eax
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
call fcn.00521ee0
push eax
call sub.USER32.DLL_GetWindowRect
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x210]
je 0x461bd8
push 0
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0x220]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x210]
call sym.LookAtLan.exe__Tb2dock_TBGetDockTypeOf_qqrpx15Tb2dock_TTBDockxo
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0xc0]
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0xc8]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
mov al, byte [eax + 0x1f8]
add al, 0xfe
sub al, 2
setb cl
mov eax, dword [ebp - 0x94]
lea edx, [eax + 0x14]
mov eax, dword [ebp - 8]
call sym.LookAtLan.exe__Tb2dock_TTBCustomDockableWindow_AddDockedNCAreaToSize_qqrr14Windows_TPointxo
jmp 0x461c07
lea ecx, [ebp - 0xcc]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
call fcn.005444e4
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xcc]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0xc8]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x80]
cmp dword [eax], 0
je 0x461c8d
mov dl, 1
mov eax, dword [0x5435a0]
call fcn.0055cef0
mov edx, dword [ebp - 0x80]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov dl, 1
call sym.LookAtLan.exe__Tb2dock_TTBDock_GetHighestRow_qqrxo
test eax, eax
jl 0x461c8d
inc eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x88], 0
lea ecx, [ebp - 0x7a]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov edx, dword [ebp - 0x88]
call sym.LookAtLan.exe__Tb2dock_TTBDock_GetCurrentRowSize_qqrxiro
movsx eax, ax
mov dword [ebp - 0x8c], eax
cmp byte [ebp - 0x7a], 0
je 0x461c6e
or dword [ebp - 0x8c], 0x10000
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x8c]
call fcn.00545050
inc dword [ebp - 0x88]
dec dword [ebp - 0x98]
jne 0x461c42
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 4]
call fcn.00545050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x461cc9
inc dword [ebp - 0x84]
dec dword [ebp - 0x90]
jne 0x461a6d
call sym.LookAtLan.exe__Tb2common_ProcessPaintMessages_qqrv
call sub.USER32.DLL_GetCursor
mov dword [ebp - 0x5c], eax
cmp byte [ebp - 0x5d], 0
jne 0x461d10
call sub.USER32.DLL_GetDesktopWindow
push eax
call sub.USER32.DLL_LockWindowUpdate
push 0x403
push 0
call sub.USER32.DLL_GetDesktopWindow
push eax
call sub.USER32.DLL_GetDCEx
mov dword [ebp - 0x64], eax
jmp 0x461d15
xor eax, eax
mov dword [ebp - 0x64], eax
xor eax, eax
push ebp
push 0x461f21
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.00521ee0
push eax
call sub.USER32.DLL_SetCapture
mov eax, dword [ebp - 8]
mov al, byte [eax + 0x20c]
mov byte [ebp - 0x4d], al
xor eax, eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
push eax
call sub.USER32.DLL_SetRectEmpty
lea eax, [ebp - 0x34]
push eax
call sub.USER32.DLL_GetCursorPos
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
push ebp
call fcn.004610e8
pop ecx
mov byte [ebp - 0x4d], 1
jmp 0x461e89
push 0
push 0
push 0
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.DLL_GetMessageA
sub eax, 0xffffffff
je 0x461ea0
dec eax
je 0x461d90
jmp 0x461da1
mov eax, dword [ebp - 0xbc]
push eax
call sub.USER32.DLL_PostQuitMessage
jmp 0x461ea0
mov eax, dword [ebp - 0xc0]
cmp eax, 0x202
jg 0x461dd1
je 0x461e6b
add eax, 0xffffff00
sub eax, 2
jb 0x461deb
sub eax, 0xfe
je 0x461e2d
dec eax
je 0x461ea0
jmp 0x461e71
sub eax, 0x203
je 0x461ea0
dec eax
sub eax, 6
jb 0x461e89
jmp 0x461e71
mov eax, dword [ebp - 0xbc]
sub eax, 0x11
je 0x461e04
sub eax, 0xa
je 0x461ea0
jmp 0x461e89
cmp dword [ebp - 0xc0], 0x100
sete al
cmp al, byte [ebp - 0x4e]
je 0x461e89
cmp dword [ebp - 0xc0], 0x100
sete byte [ebp - 0x4e]
push ebp
call fcn.004610e8
pop ecx
jmp 0x461e89
call sub.USER32.DLL_GetMessagePos
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x78]
call fcn.00550ed4
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x78]
jne 0x461e56
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x74]
je 0x461e89
push ebp
call fcn.004610e8
pop ecx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x38], eax
jmp 0x461e89
mov byte [ebp - 0x79], 1
jmp 0x461ea0
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.DLL_TranslateMessage
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.DLL_DispatchMessageA
mov eax, dword [ebp - 8]
call fcn.00521ee0
mov ebx, eax
call sub.USER32.DLL_GetCapture
cmp ebx, eax
je 0x461d70
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x461f28
mov eax, dword [ebp - 8]
call fcn.00521ee0
mov ebx, eax
call sub.USER32.DLL_GetCapture
cmp ebx, eax
jne 0x461ec5
call sub.USER32.DLL_ReleaseCapture
cmp byte [ebp - 0x5d], 0
jne 0x461f20
mov eax, dword [ebp - 0x64]
push eax
call sub.USER32.DLL_GetDesktopWindow
push eax
call sub.USER32.DLL_ReleaseDC
push 0x403
push 0
call sub.USER32.DLL_GetDesktopWindow
push eax
call sub.USER32.DLL_GetDCEx
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x1c]
push eax
push 1
cmp dword [ebp - 0xc], 0
setne al
push eax
xor ecx, ecx
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 8]
call sym.LookAtLan.exe__Tb2dock_TTBCustomDockableWindow_DrawDraggingOutline_qqrxuipx13Windows_TRectt2xoxo
mov eax, dword [ebp - 0x64]
push eax
call sub.USER32.DLL_GetDesktopWindow
push eax
call sub.USER32.DLL_ReleaseDC
push 0
call sub.USER32.DLL_LockWindowUpdate
ret