Function at 0x1005a3f6
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x100a69a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x2fb6ac4]
movzx eax, word [eax + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
movzx ecx, word [esi]
push edi
cmp ecx, eax
jne 0x1005a820
cmp word [esi + 4], 0x3b
jne 0x1005a506
cmp word [esi + 6], 0x1c
jne 0x1005a506
push 0x32
lea eax, [ebp - 0x38]
push 0
push eax
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0xc]
call fcn.100493d9
xor esi, esi
add esp, 0x14
cmp dword [0x103591e8], esi
jle 0x1005a4a6
mov ebx, 0x103589f0
mov edi, ebx
lea eax, [ebp - 0x38]
push eax
push edi
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1005a484
inc esi
add edi, 0x14
cmp esi, dword [0x103591e8]
jl 0x1005a466
jmp 0x1005a4a6
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [esi*4 + 0x10359008], eax
imul esi, esi, 0x14
add esi, ebx
push esi
call fcn.10006e54
pop ecx
call edi
mov dword [0x103d23ac], eax
mov esi, 0x103b6cd4
mov ecx, esi
xor edi, edi
call fcn.10001036
test eax, eax
jle 0x1005a4db
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x103b6cd4]
push dword [eax + edi*4]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1005a4f7
mov ecx, esi
inc edi
call fcn.10001036
cmp edi, eax
jl 0x1005a4b8
push 1
mov ecx, 0x103b71fc
call fcn.10001186
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.100010dc
jmp 0x1005a820
mov eax, dword [0x103b71fc]
mov eax, dword [eax + edi*4]
inc dword [eax]
jmp 0x1005a820
cmp ecx, eax
jne 0x1005a820
cmp word [esi + 4], 0xd
jne 0x1005a5a9
cmp word [esi + 6], 0x7b
jne 0x1005a5a9
push 0x32
xor edi, edi
lea eax, [ebp - 0x38]
push edi
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
cmp word [esi + 8], 1
jne 0x1005a820
lea eax, [ebp - 0x38]
push eax
mov byte [0x10342a88], 1
push dword [esi + 0x14]
call fcn.100493d9
pop ecx
pop ecx
mov esi, 0x103b9acc
mov ecx, esi
call fcn.10001036
test eax, eax
jle 0x1005a588
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x103b9acc]
push dword [eax + edi*4]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1005a59f
mov ecx, esi
inc edi
call fcn.10001036
cmp edi, eax
jl 0x1005a565
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.100010dc
push 1
mov ecx, 0x103bb1a4
jmp 0x1005a63c
mov eax, dword [0x103bb1a4]
jmp 0x1005a4fc
cmp ecx, eax
jne 0x1005a820
mov eax, 0x93
cmp word [esi + 4], ax
jne 0x1005a820
add eax, 0xfffffff5
cmp word [esi + 6], ax
jne 0x1005a820
push 0x32
xor ebx, ebx
lea eax, [ebp - 0x38]
push ebx
push eax
call sub.MSVCR100.dll_memset
movzx eax, word [esi + 8]
add esp, 0xc
cmp eax, 1
jne 0x1005a655
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0x10]
call fcn.100493d9
mov esi, dword [esi + 0x18]
pop ecx
pop ecx
mov edi, 0x103b4214
mov ecx, edi
call fcn.10001036
test eax, eax
jle 0x1005a62b
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x103b4214]
push dword [eax + ebx*4]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1005a646
mov ecx, edi
inc ebx
call fcn.10001036
cmp ebx, eax
jl 0x1005a608
lea eax, [ebp - 0x38]
push eax
mov ecx, edi
call fcn.100010dc
push esi
mov ecx, 0x103b4754
call fcn.10001186
jmp 0x1005a820
mov eax, dword [0x103b4754]
mov eax, dword [eax + ebx*4]
add dword [eax], esi
jmp 0x1005a820
cmp eax, 2
jne 0x1005a66d
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0x10]
call fcn.100493d9
pop ecx
pop ecx
jmp 0x1005a820
cmp eax, 3
je 0x1005a67b
cmp eax, 4
jne 0x1005a820
movzx ecx, byte [esi + 0x41]
mov eax, dword [0x2f98458]
mov edi, dword [eax + ecx*4 + 0x53c]
mov dword [ebp - 0x104], eax
cmp edi, ebx
je 0x1005a820
cmp word [esi + 0x18], bx
jbe 0x1005a820
push 0x64
lea eax, [ebp - 0x9c]
push ebx
push eax
call sub.MSVCR100.dll_memset
push 0x64
lea eax, [ebp - 0x100]
push ebx
push eax
call sub.MSVCR100.dll_memset
lea eax, [ebp - 0x100]
push eax
push edi
call fcn.100168b0
add edi, 0x64
add esp, 0x20
mov dword [ebp - 0x10c], edi
cmp byte [ebp - 0x100], bl
jne 0x1005a6fa
push edi
lea eax, [ebp - 0x9c]
push 0x1008b7c4
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
jmp 0x1005a717
lea eax, [ebp - 0x100]
push eax
push edi
lea eax, [ebp - 0x9c]
push str._s__s
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0x10
mov edi, 0x103b52e4
mov ecx, edi
call fcn.10001036
test eax, eax
jle 0x1005a751
lea eax, [ebp - 0x9c]
push eax
mov eax, dword [0x103b52e4]
push dword [eax + ebx*4]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x1005a82f
mov ecx, edi
inc ebx
call fcn.10001036
cmp ebx, eax
jl 0x1005a727
lea eax, [ebp - 0x9c]
push eax
mov ecx, edi
call fcn.100010dc
movzx eax, word [esi + 0x18]
push eax
mov ecx, 0x103b68f4
call fcn.10001186
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
sub eax, dword [0x103d2798]
cmp eax, 0x7d0
jb 0x1005a820
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1005a820
and dword [ebp - 0x108], 0
call fcn.10005f8c
test eax, eax
je 0x1005a820
mov eax, dword [ebp - 0x104]
add eax, 0x53c
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov edi, dword [eax]
test edi, edi
je 0x1005a806
push dword [ebp - 0x10c]
lea eax, [edi + 0x64]
push eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x1005a806
call ebx
mov dword [0x103d2798], eax
mov eax, dword [edi + 0xd4c]
cdq
push edx
push eax
push 3
push edi
call fcn.1003873a
mov eax, dword [edi + 0xd4c]
cdq
push edx
push eax
push 4
push edi
call fcn.1003873a
add esp, 0x20
inc dword [ebp - 0x108]
add dword [ebp - 0x104], 4
call fcn.10005f8c
cmp dword [ebp - 0x108], eax
jb 0x1005a7b9
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10083e24
leave
ret
mov eax, dword [0x103b68f4]
movzx ecx, word [esi + 0x18]
mov eax, dword [eax + ebx*4]
add dword [eax], ecx
jmp 0x1005a76e