Function at 0x6d308c
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x6d3624
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
push ebp
call fcn.006d2a40
pop ecx
push ebp
call fcn.006d2bac
pop ecx
push ebp
call fcn.006d2b28
pop ecx
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x6c]
cmp byte [eax + 0x29d], 0
je 0x6d30fd
mov eax, dword [ebp - 4]
call fcn.006d4abc
test al, al
jne 0x6d3609
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
je 0x6d35ca
mov eax, dword [0x70b4d4]
cmp byte [eax], 0
jne case.0x6d3128.0
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x70]
cmp eax, 0xb
ja case.0x6d3128.0
jmp dword [eax*4 + 0x6d312f]
mov eax, dword [ebp - 4]
call 0x6d3db0
jmp case.0x6d3128.0
mov eax, dword [ebp - 4]
call fcn.006d3fd8
jmp case.0x6d3128.0
mov eax, dword [ebp - 4]
call fcn.006d3e40
jmp case.0x6d3128.0
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4230
cdq
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
jmp case.0x6d3128.0
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4958
jmp case.0x6d3128.0
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4998
jmp case.0x6d3128.0
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4918
jmp case.0x6d3128.0
mov eax, dword [ebp - 4]
call fcn.006d49d8
jmp case.0x6d3128.0
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4a10
mov eax, dword [0x70b4d4]
cmp byte [eax], 0
je 0x6d31db
mov eax, dword [ebp - 4]
mov byte [eax + 0x71], 3
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x120]
call fcn.006958fc
test al, al
je 0x6d31f9
mov eax, dword [ebp - 4]
mov byte [eax + 0x71], 4
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x71]
dec al
je 0x6d3221
dec al
je 0x6d32e7
dec al
je 0x6d3377
dec al
je 0x6d351d
jmp 0x6d359f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 1
je 0x6d328a
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
mov edx, 0x6d3640
call fcn.00692304
push ebp
call fcn.006d2be8
pop ecx
xor ebx, ebx
mov eax, dword [0x70b5f0]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp ebx, eax
jge 0x6d3284
lea ecx, [ebp - 0x14]
mov eax, dword [0x70b5f0]
mov eax, dword [eax]
mov edx, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
pop edx
call fcn.00692304
inc ebx
cmp ebx, 0x15
jne 0x6d324b
mov eax, dword [ebp - 4]
mov dword [eax + 0x18], 1
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d65a8
call sub.winmm.dll_timeGetTime
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
push 0x20000
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov edx, dword [0x70b660]
cmp dword [edx + 0x174], 1
sete dl
mov cl, 1
call fcn.006d0248
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d38b4
jmp 0x6d35c3
mov eax, dword [ebp - 4]
call fcn.006d6890
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d65a8
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x71], 0
call sub.winmm.dll_timeGetTime
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.006d4230
push 0x20000
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov edx, dword [0x70b660]
cmp dword [edx + 0x174], 1
sete dl
mov cl, 1
call fcn.006d0248
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d38b4
mov eax, dword [ebp - 4]
call fcn.006d50b0
cmp byte [eax + 0x140], 0
jne 0x6d35c3
mov eax, dword [ebp - 4]
mov byte [eax + 0x71], 1
jmp 0x6d35c3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 2
je 0x6d3437
mov eax, dword [ebp - 4]
call fcn.006d50b0
cmp word [eax + 0x3a], 0
je 0x6d33ad
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov edx, eax
mov eax, dword [ebx + 0x3c]
call dword [ebx + 0x38]
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
mov edx, 0x6d365c
call fcn.00692304
push ebp
call fcn.006d2be8
pop ecx
xor ebx, ebx
mov eax, dword [0x70b5f0]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp ebx, eax
jge 0x6d3407
lea ecx, [ebp - 0x18]
mov eax, dword [0x70b5f0]
mov eax, dword [eax]
mov edx, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
pop edx
call fcn.00692304
inc ebx
cmp ebx, 9
jne 0x6d33ce
lea eax, [ebp - 0x1c]
push eax
xor ecx, ecx
mov dl, 1
mov eax, 0x6d3688
call fcn.004fc42c
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
pop edx
call fcn.00692304
mov eax, dword [ebp - 4]
mov dword [eax + 0x18], 2
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d65a8
call sub.winmm.dll_timeGetTime
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
push 0x20000
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov edx, dword [0x70b660]
cmp dword [edx + 0x174], 1
sete dl
mov cl, 1
call fcn.006d0248
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d38b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x6c]
cmp byte [eax + 0x29d], 0
je 0x6d35c3
push 0x11
call sub.user32.dll_GetAsyncKeyState
movsx eax, ax
test ah, 0x80
je 0x6d35c3
push 0x43
call sub.user32.dll_GetAsyncKeyState
movsx eax, ax
test ah, 0x80
je 0x6d35c3
xor eax, eax
push ebp
push 0x6d350e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
mov eax, dword [eax + 0x2c]
lea edx, [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x20]
push eax
call fcn.00480278
pop edx
call fcn.0047fd3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6d35c3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 3
je 0x6d3545
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
mov edx, 0x6d36a8
call fcn.00692304
push ebp
call fcn.006d2be8
pop ecx
mov eax, dword [ebp - 4]
mov dword [eax + 0x18], 3
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d65a8
call sub.winmm.dll_timeGetTime
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
push 0x20000
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov edx, dword [0x70b660]
cmp dword [edx + 0x174], 1
sete dl
mov cl, 1
call fcn.006d0248
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.006d38b4
jmp 0x6d35c3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x18], 0
je 0x6d35bb
mov eax, dword [ebp - 4]
call fcn.006d50b0
mov eax, dword [eax + 0x124]
call fcn.00692adc
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 4]
movzx ebx, byte [eax + 0x70]
push ebp
call fcn.006d2a88
pop ecx
mov edx, dword [ebp - 4]
inc dword [edx + 0x74]
mov edx, dword [ebp - 4]
cmp dword [edx + 0x74], 0xfffffff
jle 0x6d35ed
mov edx, dword [ebp - 4]
mov dword [edx + 0x74], 0xffff
mov edx, dword [ebp - 4]
inc dword [edx + 0x1c]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
add dword [edx + 0x34], ecx
mov edx, dword [ebp - 4]
add dword [edx + 0x30], eax
push ebp
call fcn.006d2e38
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6d362b
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.00407458
ret