Function at 0x102e0b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x1037964]
sub esp, 0x20
push ebp
xor ebp, ebp
cmp eax, ebp
je 0x102e0ed
mov eax, dword [eax + 0x14]
cmp eax, ebp
je 0x102e0d1
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x102e0db
call fcn.0101c1c2
call fcn.01008f04
push 0xfffffffffffffff7
mov dword [0x1036a9c], 1
pop eax
jmp 0x102e31a
cmp dword [0x1039540], ebp
je 0x102e100
call fcn.010218ed
mov dword [0x1039540], ebp
cmp dword [0x1037a04], ebp
jne 0x102e123
call fcn.0102170a
test eax, eax
jne 0x102e119
or eax, 0xffffffff
jmp 0x102e31a
mov dword [0x1037a04], 1
push esi
push edi
xor edi, edi
inc edi
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
cmp esi, ebp
pop ecx
je 0x102e13c
call fcn.0101c19b
jmp 0x102e13e
xor esi, esi
call fcn.010214f4
call fcn.010214c6
push 0x150
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, ebp
pop ecx
je 0x102e165
mov ecx, eax
call fcn.01029657
mov dword [0x1037964], eax
jmp 0x102e16b
mov dword [0x1037964], ebp
mov eax, dword [0x1039478]
push ebp
push 0x102dd2d
lea eax, [eax + eax*4]
shl eax, 4
push dword [eax + 0x1039580]
push 0x38d
push dword [0x10394c8]
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov ecx, dword [0x1037964]
mov dword [ecx + 0x14], eax
mov eax, dword [0x1037964]
mov ecx, dword [eax + 0x14]
cmp ecx, ebp
jne 0x102e1cc
cmp dword [eax + 4], 0xfffffffa
je 0x102e2d6
push 2
call fcn.0101c283
mov eax, dword [0x1037964]
or dword [eax + 4], 0xffffffff
mov eax, dword [0x1037964]
jmp 0x102e2d6
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
cmp esi, ebp
je 0x102e1e1
push edi
mov ecx, esi
call fcn.010297d0
mov eax, dword [0x1037964]
mov dword [eax], edi
mov eax, dword [0x1037964]
cmp dword [eax], ebp
je 0x102e2d6
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebp
push ebp
push ebp
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [esp + 0x18], 0x100
jne 0x102e29b
cmp dword [esp + 0x1c], 9
jne 0x102e29b
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x102e29b
mov eax, dword [0x1037964]
push 0x38e
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_GetDlgItem]
push ebp
push ebp
mov ebx, eax
push 0x130b
push ebx
call edi
mov esi, eax
push 0x10
mov dword [esp + 0x14], esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x102e261
dec esi
jmp 0x102e262
inc esi
mov eax, dword [0x1037964]
mov eax, dword [eax + 0x20]
cmp esi, eax
jl 0x102e272
xor esi, esi
jmp 0x102e279
cmp esi, ebp
jge 0x102e279
lea esi, [eax - 1]
push ebp
push esi
mov esi, 0x130c
push esi
push ebx
call edi
cmp eax, 0xffffffff
jne 0x102e292
push ebp
push dword [esp + 0x14]
push esi
push ebx
call edi
mov eax, ebx
call fcn.0102dc3a
jmp 0x102e2c8
lea eax, [esp + 0x14]
push eax
mov eax, dword [0x1037964]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x102e2c8
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov eax, dword [0x1037964]
cmp dword [eax], ebp
jne 0x102e1fc
pop ebx
mov eax, dword [eax + 0x14]
cmp eax, ebp
je 0x102e2f6
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x102e2f6
mov eax, dword [0x1037964]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_DestroyWindow]
call fcn.0102152c
call fcn.01021481
mov ecx, dword [0x1037964]
mov esi, dword [ecx + 4]
push 1
call fcn.010297ec
pop edi
mov eax, esi
mov dword [0x1037964], ebp
pop esi
pop ebp
add esp, 0x20
ret