Function at 0x140012640
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xb0
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x140143080]
xor rax, rsp
mov qword [rbp + 0x3f], rax
movsd xmm6, qword [0x140129990]
movzx edi, byte [rbp + 0xf]
mov esi, 4
nop
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x328], 0
je 0x1400126d5
mov rbx, qword [0x1402eda00]
lea r9, [rbp + 0x17]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov dword [rbp + 0x17], 0xbf800000
lea r8, [rbx + 0x68]
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x1400126d5
lea rdx, [rbx + 0x68]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x329], 0
je 0x14001279e
mov rbx, qword [0x1402eda00]
lea r9, [rbp + 0x1f]
movss xmm0, dword [rax + 0x32c]
xor dil, dil
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
lea r8, [rbx + 0x2738]
movss dword [rbp + 0x1f], xmm0
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x14001273d
lea rdx, [rbx + 0x2738]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
lea r9, [rbp + 0x27]
mov rbx, qword [0x1402eda00]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
movss xmm0, dword [rax + 0x32c]
lea r8, [rbx + 0x273c]
movss dword [rbp + 0x27], xmm0
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x14001285a
lea rdx, [rbx + 0x273c]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
jmp 0x14001285a
test dil, dil
jne 0x14001285a
mov rax, qword [0x1402eec30]
lea r9, [rbp + 0x2f]
mov rbx, qword [0x1402eda00]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
movss xmm0, dword [rax + 0x32c]
lea r8, [rbx + 0x2738]
movss dword [rbp + 0x2f], xmm0
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x1400127ff
lea rdx, [rbx + 0x2738]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
lea r9, [rbp + 0x37]
mov rbx, qword [0x1402eda00]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
movss xmm0, dword [rax + 0x32c]
lea r8, [rbx + 0x273c]
movss dword [rbp + 0x37], xmm0
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012857
lea rdx, [rbx + 0x273c]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov dil, 1
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x330], 0
je 0x14001290c
mov rax, qword [0x1402ed9f0]
test rax, rax
je 0x14001290c
mov edx, dword [0x1402ec150]
lea rbx, [rax + 0xe4c]
mov rcx, qword [0x1402eec20]
lea r9, [rbp + 0x17]
mov r8, rbx
mov dword [rbp + 0x17], 0
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x1400128c1
mov rdx, rbx
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rbx, qword [0x1402ed9f0]
lea r9, [rbp + 0x17]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov dword [rbp + 0x17], 0
lea r8, [rbx + 0xe50]
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x14001290c
lea rdx, [rbx + 0xe50]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x331], 0
je 0x14001296d
mov rbx, qword [0x1402eda00]
lea r9, [rbp + 0xf]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov byte [reloc.WS2_32.dll_accept], 0
lea r8, [rbx + 0x10c0]
mov byte [rbp + 0xf], 1
mov dword [rsp + 0x20], 1
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x1400129c5
lea rdx, [rbx + 0x10c0]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
jmp 0x1400129c5
cmp byte [reloc.WS2_32.dll_accept], 0
jne 0x1400129c5
mov rbx, qword [0x1402eda00]
lea r9, [rbp + 0xf]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov byte [rbp + 0xf], 0
lea r8, [rbx + 0x10c0]
mov dword [rsp + 0x20], 1
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x1400129be
lea rdx, [rbx + 0x10c0]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov byte [reloc.WS2_32.dll_accept], 1
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x332], 0
je 0x140012b02
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rsi + rcx]
cmp dword [0x1402eec80], eax
jle 0x140012a57
lea rcx, [0x1402eec80]
call fcn.140106cb0
cmp dword [0x1402eec80], 0xffffffff
jne 0x140012a57
mov rdx, qword [0x1402ed9f8]
lea r8, [0x1402eec68]
xorps xmm0, xmm0
lea rcx, [0x1402eec08]
xor eax, eax
add rdx, 0x140
mov r9d, Ordinal_27
mov qword [0x1402eec78], rax
movups xmmword [0x1402eec68], xmm0
call fcn.1400a5cd0
lea rcx, [0x14010eb80]
call fcn.140106bb4
lea rcx, [0x1402eec80]
call fcn.140106c44
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140012aa6
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movaps xmm1, xmm6
movsd qword [rbp - 0x19], xmm6
mov r8d, eax
mov eax, 0x5ac5242b
imul r8d
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x169
sub r8d, ecx
movd xmm0, r8d
cvtdq2pd xmm0, xmm0
unpcklpd xmm1, xmm0
movaps xmmword [rbp - 0x29], xmm1
jmp 0x140012abe
movups xmm0, xmmword [0x1402eec68]
movsd xmm1, qword [0x1402eec78]
movaps xmmword [rbp - 0x29], xmm0
movsd qword [rbp - 0x19], xmm1
mov rbx, qword [0x1402ed9f8]
lea r9, [rbp - 0x29]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov dword [rsp + 0x20], Ordinal_30
lea r8, [rbx + 0x140]
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012b02
lea rdx, [rbx + 0x140]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x333], 0
je 0x140012ba9
mov rbx, qword [0x1402eda08]
lea r9, [rbp + 0x17]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov dword [rbp + 0x17], 0x447a0000
lea r8, [rbx + 0x2754]
mov dword [rsp + 0x20], 4
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012b61
lea rdx, [rbx + 0x2754]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rbx, qword [0x1402eda08]
lea r9, [rbp + 0xf]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
mov byte [rbp + 0xf], 1
lea r8, [rbx + 0x2650]
mov dword [rsp + 0x20], 1
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012ba9
lea rdx, [rbx + 0x2650]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
cmp byte [rax + 0x334], 0
je 0x140012ce8
movss xmm1, dword [rax + 0x338]
lea r9, [rbp - 0x29]
mov rbx, qword [0x1402ed9f8]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
cvtps2pd xmm1, xmm1
lea r8, [rbx + 0x158]
mov dword [rsp + 0x20], Ordinal_30
movaps xmm0, xmm1
movsd qword [rbp - 0x19], xmm1
unpcklpd xmm0, xmm1
movaps xmmword [rbp - 0x29], xmm0
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012c1c
lea rdx, [rbx + 0x158]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
lea r9, [rbp - 0x29]
mov rbx, qword [0x1402ed9f8]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
movss xmm1, dword [rax + 0x338]
cvtps2pd xmm1, xmm1
lea r8, [rbx + 0x158]
mov dword [rsp + 0x20], Ordinal_30
movaps xmm0, xmm1
movsd qword [rbp - 0x19], xmm1
unpcklpd xmm0, xmm1
movaps xmmword [rbp - 0x29], xmm0
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012c82
lea rdx, [rbx + 0x158]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
mov rax, qword [0x1402eec30]
lea r9, [rbp - 0x29]
mov rbx, qword [0x1402ed9f8]
mov edx, dword [0x1402ec150]
mov rcx, qword [0x1402eec20]
movss xmm1, dword [rax + 0x338]
cvtps2pd xmm1, xmm1
lea r8, [rbx + 0x158]
mov dword [rsp + 0x20], Ordinal_30
movaps xmm0, xmm1
movsd qword [rbp - 0x19], xmm1
unpcklpd xmm0, xmm1
movaps xmmword [rbp - 0x29], xmm0
call qword [sym.imp.VMM.dll_VMMDLL_MemWrite]
test eax, eax
jne 0x140012ce8
lea rdx, [rbx + 0x158]
lea rcx, str.____Failed_to_write_Memory_at_0x_p_n
call fcn.14000d800
lea rcx, [rbp + 0x17]
mov qword [rbp + 0x17], 1
call fcn.140008580
jmp 0x140012680