Function at 0x3001a379
Capabilities:
Log keystrokes via polling

Disassembly:
cmp eax, 0x12
je 0x30054b65
cmp eax, 0x100
je 0x30013d26
cmp eax, 0x201
je 0x30061f00
cmp eax, 0x400
jne 0x3001a42f
call fcn.3001a11e
test eax, eax
jne 0x3001a435
push dword [ebp - 0x28]
call dword [sym.imp.MSO.DLL_Ordinal_490]
test eax, eax
jne 0x30061f79
call fcn.30049bfb
push ebx
push eax
lea eax, [ebp - 0x54]
push eax
mov dword [0x301e4740], ebx
call fcn.30049d07
cmp eax, 0xffffffff
je 0x3001a42f
jmp 0x3001a46d
call fcn.30019bfc
cmp dword [0x301e4790], ebx
jne 0x300492e8
push 0x79
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x3001a46d
cmp dword [0x301e46b0], ebx
jne 0x3001a46d
push dword [ebp + 8]
call fcn.30019c38
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x3001a46d
mov eax, dword [0x301e4b98]
mov ecx, dword [eax]
push eax
mov dword [ebp - 4], ebx
call dword [ecx + 0x2c]
push edi
lea eax, [ebp - 0x54]
push eax
call fcn.3001a21e
test eax, eax
jne 0x3001a3fe
call dword [sym.imp.USER32.dll_WaitMessage]
push edi
lea eax, [ebp - 0x54]
push eax
call fcn.3001a367
test eax, eax
je 0x3001a3bd
lea eax, [ebp - 0x48]
push eax
push dword [0x301e4b08]
call dword [sym.imp.MSO.DLL_Ordinal_800]
cmp dword [0x301e473c], 1
jg 0x30061ebd
jmp 0x3001a3bd
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x301e4ae8]
push ebx
push esi
xor ebx, ebx
inc dword [0x301e473c]
push edi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x94]
push ebx
push eax
mov dword [ebp - 8], ebx
mov dword [0x301e4ae8], eax
call sub.MSVCRT.dll__setjmp3
pop ecx
pop ecx
mov dword [ebp - 4], ebx
mov edi, 0x80df
cmp dword [ebp - 4], ebx
jne 0x30019d8a
push edi
lea eax, [ebp - 0x54]
push eax
call fcn.3001a367
test eax, eax
je 0x30019d47
lea eax, [ebp - 0x48]
push eax
push dword [0x301e4b08]
call dword [sym.imp.MSO.DLL_Ordinal_800]
cmp dword [0x301e473c], 1
jg 0x30061ed6
push edi
lea eax, [ebp - 0x54]
push eax
call fcn.3001a21e
test eax, eax
je 0x30019d47
mov eax, dword [ebp - 0x44]
cmp eax, dword [0x301e472c]
je 0x30061ef2
lea eax, [ebp - 0x48]
push eax
call fcn.3001a135
test eax, eax
jne 0x3001a46d
mov eax, dword [ebp - 0x54]
cmp eax, ebx
jne 0x30013d00
cmp dword [ebp - 0x44], 0x10
je 0x30061fa6
mov dword [0x301e4740], ebx
cmp byte [0x301e4d0d], bl
je 0x3001a447
cmp dword [ebp - 0x44], 0x50
je 0x30061fba
cmp dword [0x301e4790], ebx
jne 0x300492fa
lea eax, [ebp - 0x54]
push eax
call fcn.3001a0b0
cmp byte [0x301e4d0d], bl
je 0x3001a46d
cmp dword [ebp - 8], ebx
jne 0x30061fde
xor esi, esi
inc esi
mov dword [0x301e4740], esi
call fcn.30019fd3
cmp dword [0x301e473c], esi
jg 0x30061ffb
jmp 0x3001a3b4
call fcn.30049bfb
test al, 0x2c
jne 0x3001a46d
jmp 0x30019d58
cmp dword [ebp - 0x44], 0x118
jne 0x3001a453
cmp dword [0x301e489c], ebx
jne 0x30061fc6
jmp 0x3001a453
call fcn.3004dbdf
cmp byte [0x301e4d0e], bl
je 0x30054b77
call fcn.3004dd5e
call fcn.30054b0c
push ebx
call fcn.300549fc
test eax, eax
jne 0x3001a46d
jmp 0x30013d44
mov eax, dword [0x301e4b98]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x30]
test eax, eax
je 0x3006200f
jmp 0x3001a3bd
mov eax, dword [0x301e4b98]
mov ecx, dword [eax]
lea edx, [ebp - 0x48]
push edx
push eax
call dword [ecx + 0x30]
test eax, eax
je 0x3006200f
jmp 0x3001a3ec
lea eax, [ebp - 0x54]
push eax
call fcn.300c9ebc
jmp 0x3001a40d
cmp byte [0x301e4d0d], bl
je 0x3001a42f
mov eax, dword [0x301e469c]
xor esi, esi
test ah, 0x40
je 0x30061f49
test al, 2
je 0x30061f49
call fcn.301262e8
test eax, eax
je 0x30061f49
cmp dword [0x301e489c], ebx
je 0x30061f35
mov esi, dword [0x301e6cbc]
jmp 0x30061f49
cmp dword [0x301e4794], ebx
mov esi, dword [0x301e7594]
jne 0x30061f49
mov esi, dword [0x301e68e0]
cmp esi, ebx
je 0x30061f5e
push dword [ebp - 0x3c]
push esi
call fcn.3012632c
test eax, eax
jne 0x3001a42f
mov eax, dword [0x301e469c]
shr eax, 1
and eax, 1
push eax
push dword [0x301e47a0]
call fcn.30126575
jmp 0x3001a42f
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call dword [sym.imp.MSO.DLL_Ordinal_560]
mov eax, dword [ebp - 0xc]
cmp eax, ebx
je 0x30013d44
mov ecx, dword [eax]
lea edx, [ebp - 0x2c]
push edx
push eax
call dword [ecx + 0xa4]
jmp 0x30054b82
mov eax, dword [ebp - 0x48]
cmp eax, dword [0x301e47a0]
je 0x3001a435
jmp 0x3001a42f
mov dword [ebp - 8], 1
jmp 0x3001a447
call fcn.30119100
lea eax, [ebp - 0x54]
push eax
call fcn.3001a0b0
call fcn.3011910e
jmp 0x3001a45c
call fcn.30008131
push dword [0x301e4728]
call fcn.300080c9
call fcn.30006b18
mov dword [ebp - 8], ebx
jmp 0x3001a46d
mov eax, dword [0x301e4b98]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx + 0x30]
test eax, eax
jne 0x3001a3b4
mov eax, dword [ebp - 0x10]
dec dword [0x301e473c]
pop edi
mov dword [0x301e4ae8], eax
xor eax, eax
pop esi
inc eax
pop ebx
leave
ret 4