Function at 0x10007614
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10035d45
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x10041010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [0x38412388]
mov dword [0x1004207c], 0x47f820
mov dword [0x100692b4], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x100692b4]
push 4
push esi
mov dword [0x1004209c], eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100078bd
test esi, esi
je 0x100078bd
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], edi
lea edx, [ebp - 0x1c]
mov ecx, dword [0x1004209c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x24]
test eax, eax
jne 0x100075a6
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x100075a6
mov eax, dword [ecx]
mov edi, ecx
mov dword [ebp - 0x14], edi
call dword [eax + 4]
mov dword [ebp - 4], 1
cmp byte [0x10069428], 0
je 0x1000771e
mov ecx, dword [0x10042080]
cmp ecx, 8
ja case.default.0x100075c5
jmp dword [ecx*4 + 0x10007918]
mov dword [0x10041028], 0
jmp case.default.0x100075c5
mov dword [0x10041028], 1
jmp case.default.0x100075c5
mov dword [0x10041028], 2
jmp case.default.0x100075c5
mov dword [0x10041028], 3
jmp case.default.0x100075c5
mov dword [0x10041028], 4
jmp case.default.0x100075c5
mov dword [0x10041028], 5
jmp case.default.0x100075c5
mov dword [0x10041028], 6
jmp case.default.0x100075c5
mov dword [0x10041028], 7
jmp case.default.0x100075c5
mov dword [0x10041028], 8
mov eax, dword [0x10042088]
inc eax
mov dword [0x10042088], eax
cmp eax, 1
jl 0x10007660
lea eax, [ecx + 1]
mov dword [0x10042088], 0
xor ecx, ecx
cmp eax, 9
cmove eax, ecx
mov dword [0x10042080], eax
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x20]
mov ecx, dword [0x1004209c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x24]
xor ebx, ebx
test eax, eax
jne 0x10007691
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x10007691
mov eax, dword [ecx]
mov ebx, ecx
mov dword [ebp - 0x18], ecx
call dword [eax + 4]
mov byte [ebp - 4], 3
mov ecx, ebx
mov eax, dword [ebx]
push 8
push 0xbe
call dword [eax + 0x24]
mov eax, dword [ebx]
mov ecx, ebx
push 0x10
push 0
call dword [eax + 0x24]
mov eax, dword [ebx]
mov ecx, ebx
push 0x20
push 0
call dword [eax + 0x24]
mov eax, dword [ebx]
mov ecx, ebx
push 8
push 1
call dword [eax + 0x24]
mov eax, dword [ebx]
mov ecx, ebx
push 8
mov edx, dword [eax + 0x24]
movzx eax, byte [0x10041028]
push eax
call edx
mov eax, dword [0x100692a8]
mov ecx, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebx]
call dword [eax + 0x1c]
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x100076f6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 1
push esi
mov byte [ebp - 4], 4
call dword [ebp - 0x28]
mov byte [ebp - 4], 5
test esi, esi
je 0x1000770f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov byte [ebp - 4], 6
mov ecx, ebx
mov eax, dword [ebx]
call dword [eax + 8]
mov byte [ebp - 4], 1
mov eax, dword [0x10042084]
sub eax, 1
je 0x1000783f
sub eax, 1
je 0x100077c0
sub eax, 1
jne 0x100078a7
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp dword [0x100692d4], eax
jae 0x100078a7
call esi
add eax, 0x1b58
mov ecx, edi
mov dword [0x100692d4], eax
mov eax, dword [edi]
push 8
push 0x68
call dword [eax + 0x24]
mov ecx, str.Link_SKULLCHEATS.ORG__Hack_free_todo_dia
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov ecx, 0x1003aa54
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov eax, dword [edi]
mov ecx, edi
mov ebx, dword [0x1004207c]
call dword [eax + 0x1c]
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x100077ae
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 1
push esi
mov byte [ebp - 4], 0xc
call ebx
mov byte [ebp - 4], 0xd
jmp 0x1000789c
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp dword [0x100692d4], eax
jae 0x100078a7
call esi
add eax, 0xfa0
mov ecx, edi
mov dword [0x100692d4], eax
mov eax, dword [edi]
push 8
push 0x68
call dword [eax + 0x24]
mov ecx, str.Link_SKULLCHEATS.ORG__Hack_free_todo_dia
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov ecx, 0x1003aa54
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov eax, dword [edi]
mov ecx, edi
mov ebx, dword [0x1004207c]
call dword [eax + 0x1c]
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x10007830
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 1
push esi
mov byte [ebp - 4], 0xa
call ebx
mov byte [ebp - 4], 0xb
jmp 0x1000789c
mov eax, dword [edi]
mov ecx, edi
push 8
push 0x68
call dword [eax + 0x24]
mov ecx, str.Link_SKULLCHEATS.ORG__Hack_free_todo_dia
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov ecx, 0x1003aa54
call fcn.10007400
mov ecx, dword [edi]
push eax
mov edx, dword [ecx + 0x3c]
mov ecx, edi
call edx
mov eax, dword [edi]
mov ecx, edi
mov ebx, dword [0x1004207c]
call dword [eax + 0x1c]
mov esi, eax
mov dword [ebp - 0x24], esi
test esi, esi
je 0x1000788f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 1
push esi
mov byte [ebp - 4], 8
call ebx
mov byte [ebp - 4], 9
test esi, esi
je 0x100078a7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov dword [ebp - 4], 0xe
test edi, edi
je 0x100078b9
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov byte [ebp - 4], 0xf
cmp byte [0x100692d0], 0
je 0x100078e7
push 0x20
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x100078e7
mov eax, dword [0x3845eefc]
mov eax, dword [eax + 0x10]
mov dword [eax + 0xb8], 0x44898000
jmp 0x100078f9
mov eax, dword [0x3845eefc]
mov eax, dword [eax + 0x10]
mov dword [eax + 0xb8], 0xc4898000
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100348e0
mov esp, ebp
pop ebp
ret