Function at 0x1005a3ac
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 [0x36208e4]
movzx eax, word [eax + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
movzx ecx, word [esi]
push edi
cmp ecx, eax
jne 0x1005a7d6
cmp word [esi + 4], 0x3b
jne 0x1005a4bc
cmp word [esi + 6], 0x1c
jne 0x1005a4bc
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.10049348
xor esi, esi
add esp, 0x14
cmp dword [0x103591e8], esi
jle 0x1005a45c
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 0x1005a43a
inc esi
add edi, 0x14
cmp esi, dword [0x103591e8]
jl 0x1005a41c
jmp 0x1005a45c
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.10006dd0
pop ecx
call edi
mov dword [0x103d23a4], eax
mov esi, 0x103b6cd4
mov ecx, esi
xor edi, edi
call fcn.100011d9
test eax, eax
jle 0x1005a491
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 0x1005a4ad
mov ecx, esi
inc edi
call fcn.100011d9
cmp edi, eax
jl 0x1005a46e
push 1
mov ecx, 0x103b71fc
call fcn.10001182
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.1000110a
jmp 0x1005a7d6
mov eax, dword [0x103b71fc]
mov eax, dword [eax + edi*4]
inc dword [eax]
jmp 0x1005a7d6
cmp ecx, eax
jne 0x1005a7d6
cmp word [esi + 4], 0xd
jne 0x1005a55f
cmp word [esi + 6], 0x7b
jne 0x1005a55f
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 0x1005a7d6
lea eax, [ebp - 0x38]
push eax
mov byte [0x10342a88], 1
push dword [esi + 0x14]
call fcn.10049348
pop ecx
pop ecx
mov esi, 0x103b9acc
mov ecx, esi
call fcn.100011d9
test eax, eax
jle 0x1005a53e
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 0x1005a555
mov ecx, esi
inc edi
call fcn.100011d9
cmp edi, eax
jl 0x1005a51b
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.1000110a
push 1
mov ecx, 0x103bb1a4
jmp 0x1005a5f2
mov eax, dword [0x103bb1a4]
jmp 0x1005a4b2
cmp ecx, eax
jne 0x1005a7d6
mov eax, 0x93
cmp word [esi + 4], ax
jne 0x1005a7d6
add eax, 0xfffffff5
cmp word [esi + 6], ax
jne 0x1005a7d6
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 0x1005a60b
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0x10]
call fcn.10049348
mov esi, dword [esi + 0x18]
pop ecx
pop ecx
mov edi, 0x103b4214
mov ecx, edi
call fcn.100011d9
test eax, eax
jle 0x1005a5e1
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 0x1005a5fc
mov ecx, edi
inc ebx
call fcn.100011d9
cmp ebx, eax
jl 0x1005a5be
lea eax, [ebp - 0x38]
push eax
mov ecx, edi
call fcn.1000110a
push esi
mov ecx, 0x103b4754
call fcn.10001182
jmp 0x1005a7d6
mov eax, dword [0x103b4754]
mov eax, dword [eax + ebx*4]
add dword [eax], esi
jmp 0x1005a7d6
cmp eax, 2
jne 0x1005a623
lea eax, [ebp - 0x38]
push eax
push dword [esi + 0x10]
call fcn.10049348
pop ecx
pop ecx
jmp 0x1005a7d6
cmp eax, 3
je 0x1005a631
cmp eax, 4
jne 0x1005a7d6
movzx ecx, byte [esi + 0x41]
mov eax, dword [0x35f42ac]
mov edi, dword [eax + ecx*4 + 0x53c]
mov dword [ebp - 0x104], eax
cmp edi, ebx
je 0x1005a7d6
cmp word [esi + 0x18], bx
jbe 0x1005a7d6
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.100167bf
add edi, 0x64
add esp, 0x20
mov dword [ebp - 0x10c], edi
cmp byte [ebp - 0x100], bl
jne 0x1005a6b0
push edi
lea eax, [ebp - 0x9c]
push 0x1008b7c4
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
jmp 0x1005a6cd
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.100011d9
test eax, eax
jle 0x1005a707
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 0x1005a7e5
mov ecx, edi
inc ebx
call fcn.100011d9
cmp ebx, eax
jl 0x1005a6dd
lea eax, [ebp - 0x9c]
push eax
mov ecx, edi
call fcn.1000110a
movzx eax, word [esi + 0x18]
push eax
mov ecx, 0x103b68f4
call fcn.10001182
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
sub eax, dword [0x103d2790]
cmp eax, 0x7d0
jb 0x1005a7d6
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1005a7d6
and dword [ebp - 0x108], 0
call fcn.10005f4e
test eax, eax
je 0x1005a7d6
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 0x1005a7bc
push dword [ebp - 0x10c]
lea eax, [edi + 0x64]
push eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x1005a7bc
call ebx
mov dword [0x103d2790], eax
mov eax, dword [edi + 0xd4c]
cdq
push edx
push eax
push 3
push edi
call fcn.1003863a
mov eax, dword [edi + 0xd4c]
cdq
push edx
push eax
push 4
push edi
call fcn.1003863a
add esp, 0x20
inc dword [ebp - 0x108]
add dword [ebp - 0x104], 4
call fcn.10005f4e
cmp dword [ebp - 0x108], eax
jb 0x1005a76f
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10083a34
leave
ret
mov eax, dword [0x103b68f4]
movzx ecx, word [esi + 0x18]
mov eax, dword [eax + ebx*4]
add dword [eax], ecx
jmp 0x1005a724