Function at 0x103668a
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [0x104197c]
sub esp, 0x24
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x10366cc
cmp dword [eax + 0x14], ebx
je 0x10366b0
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10366ba
call fcn.01022a68
call fcn.0100d918
push 0xfffffffffffffff7
mov dword [0x1040a9c], 1
pop eax
jmp 0x1036917
cmp dword [0x1043880], ebx
je 0x10366df
call fcn.010284ad
mov dword [0x1043880], ebx
push edi
cmp dword [0x1041a18], ebx
jne 0x1036704
call fcn.01028292
test eax, eax
jne 0x10366f9
or eax, 0xffffffff
jmp 0x1036916
xor edi, edi
inc edi
mov dword [0x1041a18], edi
jmp 0x1036707
xor edi, edi
inc edi
push esi
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
pop ecx
cmp esi, ebx
je 0x103671c
call fcn.01022a3c
jmp 0x103671e
xor esi, esi
call fcn.01028058
call fcn.01028023
push 0x150
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
cmp eax, ebx
je 0x1036740
mov ecx, eax
call fcn.01032291
jmp 0x1036742
xor eax, eax
mov dword [0x104197c], eax
cmp eax, ebx
jne 0x1036769
cmp esi, ebx
je 0x1036757
push edi
mov ecx, esi
call fcn.010311ee
call fcn.01028097
call fcn.01027fda
or eax, 0xffffffff
jmp 0x1036915
mov eax, dword [0x10437b8]
imul eax, eax, 0x50
push ebx
push 0x10362e9
push dword [eax + 0x10438c0]
push 0x38d
push dword [0x1043808]
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov ecx, dword [0x104197c]
mov dword [ecx + 0x14], eax
mov eax, dword [0x104197c]
cmp dword [eax + 0x14], ebx
jne 0x10367c5
cmp dword [eax + 4], 0xfffffffa
je 0x10368d4
push 2
call fcn.01022b3c
mov eax, dword [0x104197c]
or dword [eax + 4], 0xffffffff
mov eax, dword [0x104197c]
jmp 0x10368d4
push 5
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp esi, ebx
je 0x10367dc
push edi
mov ecx, esi
call fcn.010311ee
mov eax, dword [0x104197c]
mov dword [eax], edi
mov eax, dword [0x104197c]
cmp dword [eax], ebx
je 0x10368d4
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [ebp - 0x20], 0x100
jne 0x103689d
cmp dword [ebp - 0x1c], 9
jne 0x103689d
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x103689d
mov eax, dword [0x104197c]
push 0x38e
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_GetDlgItem]
push ebx
push ebx
push 0x130b
push eax
mov dword [ebp - 4], eax
call esi
mov edi, eax
push 0x10
mov dword [ebp - 8], edi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x103685c
dec edi
jmp 0x103685d
inc edi
mov eax, dword [0x104197c]
mov eax, dword [eax + 0x20]
cmp edi, eax
jl 0x103686d
xor edi, edi
jmp 0x1036874
cmp edi, ebx
jge 0x1036874
lea edi, [eax - 1]
push ebx
push edi
mov edi, 0x130c
push edi
push dword [ebp - 4]
call esi
cmp eax, 0xffffffff
jne 0x1036890
push ebx
push dword [ebp - 8]
push edi
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call fcn.010361eb
xor edi, edi
inc edi
jmp 0x10368c7
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x104197c]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x10368c7
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [0x104197c]
cmp dword [eax], ebx
jne 0x10367f6
cmp dword [eax + 0x14], ebx
je 0x10368f4
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10368f4
mov eax, dword [0x104197c]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_DestroyWindow]
call fcn.01028097
call fcn.01027fda
mov ecx, dword [0x104197c]
mov esi, dword [ecx + 4]
push edi
call fcn.01031214
mov dword [0x104197c], ebx
mov eax, esi
pop esi
pop edi
pop ebx
leave
ret