Function at 0x301579de
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
xor esi, esi
cmp dword [0x3017da20], esi
push edi
jne 0x30157a83
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
je 0x30157a2b
push esi
push esi
push esi
cmp dword [0x3017dbf4], esi
push esi
lea eax, [ebp - 0x1c]
push eax
jne 0x30157a6b
call dword [sym.imp.USER32.dll_PeekMessageA]
cmp eax, esi
je 0x30157a2b
cmp dword [ebp - 0x14], 0x200
jb 0x30157a2b
cmp dword [ebp - 0x14], 0x209
jbe 0x30157a67
push esi
push 0x32
push esi
push esi
call dword [sym.imp.USER32.dll_SetTimer]
push esi
push esi
cmp dword [0x3017dbf4], esi
push esi
mov edi, eax
lea eax, [ebp - 0x1c]
push eax
jne 0x30157a73
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [0x3017dbf4], esi
lea eax, [ebp - 0x1c]
push eax
jne 0x30157a7b
call dword [sym.imp.USER32.dll_DispatchMessageA]
push edi
push esi
call dword [sym.imp.USER32.dll_KillTimer]
xor eax, eax
jmp 0x30157a9d
call dword [sym.imp.USER32.dll_PeekMessageW]
jmp 0x30157a15
call dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x30157a4d
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x30157a5f
mov eax, dword [0x301792f4]
cmp eax, esi
je 0x30157a91
cmp eax, 1
je 0x30157a67
test byte [0x3017da74], 1
je 0x30157aa2
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 3
call esi
mov bx, ax
push 0x1b
and ebx, 1
call esi
mov di, ax
push 9
and edi, 1
call esi
test al, 1
je 0x30157acb
or byte [0x3017da75], 4
test ebx, ebx
jne 0x30157d7d
mov ebx, dword [sym.imp.USER32.dll_PeekMessageA]
test edi, edi
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
jne 0x30157caa
mov esi, 0x112
push 0
push 0x108
push 0x100
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157baf
call ebx
test eax, eax
je 0x30157c3b
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and al, 0xfb
sub eax, 0x100
je 0x30157bc6
dec eax
jne 0x30157c3b
cmp dword [ebp - 0x14], 0x12
je 0x30157b94
cmp dword [ebp - 0x14], 0x1b
jne 0x30157b94
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x30157b91
push 0
push esi
push esi
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157bb6
call ebx
test eax, eax
je 0x30157b91
cmp dword [ebp - 0x14], 0xf130
jne 0x30157b91
push 1
push esi
push esi
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157bba
call ebx
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157bbe
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov ecx, dword [ebp - 0x18]
push 1
push ecx
push ecx
push dword [ebp - 0x1c]
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157c23
call ebx
jmp 0x30157aec
call edi
jmp 0x30157b0d
call edi
jmp 0x30157b5c
call edi
jmp 0x30157b7e
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x30157b91
mov eax, dword [ebp - 0x14]
cmp eax, 9
je 0x30157c2a
cmp eax, 0xf
jbe 0x30157c3b
cmp eax, 0x11
jbe 0x30157b94
cmp eax, 0x12
jne 0x30157c3b
test byte [0x3017da75], 4
je 0x30157c3b
push 1
push ecx
push ecx
push dword [ebp - 0x1c]
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157c14
call ebx
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157c18
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x30157aec
call edi
jmp 0x30157bfc
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x30157aec
call edi
jmp 0x30157aec
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x30157d98
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x30157a67
mov esi, 0x200
push 0
push 0x209
push esi
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157e26
call ebx
test eax, eax
je 0x30157a67
mov ecx, dword [ebp - 0x18]
mov eax, ecx
sub eax, esi
je 0x30157c8e
dec eax
dec eax
je 0x30157c8e
sub eax, 3
je 0x30157c8e
sub eax, 3
jne 0x30157a67
push 1
push ecx
push ecx
push dword [ebp - 0x1c]
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157e2d
call ebx
jmp 0x30157c4e
cmp dword [0x301792f4], 0
jne 0x30157c3b
mov esi, 0x112
push 0
push 0x108
push 0x100
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x1c]
push eax
jne 0x30157d45
call ebx
test eax, eax
je 0x30157c3b
mov eax, dword [ebp - 0x18]
and al, 0xfb
cmp eax, 0x101
jne 0x30157d4d
cmp dword [ebp - 0x14], 0x1b
jne 0x30157d4d
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x30157d4d
push 0
push esi
push esi
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x38]
push eax
jne 0x30157d49
call ebx
test eax, eax
je 0x30157d22
cmp dword [ebp - 0x30], 0xf130
je 0x30157de6
push 1
push dword [ebp - 0x18]
cmp dword [0x3017dbf4], 0
push dword [ebp - 0x18]
lea eax, [ebp - 0x1c]
push dword [ebp - 0x1c]
push eax
jne 0x30157ddf
call ebx
jmp 0x30157cb8
call edi
jmp 0x30157cd5
call edi
jmp 0x30157d11
mov eax, dword [ebp - 0x18]
and al, 0xfb
cmp eax, 0x100
jne 0x30157d22
cmp dword [ebp - 0x14], 9
je 0x30157d8b
cmp dword [ebp - 0x14], 0x1b
jne 0x30157d22
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
test ax, ax
jl 0x30157d98
push 0x12
call esi
test ax, ax
jl 0x30157d98
push 1
pop eax
or dword [0x3017da74], eax
jmp 0x30157a9d
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x30157d22
push 1
push dword [ebp - 0x18]
cmp dword [0x3017dbf4], 0
push dword [ebp - 0x18]
lea eax, [ebp - 0x1c]
push dword [ebp - 0x1c]
push eax
jne 0x30157e17
call ebx
test eax, eax
je 0x30157a67
mov eax, dword [ebp - 0x18]
and al, 0xfb
cmp eax, 0x100
jne 0x30157dd3
cmp dword [ebp - 0x14], 9
jne 0x30157dd3
and byte [0x3017da75], 0xfb
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x1c]
jmp 0x30157e05
call edi
jmp 0x30157cb8
push 1
push esi
push esi
cmp dword [0x3017dbf4], 0
push 0
lea eax, [ebp - 0x38]
push eax
jne 0x30157e13
call ebx
cmp dword [0x3017dbf4], 0
lea eax, [ebp - 0x38]
push eax
jne 0x30157e1b
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x30157a67
call edi
jmp 0x30157dfb
call edi
jmp 0x30157db2
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x30157a67
call edi
jmp 0x30157c6b
call edi
jmp 0x30157c4e