Function at 0x1001a531
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1128
call fcn.1001e5e0
mov eax, dword [0x100521b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov edx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x1110], ecx
mov dword [ebp - 0x1114], edx
push esi
mov esi, dword [ebp + 0x18]
push edi
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp + 0x10]
test ebx, ebx
je 0x1001a8cf
cmp edi, 0x4e
ja 0x1001a7f5
je 0x1001a70b
cmp edi, 5
je 0x1001a5fb
cmp edi, 0xf
je 0x1001a5bf
cmp edi, 0x20
je 0x1001a5ad
cmp edi, 0x2b
jne 0x1001a8cf
push esi
push ebx
call fcn.1001a967
xor eax, eax
inc eax
jmp 0x1001a8d9
push edx
push ecx
push ebx
call fcn.1001ac94
test eax, eax
je 0x1001a8b3
jmp 0x1001a5a5
xor edi, edi
push edi
push edi
push ecx
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je 0x1001a5f4
mov esi, dword [ebp - 0x1110]
lea eax, [ebp - 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.1001a8ec
lea eax, [ebp - 0x54]
push eax
push esi
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
jmp 0x1001a8d9
xor edi, edi
cmp dword [ebx + 4], edi
je 0x1001a8cc
lea eax, [ebp - 0x14]
push eax
push dword [ebx + 0x58]
call dword [sym.imp.USER32.dll_GetClientRect]
mov dword [ebp - 0x1118], edi
cmp dword [ebx + 0x50], edi
jbe 0x1001a5f4
mov esi, edi
mov dword [ebp - 0x1114], edi
add esi, dword [ebx + 0x54]
lea eax, [ebp - 0x1124]
push eax
lea eax, [ebp - 0x1128]
push eax
lea eax, [ebp - 0x111c]
push eax
lea eax, [ebp - 0x1120]
push eax
push esi
lea eax, [ebp - 0x14]
push eax
call fcn.10018257
push 1
push dword [ebp - 0x111c]
push dword [ebp - 0x1120]
push dword [ebp - 0x1124]
push dword [ebp - 0x1128]
push dword [esi + 0x78]
call dword [sym.imp.USER32.dll_MoveWindow]
mov eax, dword [ebx + 0x54]
mov esi, dword [ebp - 0x1114]
add eax, esi
cmp dword [eax], 0xc
jne 0x1001a6e7
push eax
call fcn.1001a33b
mov ecx, dword [ebx + 0x54]
mov dword [ebp - 0x1110], edi
cmp dword [esi + ecx + 0x6c], edi
jbe 0x1001a6e7
mov dword [ebp - 0x1114], edi
mov eax, dword [esi + ecx + 0x68]
mov edx, dword [ebp - 0x1114]
push dword [eax + edx + 0xc]
mov edx, dword [ebp - 0x1110]
push edx
push 0x101e
push dword [esi + ecx + 0x78]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x1001a5f4
mov edx, dword [ebp - 0x1110]
mov ecx, dword [ebx + 0x54]
inc edx
add dword [ebp - 0x1114], 0x14
mov dword [ebp - 0x1110], edx
cmp edx, dword [esi + ecx + 0x6c]
jb 0x1001a69d
mov eax, dword [ebp - 0x1118]
sub esi, 0xffffff80
inc eax
mov dword [ebp - 0x1114], esi
mov dword [ebp - 0x1118], eax
cmp eax, dword [ebx + 0x50]
jb 0x1001a626
jmp 0x1001a5f4
test esi, esi
je 0x1001a8cf
mov eax, dword [esi + 8]
cmp eax, 0x700
je 0x1001a7b5
cmp eax, 0x70b
je 0x1001a79e
cmp eax, 0xfffffffc
je 0x1001a736
cmp eax, 0xfffffffe
jne 0x1001a8cf
push dword [esi + 4]
push dword [ebx + 0x58]
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x1001a5f4
push eax
push ebx
call fcn.100180e1
test eax, eax
je 0x1001a5f4
cmp dword [eax], 6
jne 0x1001a5f4
push 0x10b8
lea eax, [esi + 0xc]
push eax
lea eax, [ebp - 0x110c]
push eax
call fcn.1001f970
mov esi, dword [ebp - 0x1110]
lea eax, [ebp - 0x109c]
add esp, 0xc
xor edi, edi
push edi
push esi
push 0xa
push edi
push str.open
push edi
push eax
call fcn.10016d6e
jmp 0x1001a5a5
push ecx
push dword [esi]
push esi
call fcn.10018328
xor ecx, ecx
test eax, eax
setns cl
mov eax, ecx
jmp 0x1001a8d9
cmp dword [esi + 0xc], 0x100
jne 0x1001a8cf
cmp dword [esi + 0x10], 9
jne 0x1001a8cf
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
push eax
push dword [esi]
mov esi, dword [ebp - 0x1110]
push esi
call dword [sym.imp.USER32.dll_GetNextDlgTabItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
jmp 0x1001a5a5
mov eax, edi
sub eax, 0x84
je 0x1001a8c1
sub eax, 0x8f
je 0x1001a8ab
sub eax, 0x25
je 0x1001a889
sub eax, 0xdc
jne 0x1001a8cf
cmp dword [ebx + 4], eax
je 0x1001a8cf
mov ecx, dword [esi + 8]
mov eax, ecx
sub eax, dword [esi]
mov edi, dword [ebx + 0x24]
cmp eax, edi
jge 0x1001a850
cmp edx, 7
je 0x1001a84c
cmp edx, 1
je 0x1001a84c
cmp edx, 4
je 0x1001a84c
mov eax, dword [esi]
add eax, edi
mov dword [esi + 8], eax
jmp 0x1001a850
sub ecx, edi
mov dword [esi], ecx
mov ecx, dword [esi + 0xc]
mov eax, ecx
mov edi, dword [ebx + 0x1c]
mov ebx, dword [esi + 4]
sub eax, ebx
cmp eax, edi
jge 0x1001a5a5
cmp edx, 6
je 0x1001a87e
cmp edx, 7
je 0x1001a87e
cmp edx, 8
je 0x1001a87e
sub ecx, edi
mov dword [esi + 4], ecx
jmp 0x1001a5a5
lea ecx, [ebx + edi]
mov dword [esi + 0xc], ecx
jmp 0x1001a5a5
and dword [ebp - 0x1118], 0
lea eax, [ebp - 0x1118]
push eax
push esi
push edx
push ebx
call fcn.1001b6b1
test eax, eax
je 0x1001a8b3
mov eax, dword [ebp - 0x1118]
jmp 0x1001a8d9
push edx
push ecx
push ebx
call fcn.100182d2
mov ecx, dword [ebp - 0x1110]
mov edx, dword [ebp - 0x1114]
jmp 0x1001a8cf
cmp dword [ebx + 8], 0
jge 0x1001a8cf
push 2
pop eax
jmp 0x1001a8d9
mov edi, dword [ebp + 0x10]
push esi
push edx
push edi
push ecx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001e205
mov esp, ebp
pop ebp
ret 0x14