Function at 0x140102a20
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
push rdi
sub rsp, 0x138
cmp qword [0x1401d7160], 0
je 0x140102e2d
cmp qword [0x1401d7190], 0
je 0x140102e2d
mov edx, 0x100
mov rcx, qword [0x1401d7190]
call fcn.1400ffea0
movzx eax, al
test eax, eax
je 0x140102e2d
mov rcx, qword [0x1401d7190]
call fcn.140101820
test eax, eax
jne 0x140102e2d
mov rcx, qword [0x1401d7190]
call fcn.1401029e0
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140102a94
jmp 0x140102e2d
mov rcx, qword [0x1401d7190]
call fcn.140102960
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0
jne 0x140102ab2
jmp 0x140102e2d
mov rcx, qword [0x1401d7190]
call fcn.1400f7220
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
jne 0x140102ad0
jmp 0x140102e2d
movzx eax, byte [0x1401d4a18]
test eax, eax
je 0x140102ae8
xorps xmm1, xmm1
mov rcx, qword [rsp + 0x20]
call fcn.14010aa40
movzx eax, byte [0x1401d4a19]
test eax, eax
je 0x140102b39
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102b39
movss xmm1, dword [0x1401b5168]
mov rcx, qword [rsp + 0x20]
call fcn.14010abc0
movss xmm1, dword [0x14016d7b8]
mov rcx, qword [rsp + 0x20]
call fcn.14010ac00
movss xmm1, dword [0x1401b5274]
mov rcx, qword [rsp + 0x20]
call fcn.14010aa80
movzx eax, byte [0x1401d4a1a]
test eax, eax
je 0x140102b7f
mov rcx, qword [0x1401d7190]
call fcn.1401029a0
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140102b7f
mov edx, 0x200
mov rcx, qword [rsp + 0x40]
call fcn.1400ffee0
movzx eax, al
test eax, eax
je 0x140102b7f
mov dl, 1
mov rcx, qword [rsp + 0x48]
call fcn.14010a880
movzx eax, byte [0x1401d49f9]
test eax, eax
je 0x140102e2d
mov ecx, dword [0x1401d4ad4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102e09
movss xmm1, dword [0x14016d7e0]
mov rcx, qword [rsp + 0x40]
call fcn.14010b180
lea rdx, [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call fcn.1400ed3d0
xorps xmm3, xmm3
movss xmm2, dword [0x1401b514c]
xorps xmm1, xmm1
lea rcx, [rsp + 0x30]
call fcn.1400e4e80
movss xmm0, dword [0x14016d7f8]
movss dword [rsp + 0x28], xmm0
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102c42
lea rcx, [rsp + 0xc0]
call fcn.1400f7f40
lea rcx, [rsp + 0x70]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0xcc]
call fcn.140104510
lea rcx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102ca0
lea rcx, [rsp + 0xd8]
call fcn.1400f7b30
lea rcx, [rsp + 0x80]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0xe4]
call fcn.140104510
lea rcx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102cfe
lea rcx, [rsp + 0xf0]
call fcn.1400ff4d0
lea rcx, [rsp + 0x90]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0xfc]
call fcn.140104510
lea rcx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102d5c
lea rcx, [rsp + 0x108]
call fcn.1400f9430
lea rcx, [rsp + 0xa0]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x114]
call fcn.140104510
lea rcx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102d7a
movss xmm0, dword [0x14016921c]
movss dword [rsp + 0x34], xmm0
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x140102da4
movss xmm0, dword [0x14016d808]
movss dword [rsp + 0x28], xmm0
movss xmm1, dword [0x1401b52c0]
mov rcx, qword [rsp + 0x20]
call fcn.14010a8c0
movss xmm1, dword [0x1401b52c0]
mov rcx, qword [rsp + 0x20]
call fcn.14010a900
movss xmm2, dword [rsp + 0x28]
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x30]
call fcn.1400e5f10
lea rcx, [rsp + 0xb0]
mov rdi, rcx
mov rsi, rax
mov ecx, listen
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0x20]
call fcn.14010a2e0
jmp 0x140102e2d
movss xmm1, dword [0x1401b5170]
mov rcx, qword [rsp + 0x20]
call fcn.14010a8c0
movss xmm1, dword [0x1401b5188]
mov rcx, qword [rsp + 0x20]
call fcn.14010a900
add rsp, 0x138
pop rdi
pop rsi
ret