Function at 0x1400422d0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
mov ecx, reloc.WLDAP32.dll_Ordinal_27
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400422d4
mov ecx, reloc.WS2_32.dll_WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f7c
mov ecx, WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f69
mov ecx, WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f56
mov ecx, reloc.WS2_32.dll_WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f43
mov ecx, reloc.WS2_32.dll_WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f30
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f1d
mov ecx, 0x76
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042f0a
mov ecx, 0x77
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ef4
mov ecx, 0x78
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ede
mov ecx, 0x79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ec8
mov ecx, 0x7a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042eb2
mov ecx, 0x7b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e9c
mov ecx, 9
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e86
mov ecx, reloc.WS2_32.dll_sendto
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e70
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e5a
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e44
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e2e
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e18
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042e02
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042dec
mov ecx, reloc.WLDAP32.dll_Ordinal_33
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042dd6
mov ecx, Ordinal_35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042dc0
mov ecx, reloc.WLDAP32.dll_Ordinal_35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042daa
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d94
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d7e
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d68
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d52
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d3c
mov ecx, reloc.WLDAP32.dll_Ordinal_45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d26
mov ecx, reloc.WLDAP32.dll_Ordinal_46
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042d10
mov ecx, 0x60
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042cfa
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ce4
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042cce
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042cb8
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ca2
mov ecx, 0x65
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c8c
mov ecx, 0x66
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c76
mov ecx, 0x67
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c60
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c4a
mov ecx, 0x69
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c34
mov ecx, 0x6a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c1e
mov ecx, WSAGetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042c08
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042bf2
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042bdc
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042bc6
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042bb0
mov ecx, 0x90
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b9a
mov ecx, 0x91
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b84
mov ecx, 0xbb
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b6e
mov ecx, 0xbc
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b58
mov ecx, 0xbd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b42
mov ecx, 0xbe
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b2c
mov ecx, 0x51
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b16
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042b00
mov ecx, 0x45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042aea
mov ecx, 0x52
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042ad4
mov ecx, 0x54
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042abe
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042aa8
mov ecx, 0x55
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a92
mov ecx, 0x49
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a7c
mov ecx, reloc.WLDAP32.dll_Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a66
mov ecx, 0x50
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a50
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a3a
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a24
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042a0e
mov ecx, 0x46
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400429f8
mov ecx, 0x47
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400429e2
mov ecx, 0x48
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400429cc
mov ecx, 0x4a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400429b6
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400429a0
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004298a
mov ecx, 0x5a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042974
mov ecx, 0x58
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004295e
mov ecx, 0x43
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042948
mov ecx, 0x56
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042932
mov ecx, 0x42
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004291c
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042906
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400422d4
mov dword [0x1400e7150], 0x4d
lea rax, [0x1400cc08c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x4e
lea rax, [0x1400cc090]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x42
lea rax, [0x1400cc060]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x56
lea rax, [0x1400cc0b0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x43
lea rax, [0x1400cc064]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x58
lea rax, [0x1400cc0b8]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x5a
lea rax, [0x1400cc0c0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x4c
lea rax, [0x1400cc088]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x4b
lea rax, [0x1400cc084]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x4a
lea rax, [0x1400cc080]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x48
lea rax, [0x1400cc078]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x47
lea rax, [0x1400cc074]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x46
lea rax, [0x1400cc070]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x44
lea rax, [0x1400cc068]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x53
lea rax, [0x1400cc0a4]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x41
lea rax, [0x1400cc05c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x50
lea rax, [0x1400cc098]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x4f
lea rax, [0x1400cc094]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x49
lea rax, [0x1400cc07c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x55
lea rax, [0x1400cc0ac]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x59
lea rax, [0x1400cc0bc]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x54
lea rax, [0x1400cc0a8]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x52
lea rax, [0x1400cc0a0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x45
lea rax, [0x1400cc06c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x57
lea rax, [0x1400cc0b4]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x51
lea rax, [0x1400cc09c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0xbe
lea rax, [0x1400d2608]
jmp 0x140042f8d
mov dword [0x1400e7150], 0xbd
lea rax, [0x1400d2604]
jmp 0x140042f8d
mov dword [0x1400e7150], 0xbc
lea rax, [0x1400d2600]
jmp 0x140042f8d
mov dword [0x1400e7150], 0xbb
lea rax, [0x1400d25fc]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x91
lea rax, str.SCROLL_LOCK
jmp 0x140042f8d
mov dword [0x1400e7150], 0x90
lea rax, str.NUM_LOCK
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6f
lea rax, str.DIVIDE
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6e
lea rax, str.DECIMAL
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6d
lea rax, str.SUBTRACT
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6c
lea rax, str.SEPARATOR
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6b
lea rax, [0x1400d25ac]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x6a
lea rax, str.MULTIPLY
jmp 0x140042f8d
mov dword [0x1400e7150], 0x69
lea rax, str.NUMPAD9
jmp 0x140042f8d
mov dword [0x1400e7150], 0x68
lea rax, str.NUMPAD8
jmp 0x140042f8d
mov dword [0x1400e7150], 0x67
lea rax, str.NUMPAD7
jmp 0x140042f8d
mov dword [0x1400e7150], 0x66
lea rax, str.NUMPAD6
jmp 0x140042f8d
mov dword [0x1400e7150], 0x65
lea rax, str.NUMPAD5
jmp 0x140042f8d
mov dword [0x1400e7150], 0x64
lea rax, str.NUMPAD4
jmp 0x140042f8d
mov dword [0x1400e7150], 0x63
lea rax, str.NUMPAD3
jmp 0x140042f8d
mov dword [0x1400e7150], 0x62
lea rax, str.NUMPAD2
jmp 0x140042f8d
mov dword [0x1400e7150], 0x61
lea rax, str.NUMPAD1
jmp 0x140042f8d
mov dword [0x1400e7150], 0x60
lea rax, str.NUMPAD0
jmp 0x140042f8d
mov dword [0x1400e7150], 0x2e
lea rax, str.DELETE
jmp 0x140042f8d
mov dword [0x1400e7150], 0x2d
lea rax, str.INSERT
jmp 0x140042f8d
mov dword [0x1400e7150], 0x28
lea rax, str.DOWN_ARROW
jmp 0x140042f8d
mov dword [0x1400e7150], 0x27
lea rax, str.RIGHT_ARROW
jmp 0x140042f8d
mov dword [0x1400e7150], 0x26
lea rax, str.UP_ARROW
jmp 0x140042f8d
mov dword [0x1400e7150], 0x25
lea rax, str.LEFT_ARROW
jmp 0x140042f8d
mov dword [0x1400e7150], 0x24
lea rax, str.HOME
jmp 0x140042f8d
mov dword [0x1400e7150], 0x23
lea rax, [0x1400d250c]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x22
lea rax, str.PAGE_DOWN
jmp 0x140042f8d
mov dword [0x1400e7150], 0x21
lea rax, str.PAGE_UP
jmp 0x140042f8d
mov dword [0x1400e7150], 0x20
lea rax, str.SPACE
jmp 0x140042f8d
mov dword [0x1400e7150], 0xa1
lea rax, str.RIGHT_SHIFT
jmp 0x140042f8d
mov dword [0x1400e7150], 0xa3
lea rax, str.RIGHT_CONTROL
jmp 0x140042f8d
mov dword [0x1400e7150], 0x12
lea rax, [0x1400d24cc]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x11
lea rax, str.CTRL
jmp 0x140042f8d
mov dword [0x1400e7150], 0x10
lea rax, str.SHIFT
jmp 0x140042f8d
mov dword [0x1400e7150], 0x14
lea rax, str.CAPS
jmp 0x140042f8d
mov dword [0x1400e7150], 9
lea rax, [0x1400d24b0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x7b
lea rax, [0x1400cc0f0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x7a
lea rax, [0x1400cc0ec]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x79
lea rax, [0x1400cc0e8]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x78
lea rax, [0x1400cc0e4]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x77
lea rax, [0x1400cc0e0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x76
lea rax, [0x1400cc0dc]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x75
lea rax, [0x1400cc0d8]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x74
lea rax, [0x1400cc0d4]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x73
lea rax, [0x1400cc0d0]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x72
lea rax, [0x1400cc0cc]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x71
lea rax, [0x1400cc0c8]
jmp 0x140042f8d
mov dword [0x1400e7150], 0x70
lea rax, [0x1400cc0c4]
mov ecx, 0xa
mov qword [str.NUMPAD2], rax
add rsp, 0x28
jmp qword [sym.imp.KERNEL32.dll_Sleep]