Function at 0x100ad650
Capabilities:
Log keystrokes via polling

Disassembly:
push esi
mov esi, ecx
test esi, esi
je 0x100adbce
push ebx
push edi
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x20
call edi
mov ebx, 0x8000
test bx, ax
je 0x100ad67b
pop edi
pop ebx
mov dword [esi], 0x20
pop esi
ret
push 0xd
call edi
test bx, ax
je 0x100ad68e
pop edi
pop ebx
mov dword [esi], 0xd
pop esi
ret
push 9
call edi
test bx, ax
je 0x100ad6a1
pop edi
pop ebx
mov dword [esi], 9
pop esi
ret
push 0x26
call edi
test bx, ax
je 0x100ad6b4
pop edi
pop ebx
mov dword [esi], 0x80
pop esi
ret
push 0x28
call edi
test bx, ax
je 0x100ad6c7
pop edi
pop ebx
mov dword [esi], 0x81
pop esi
ret
push 0x25
call edi
test bx, ax
je 0x100ad6da
pop edi
pop ebx
mov dword [esi], 0x82
pop esi
ret
push 0x27
call edi
test bx, ax
je 0x100ad6ed
pop edi
pop ebx
mov dword [esi], 0x83
pop esi
ret
push 0x12
call edi
test bx, ax
je 0x100ad700
pop edi
pop ebx
mov dword [esi], 0x84
pop esi
ret
push 0x11
call edi
test bx, ax
je 0x100ad713
pop edi
pop ebx
mov dword [esi], 0x85
pop esi
ret
push 0x10
call edi
test bx, ax
je 0x100ad726
pop edi
pop ebx
mov dword [esi], 0x86
pop esi
ret
push 0x70
call edi
test bx, ax
je 0x100ad739
pop edi
pop ebx
mov dword [esi], 0x87
pop esi
ret
push 0x71
call edi
test bx, ax
je 0x100ad74c
pop edi
pop ebx
mov dword [esi], 0x88
pop esi
ret
push 0x72
call edi
test bx, ax
je 0x100ad75f
pop edi
pop ebx
mov dword [esi], 0x89
pop esi
ret
push 0x73
call edi
test bx, ax
je 0x100ad772
pop edi
pop ebx
mov dword [esi], 0x8a
pop esi
ret
push 0x74
call edi
test bx, ax
je 0x100ad785
pop edi
pop ebx
mov dword [esi], 0x8b
pop esi
ret
push 0x75
call edi
test bx, ax
je 0x100ad798
pop edi
pop ebx
mov dword [esi], 0x8c
pop esi
ret
push 0x76
call edi
test bx, ax
je 0x100ad7ab
pop edi
pop ebx
mov dword [esi], 0x8d
pop esi
ret
push 0x77
call edi
test bx, ax
je 0x100ad7be
pop edi
pop ebx
mov dword [esi], 0x8e
pop esi
ret
push 0x78
call edi
test bx, ax
je 0x100ad7d1
pop edi
pop ebx
mov dword [esi], 0x8f
pop esi
ret
push 0x79
call edi
test bx, ax
je 0x100ad7e4
pop edi
pop ebx
mov dword [esi], 0x90
pop esi
ret
push 0x7a
call edi
test bx, ax
je 0x100ad7f7
pop edi
pop ebx
mov dword [esi], 0x91
pop esi
ret
push 0x7b
call edi
test bx, ax
je 0x100ad80a
pop edi
pop ebx
mov dword [esi], 0x92
pop esi
ret
push 0x22
call edi
test bx, ax
je 0x100ad81d
pop edi
pop ebx
mov dword [esi], 0x95
pop esi
ret
push 0x21
call edi
test bx, ax
je 0x100ad830
pop edi
pop ebx
mov dword [esi], 0x96
pop esi
ret
push 0x24
call edi
test bx, ax
je 0x100ad843
pop edi
pop ebx
mov dword [esi], 0x97
pop esi
ret
push 0x23
call edi
test bx, ax
je 0x100ad856
pop edi
pop ebx
mov dword [esi], 0x98
pop esi
ret
push 0x51
call edi
test bx, ax
je 0x100ad869
pop edi
pop ebx
mov dword [esi], 0x71
pop esi
ret
push 0x57
call edi
test bx, ax
je 0x100ad87c
pop edi
pop ebx
mov dword [esi], 0x77
pop esi
ret
push 0x45
call edi
test bx, ax
je 0x100ad88f
pop edi
pop ebx
mov dword [esi], 0x65
pop esi
ret
push 0x52
call edi
test bx, ax
je 0x100ad8a2
pop edi
pop ebx
mov dword [esi], 0x72
pop esi
ret
push 0x54
call edi
test bx, ax
je 0x100ad8b5
pop edi
pop ebx
mov dword [esi], 0x74
pop esi
ret
push 0x59
call edi
test bx, ax
je 0x100ad8c8
pop edi
pop ebx
mov dword [esi], 0x79
pop esi
ret
push 0x55
call edi
test bx, ax
je 0x100ad8db
pop edi
pop ebx
mov dword [esi], 0x75
pop esi
ret
push 0x49
call edi
test bx, ax
je 0x100ad8ee
pop edi
pop ebx
mov dword [esi], 0x69
pop esi
ret
push 0x4f
call edi
test bx, ax
je 0x100ad901
pop edi
pop ebx
mov dword [esi], 0x6f
pop esi
ret
push 0x50
call edi
test bx, ax
je 0x100ad914
pop edi
pop ebx
mov dword [esi], 0x70
pop esi
ret
push 0xdb
call edi
test bx, ax
je 0x100ad92a
pop edi
pop ebx
mov dword [esi], 0x5b
pop esi
ret
push 0xdd
call edi
test bx, ax
je 0x100ad940
pop edi
pop ebx
mov dword [esi], 0x5d
pop esi
ret
push 0x41
call edi
test bx, ax
je 0x100ad953
pop edi
pop ebx
mov dword [esi], 0x61
pop esi
ret
push 0x53
call edi
test bx, ax
je 0x100ad966
pop edi
pop ebx
mov dword [esi], 0x73
pop esi
ret
push 0x44
call edi
test bx, ax
je 0x100ad979
pop edi
pop ebx
mov dword [esi], 0x64
pop esi
ret
push 0x46
call edi
test bx, ax
je 0x100ad98c
pop edi
pop ebx
mov dword [esi], 0x66
pop esi
ret
push 0x47
call edi
test bx, ax
je 0x100ad99f
pop edi
pop ebx
mov dword [esi], 0x67
pop esi
ret
push 0x48
call edi
test bx, ax
je 0x100ad9b2
pop edi
pop ebx
mov dword [esi], 0x68
pop esi
ret
push 0x4a
call edi
test bx, ax
je 0x100ad9c5
pop edi
pop ebx
mov dword [esi], 0x6a
pop esi
ret
push 0x4b
call edi
test bx, ax
je 0x100ad9d8
pop edi
pop ebx
mov dword [esi], 0x6b
pop esi
ret
push 0x4c
call edi
test bx, ax
je 0x100ad9eb
pop edi
pop ebx
mov dword [esi], 0x6c
pop esi
ret
push 0x5a
call edi
test bx, ax
je 0x100ad9fe
pop edi
pop ebx
mov dword [esi], 0x7a
pop esi
ret
push 0x58
call edi
test bx, ax
je 0x100ada11
pop edi
pop ebx
mov dword [esi], 0x78
pop esi
ret
push 0x43
call edi
test bx, ax
je 0x100ada24
pop edi
pop ebx
mov dword [esi], 0x63
pop esi
ret
push 0x56
call edi
test bx, ax
je 0x100ada37
pop edi
pop ebx
mov dword [esi], 0x76
pop esi
ret
push 0x42
call edi
test bx, ax
je 0x100ada4a
pop edi
pop ebx
mov dword [esi], 0x62
pop esi
ret
push 0x4e
call edi
test bx, ax
je 0x100ada5d
pop edi
pop ebx
mov dword [esi], 0x6e
pop esi
ret
push 0x4d
call edi
test bx, ax
je 0x100ada70
pop edi
pop ebx
mov dword [esi], 0x6d
pop esi
ret
push 0xbc
call edi
test bx, ax
je 0x100ada86
pop edi
pop ebx
mov dword [esi], 0x2c
pop esi
ret
push 0xbe
call edi
test bx, ax
je 0x100ada9c
pop edi
pop ebx
mov dword [esi], 0x2e
pop esi
ret
push 1
call edi
test bx, ax
je 0x100adaaf
pop edi
pop ebx
mov dword [esi], 0xf1
pop esi
ret
push 2
call edi
test bx, ax
je 0x100adac2
pop edi
pop ebx
mov dword [esi], 0xf2
pop esi
ret
push 4
call edi
test bx, ax
je 0x100adad5
pop edi
pop ebx
mov dword [esi], 0xf3
pop esi
ret
push 5
call edi
test bx, ax
je 0x100adae8
pop edi
pop ebx
mov dword [esi], 0xf4
pop esi
ret
push 6
call edi
test bx, ax
je 0x100adafb
pop edi
pop ebx
mov dword [esi], 0xf5
pop esi
ret
push 0x30
call edi
test bx, ax
je 0x100adb0e
pop edi
pop ebx
mov dword [esi], 0x30
pop esi
ret
push 0x31
call edi
test bx, ax
je 0x100adb21
pop edi
pop ebx
mov dword [esi], 0x31
pop esi
ret
push 0x32
call edi
test bx, ax
je 0x100adb34
pop edi
pop ebx
mov dword [esi], 0x32
pop esi
ret
push 0x33
call edi
test bx, ax
je 0x100adb47
pop edi
pop ebx
mov dword [esi], 0x33
pop esi
ret
push 0x34
call edi
test bx, ax
je 0x100adb5a
pop edi
pop ebx
mov dword [esi], 0x34
pop esi
ret
push 0x35
call edi
test bx, ax
je 0x100adb6d
pop edi
pop ebx
mov dword [esi], 0x35
pop esi
ret
push 0x36
call edi
test bx, ax
je 0x100adb80
pop edi
pop ebx
mov dword [esi], 0x36
pop esi
ret
push 0x37
call edi
test bx, ax
je 0x100adb93
pop edi
pop ebx
mov dword [esi], 0x37
pop esi
ret
push 0x38
call edi
test bx, ax
je 0x100adba6
pop edi
pop ebx
mov dword [esi], 0x38
pop esi
ret
push 0x39
call edi
test bx, ax
je 0x100adbb9
pop edi
pop ebx
mov dword [esi], 0x39
pop esi
ret
push 0x1b
call edi
and ax, bx
movzx eax, ax
neg eax
pop edi
sbb eax, eax
and eax, 0x1b
mov dword [esi], eax
pop ebx
pop esi
ret