Function at 0x1400415f0
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 0x1400415f4
mov ecx, reloc.WS2_32.dll_WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004229c
mov ecx, WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042289
mov ecx, WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042276
mov ecx, reloc.WS2_32.dll_WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042263
mov ecx, reloc.WS2_32.dll_WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042250
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004223d
mov ecx, 0x76
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004222a
mov ecx, 0x77
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042214
mov ecx, 0x78
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400421fe
mov ecx, 0x79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400421e8
mov ecx, 0x7a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400421d2
mov ecx, 0x7b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400421bc
mov ecx, 9
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400421a6
mov ecx, reloc.WS2_32.dll_sendto
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042190
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004217a
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042164
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004214e
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042138
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042122
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004210c
mov ecx, reloc.WLDAP32.dll_Ordinal_33
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400420f6
mov ecx, Ordinal_35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400420e0
mov ecx, reloc.WLDAP32.dll_Ordinal_35
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400420ca
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400420b4
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004209e
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042088
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042072
mov ecx, Ordinal_41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004205c
mov ecx, reloc.WLDAP32.dll_Ordinal_45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042046
mov ecx, reloc.WLDAP32.dll_Ordinal_46
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042030
mov ecx, 0x60
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004201a
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140042004
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041fee
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041fd8
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041fc2
mov ecx, 0x65
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041fac
mov ecx, 0x66
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f96
mov ecx, 0x67
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f80
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f6a
mov ecx, 0x69
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f54
mov ecx, 0x6a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f3e
mov ecx, WSAGetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f28
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041f12
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041efc
mov ecx, WSASetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041ee6
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041ed0
mov ecx, 0x90
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041eba
mov ecx, 0x91
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041ea4
mov ecx, 0xbb
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e8e
mov ecx, 0xbc
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e78
mov ecx, 0xbd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e62
mov ecx, 0xbe
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e4c
mov ecx, 0x51
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e36
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e20
mov ecx, 0x45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041e0a
mov ecx, 0x52
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041df4
mov ecx, 0x54
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041dde
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041dc8
mov ecx, 0x55
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041db2
mov ecx, 0x49
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d9c
mov ecx, reloc.WLDAP32.dll_Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d86
mov ecx, 0x50
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d70
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d5a
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d44
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d2e
mov ecx, 0x46
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d18
mov ecx, 0x47
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041d02
mov ecx, 0x48
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041cec
mov ecx, 0x4a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041cd6
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041cc0
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041caa
mov ecx, 0x5a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c94
mov ecx, 0x58
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c7e
mov ecx, 0x43
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c68
mov ecx, 0x56
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c52
mov ecx, 0x42
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c3c
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140041c26
mov ecx, Ordinal_79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400415f4
mov dword [0x1400e715c], 0x4d
lea rax, [0x1400cc08c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x4e
lea rax, [0x1400cc090]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x42
lea rax, [0x1400cc060]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x56
lea rax, [0x1400cc0b0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x43
lea rax, [0x1400cc064]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x58
lea rax, [0x1400cc0b8]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x5a
lea rax, [0x1400cc0c0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x4c
lea rax, [0x1400cc088]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x4b
lea rax, [0x1400cc084]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x4a
lea rax, [0x1400cc080]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x48
lea rax, [0x1400cc078]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x47
lea rax, [0x1400cc074]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x46
lea rax, [0x1400cc070]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x44
lea rax, [0x1400cc068]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x53
lea rax, [0x1400cc0a4]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x41
lea rax, [0x1400cc05c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x50
lea rax, [0x1400cc098]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x4f
lea rax, [0x1400cc094]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x49
lea rax, [0x1400cc07c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x55
lea rax, [0x1400cc0ac]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x59
lea rax, [0x1400cc0bc]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x54
lea rax, [0x1400cc0a8]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x52
lea rax, [0x1400cc0a0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x45
lea rax, [0x1400cc06c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x57
lea rax, [0x1400cc0b4]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x51
lea rax, [0x1400cc09c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0xbe
lea rax, [0x1400d2608]
jmp 0x1400422ad
mov dword [0x1400e715c], 0xbd
lea rax, [0x1400d2604]
jmp 0x1400422ad
mov dword [0x1400e715c], 0xbc
lea rax, [0x1400d2600]
jmp 0x1400422ad
mov dword [0x1400e715c], 0xbb
lea rax, [0x1400d25fc]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x91
lea rax, str.SCROLL_LOCK
jmp 0x1400422ad
mov dword [0x1400e715c], 0x90
lea rax, str.NUM_LOCK
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6f
lea rax, str.DIVIDE
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6e
lea rax, str.DECIMAL
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6d
lea rax, str.SUBTRACT
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6c
lea rax, str.SEPARATOR
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6b
lea rax, [0x1400d25ac]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x6a
lea rax, str.MULTIPLY
jmp 0x1400422ad
mov dword [0x1400e715c], 0x69
lea rax, str.NUMPAD9
jmp 0x1400422ad
mov dword [0x1400e715c], 0x68
lea rax, str.NUMPAD8
jmp 0x1400422ad
mov dword [0x1400e715c], 0x67
lea rax, str.NUMPAD7
jmp 0x1400422ad
mov dword [0x1400e715c], 0x66
lea rax, str.NUMPAD6
jmp 0x1400422ad
mov dword [0x1400e715c], 0x65
lea rax, str.NUMPAD5
jmp 0x1400422ad
mov dword [0x1400e715c], 0x64
lea rax, str.NUMPAD4
jmp 0x1400422ad
mov dword [0x1400e715c], 0x63
lea rax, str.NUMPAD3
jmp 0x1400422ad
mov dword [0x1400e715c], 0x62
lea rax, str.NUMPAD2
jmp 0x1400422ad
mov dword [0x1400e715c], 0x61
lea rax, str.NUMPAD1
jmp 0x1400422ad
mov dword [0x1400e715c], 0x60
lea rax, str.NUMPAD0
jmp 0x1400422ad
mov dword [0x1400e715c], 0x2e
lea rax, str.DELETE
jmp 0x1400422ad
mov dword [0x1400e715c], 0x2d
lea rax, str.INSERT
jmp 0x1400422ad
mov dword [0x1400e715c], 0x28
lea rax, str.DOWN_ARROW
jmp 0x1400422ad
mov dword [0x1400e715c], 0x27
lea rax, str.RIGHT_ARROW
jmp 0x1400422ad
mov dword [0x1400e715c], 0x26
lea rax, str.UP_ARROW
jmp 0x1400422ad
mov dword [0x1400e715c], 0x25
lea rax, str.LEFT_ARROW
jmp 0x1400422ad
mov dword [0x1400e715c], 0x24
lea rax, str.HOME
jmp 0x1400422ad
mov dword [0x1400e715c], 0x23
lea rax, [0x1400d250c]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x22
lea rax, str.PAGE_DOWN
jmp 0x1400422ad
mov dword [0x1400e715c], 0x21
lea rax, str.PAGE_UP
jmp 0x1400422ad
mov dword [0x1400e715c], 0x20
lea rax, str.SPACE
jmp 0x1400422ad
mov dword [0x1400e715c], 0xa1
lea rax, str.RIGHT_SHIFT
jmp 0x1400422ad
mov dword [0x1400e715c], 0xa3
lea rax, str.RIGHT_CONTROL
jmp 0x1400422ad
mov dword [0x1400e715c], 0x12
lea rax, [0x1400d24cc]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x11
lea rax, str.CTRL
jmp 0x1400422ad
mov dword [0x1400e715c], 0x10
lea rax, str.SHIFT
jmp 0x1400422ad
mov dword [0x1400e715c], 0x14
lea rax, str.CAPS
jmp 0x1400422ad
mov dword [0x1400e715c], 9
lea rax, [0x1400d24b0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x7b
lea rax, [0x1400cc0f0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x7a
lea rax, [0x1400cc0ec]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x79
lea rax, [0x1400cc0e8]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x78
lea rax, [0x1400cc0e4]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x77
lea rax, [0x1400cc0e0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x76
lea rax, [0x1400cc0dc]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x75
lea rax, [0x1400cc0d8]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x74
lea rax, [0x1400cc0d4]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x73
lea rax, [0x1400cc0d0]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x72
lea rax, [0x1400cc0cc]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x71
lea rax, [0x1400cc0c8]
jmp 0x1400422ad
mov dword [0x1400e715c], 0x70
lea rax, [0x1400cc0c4]
mov ecx, 0xa
mov qword [str.NUMPAD5], rax
add rsp, 0x28
jmp qword [sym.imp.KERNEL32.dll_Sleep]