Function at 0x18003e6b4
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov rax, qword [0x180169b40]
xor rax, rsp
mov qword [rbp + 7], rax
mov r12, r9
mov qword [rbp - 9], r8
mov ebx, edx
mov r13, rcx
call fcn.18001d0fc
xor esi, esi
test rax, rax
je 0x18003ed32
call fcn.18001d364
mov r15, rax
call fcn.18001d0fc
test rax, rax
je 0x18003e717
call fcn.18001d364
mov r14, qword [rax + 0x90]
jmp 0x18003e71a
mov r14, rsi
mov eax, 0x204
cmp ebx, eax
ja 0x18003eb9a
je 0x18003e984
mov edx, 0x104
mov edi, 1
lea eax, [rdx - 2]
lea ecx, [rdx - 4]
cmp ebx, eax
ja 0x18003e953
je 0x18003e8f2
mov eax, ebx
sub eax, 7
je 0x18003e8df
sub eax, edi
je 0x18003e8df
sub eax, 0x18
je 0x18003e8c0
sub eax, 0x80
je 0x18003ea1a
sub eax, 0x60
je 0x18003e77f
cmp eax, edi
jne 0x18003ed32
cmp ebx, ecx
je 0x18003e787
cmp ebx, edx
jne 0x18003e78a
mov sil, dil
cmp qword [rbp - 9], rcx
jae 0x18003ed32
call fcn.18001d364
mov ecx, reloc.WS2_32.dll_recvfrom
mov rbx, rax
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x1000
and al, dil
mov rcx, rbx
mov r8b, al
call fcn.180016348
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x2000
and al, dil
mov rcx, rbx
mov r8b, al
call fcn.180016348
mov r15d, reloc.WS2_32.dll_select
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x4000
and al, dil
mov rcx, rbx
mov r8b, al
call fcn.180016348
lea ecx, [r15 + 0x4b]
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x8000
and al, dil
mov rcx, rbx
mov r8b, al
call fcn.180016348
mov rbx, qword [rbp - 9]
cmp rbx, 0xd
jne 0x18003e841
mov rax, r12
shr rax, 0x10
bt ax, 8
mov eax, 0x10d
cmovb ebx, eax
movsxd rcx, ebx
call fcn.18003e120
shr r12, 0x10
movzx r14d, r12b
test eax, eax
je 0x18003e865
mov r9d, r14d
mov r8d, ebx
mov dl, sil
mov ecx, eax
call fcn.18003d6f4
cmp ebx, 0x10
jne 0x18003eadf
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003e89a
mov r9d, r14d
mov r8d, 0xa0
mov dl, sil
mov ecx, 0x210
call fcn.18003d6f4
mov ebx, 0xa1
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003ed32
mov ecx, 0x214
jmp 0x18003eb87
cmp r12w, di
jne 0x18003ed32
call fcn.18003e070
test al, al
je 0x18003ed32
mov rax, rdi
jmp 0x18003ed34
cmp ebx, 7
mov rcx, r15
sete dl
call fcn.1800160ac
jmp 0x18003ed32
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindowUnicode]
test eax, eax
je 0x18003e920
mov rdx, qword [rbp - 9]
lea rax, [rdx - 1]
cmp rax, 0xfffe
ja 0x18003ed32
mov rcx, r15
call fcn.180016180
jmp 0x18003ed32
lea rax, [rbp - 0x11]
mov dword [rsp + 0x28], edi
mov r9d, edi
mov qword [rsp + 0x20], rax
lea r8, [rbp - 9]
mov word [rbp - 0x11], si
mov edx, edi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx edx, word [rbp - 0x11]
mov rcx, r15
call fcn.180016130
jmp 0x18003ed32
mov eax, ebx
sub eax, edx
je 0x18003e783
sub eax, edi
je 0x18003e783
sub eax, 0xfb
je 0x18003ea1a
sub eax, edi
je 0x18003e984
sub eax, edi
je 0x18003ecbd
cmp eax, edi
jne 0x18003ed32
call fcn.18003d6bc
mov dword [rbp - 0x49], eax
mov edi, 1
cmp ebx, 0x204
je 0x18003e9a4
mov r12d, esi
cmp ebx, 0x206
jne 0x18003e9a7
mov r12d, edi
mov edx, 0xfffffffd
lea ecx, [rbx - 0x207]
test edx, ecx
lea eax, [rbx - 0x20b]
mov esi, 2
cmove r12d, esi
test edx, eax
jne 0x18003e9dd
mov rax, qword [rbp - 9]
xor r12d, r12d
shr rax, 0x10
cmp ax, di
setne r12b
add r12d, 3
cmp dword [r14 + 0x14], 0
jne 0x18003e9f8
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x18003e9f8
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [r14 + 0x14]
mov rcx, r15
mov edx, dword [rbp - 0x49]
bts eax, r12d
mov dword [r14 + 0x14], eax
call fcn.180016544
mov r8b, dil
mov edx, r12d
jmp 0x18003ed2a
call fcn.18003d6bc
xor ecx, ecx
mov dword [rbp - 0x49], eax
mov esi, eax
mov qword [r14 + 8], r13
mov eax, ecx
mov edx, 0x200
cmp ebx, edx
setne al
add eax, edi
mov dword [rbp - 0x11], eax
cmp dword [r14 + 0x10], eax
je 0x18003ea91
lea eax, [rcx + 0x18]
mov dword [rbp - 0x3d], 0x80000000
cmp ebx, edx
mov dword [rbp - 0x41], eax
mov dword [rbp - 0x29], eax
lea esi, [rcx + 2]
lea eax, [rcx + 0x12]
mov qword [rbp - 0x39], r13
cmovne esi, eax
mov dword [rbp - 0x31], ecx
mov dword [rbp - 0x25], esi
mov qword [rbp - 0x21], r13
mov dword [rbp - 0x19], ecx
cmp dword [r14 + 0x10], ecx
je 0x18003ea7d
lea rcx, [rbp - 0x41]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
lea rcx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov eax, dword [rbp - 0x11]
mov esi, dword [rbp - 0x49]
mov dword [r14 + 0x10], eax
movsx eax, r12w
shr r12, 0x10
mov dword [rbp - 1], eax
movsx eax, r12w
mov dword [rbp + 3], eax
cmp ebx, 0xa0
jne 0x18003eac0
lea rdx, [rbp - 1]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18003ed32
mov edx, esi
mov rcx, r15
call fcn.180016544
movd xmm2, dword [rbp + 3]
movd xmm1, dword [rbp - 1]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
jmp 0x18003ec70
cmp ebx, 0x11
jne 0x18003eb32
mov ebx, 0xa2
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003eb0f
mov r9d, r14d
mov r8d, ebx
mov dl, sil
mov ecx, 0x20f
call fcn.18003d6f4
mov ebx, 0xa3
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003ed32
mov ecx, 0x213
jmp 0x18003eb87
cmp ebx, r15d
jne 0x18003ed32
mov ebx, 0xa4
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003eb66
mov r9d, r14d
mov r8d, ebx
mov dl, sil
mov ecx, 0x211
call fcn.18003d6f4
mov ebx, 0xa5
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, dil
cmp al, sil
jne 0x18003ed32
mov ecx, 0x215
mov r9d, r14d
mov r8d, ebx
mov dl, sil
call fcn.18003d6f4
jmp 0x18003ed32
mov eax, 0x20b
cmp ebx, eax
ja 0x18003ec0b
je 0x18003e984
mov eax, ebx
sub eax, 0x205
je 0x18003ecb8
sub eax, 1
je 0x18003e984
sub eax, 1
je 0x18003e984
sub eax, 1
je 0x18003ecb8
sub eax, 1
je 0x18003e984
cmp eax, 1
jne 0x18003ed32
mov rax, qword [rbp - 9]
xorps xmm1, xmm1
shr rax, 0x10
cwde
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x1800e5060]
mov rcx, r15
call fcn.180016554
jmp 0x18003ed32
mov eax, ebx
sub eax, 0x20c
je 0x18003ecb8
sub eax, 1
je 0x18003e984
sub eax, 1
je 0x18003ec91
sub eax, 0xb
je 0x18003ec7d
sub eax, 0x89
je 0x18003ec3b
cmp eax, 1
jne 0x18003ed32
cmp ebx, 0x2a3
mov eax, esi
mov edi, 1
setne al
add eax, edi
cmp dword [r14 + 0x10], eax
jne 0x18003ed32
cmp qword [r14 + 8], r13
jne 0x18003ec61
mov qword [r14 + 8], rsi
movss xmm1, dword [0x1800e0c5c]
movaps xmm2, xmm1
mov dword [r14 + 0x10], esi
mov rcx, r15
call fcn.180016420
jmp 0x18003ed32
cmp dword [rbp - 9], 7
jne 0x18003ed32
mov byte [r14 + 0x2d], 1
jmp 0x18003ed32
mov rax, qword [rbp - 9]
xorps xmm2, xmm2
shr rax, 0x10
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x1800e0cd0]
divss xmm1, dword [0x1800e5060]
jmp 0x18003ebfe
mov edi, 1
call fcn.18003d6bc
cmp ebx, 0x205
mov r12d, eax
sete sil
cmp ebx, 0x208
jne 0x18003ecde
mov esi, 2
jmp 0x18003ecfa
cmp ebx, 0x20c
jne 0x18003ecfa
mov rax, qword [rbp - 9]
xor esi, esi
shr rax, 0x10
cmp ax, di
setne sil
add esi, 3
mov eax, dword [r14 + 0x14]
btr eax, esi
mov dword [r14 + 0x14], eax
test eax, eax
jne 0x18003ed1a
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x18003ed1a
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, r12d
mov rcx, r15
call fcn.180016544
xor r8d, r8d
mov edx, esi
mov rcx, r15
call fcn.180016374
xor eax, eax
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.1800d85d0
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret