Function at 0x102b4fd
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x1038ac8]
sub esp, 0x20
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
je 0x102b53d
mov eax, dword [eax + 0x14]
cmp eax, ebx
je 0x102b521
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x102b52b
call fcn.0101d987
call fcn.01009507
push 0xfffffffffffffff7
mov dword [0x1037ab4], 1
pop eax
jmp 0x102b775
cmp dword [0x103a720], ebx
je 0x102b550
call fcn.01024133
mov dword [0x103a720], ebx
cmp dword [0x1038ad8], ebx
push 1
pop edi
jne 0x102b572
call fcn.01023d6e
test eax, eax
jne 0x102b56c
or eax, 0xffffffff
jmp 0x102b775
mov dword [0x1038ad8], edi
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
pop ecx
cmp esi, ebx
je 0x102b586
call fcn.0101d960
jmp 0x102b588
xor esi, esi
call fcn.01023b51
call fcn.01023b23
push 0x150
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, ebx
pop ecx
je 0x102b5af
mov ecx, eax
call fcn.0102a866
mov dword [0x1038ac8], eax
jmp 0x102b5b5
mov dword [0x1038ac8], ebx
mov eax, dword [0x103a83c]
push ebx
push 0x102b77d
lea eax, [eax + eax*4]
shl eax, 4
push dword [eax + 0x103a3c0]
push 0x38d
push dword [0x103a704]
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov ecx, dword [0x1038ac8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x1038ac8]
mov ecx, dword [eax + 0x14]
cmp ecx, ebx
jne 0x102b616
cmp dword [eax + 4], 0xfffffffa
je 0x102b727
push 2
call fcn.0101da51
mov eax, dword [0x1038ac8]
or dword [eax + 4], 0xffffffff
mov eax, dword [0x1038ac8]
jmp 0x102b727
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
cmp esi, ebx
je 0x102b62f
call fcn.0101d987
push esi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, dword [0x1038ac8]
mov dword [eax], edi
mov eax, dword [0x1038ac8]
cmp dword [eax], ebx
je 0x102b727
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ebp, 0x130c
push ebx
push ebx
lea eax, [esp + 0x1c]
push ebx
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [esp + 0x18], 0x100
jne 0x102b6ed
cmp dword [esp + 0x1c], 9
jne 0x102b6ed
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x102b6ed
mov eax, dword [0x1038ac8]
push 0x38e
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0
mov ebx, eax
push 0
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 0x102b6b5
dec esi
jmp 0x102b6b6
inc esi
mov eax, dword [0x1038ac8]
mov eax, dword [eax + 0x20]
cmp esi, eax
jl 0x102b6c6
xor esi, esi
jmp 0x102b6cd
test esi, esi
jge 0x102b6cd
lea esi, [eax - 1]
push 0
push esi
push ebp
push ebx
call edi
cmp eax, 0xffffffff
jne 0x102b6e3
push 0
push dword [esp + 0x14]
push ebp
push ebx
call edi
push ebx
call fcn.0102e6ae
xor ebx, ebx
jmp 0x102b71a
lea eax, [esp + 0x14]
push eax
mov eax, dword [0x1038ac8]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x102b71a
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 [0x1038ac8]
cmp dword [eax], ebx
jne 0x102b64e
mov eax, dword [eax + 0x14]
cmp eax, ebx
je 0x102b747
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x102b747
mov eax, dword [0x1038ac8]
push dword [eax + 0x14]
call dword [sym.imp.USER32.dll_DestroyWindow]
call fcn.01023b89
call fcn.01023ade
mov eax, dword [0x1038ac8]
mov esi, eax
mov edi, dword [eax + 4]
cmp esi, ebx
je 0x102b76d
mov ecx, esi
call fcn.0102a8f5
push esi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
mov dword [0x1038ac8], ebx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret