Function at 0x140056c50
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x98
mov ecx, 0x61
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056ceb
cmp byte [0x140102743], 0
sete al
mov byte [0x140102743], al
cmp al, 1
jne 0x140056cb9
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140056cdb
test al, al
jne 0x140056cdb
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x62
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056d7f
cmp byte [0x14010272c], 0
sete al
mov byte [0x14010272c], al
cmp al, 1
jne 0x140056d4d
mov byte [0x140102743], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140056d6f
test al, al
jne 0x140056d6f
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x63
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056e13
cmp byte [0x140102754], 0
sete al
mov byte [0x140102754], al
cmp al, 1
jne 0x140056de1
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140056e03
test al, al
jne 0x140056e03
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x65
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056ea7
cmp byte [0x140102746], 0
sete al
mov byte [0x140102746], al
cmp al, 1
jne 0x140056e75
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140056e97
test al, al
jne 0x140056e97
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x64
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056f3b
cmp byte [0x14010272f], 0
sete al
mov byte [0x14010272f], al
cmp al, 1
jne 0x140056f09
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140056f2b
test al, al
jne 0x140056f2b
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x66
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056fcf
cmp byte [0x140102745], 0
sete al
mov byte [0x140102745], al
cmp al, 1
jne 0x140056f9d
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x14010272e], 0
jmp 0x140056fbf
test al, al
jne 0x140056fbf
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x67
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057063
cmp byte [0x140102747], 0
sete al
mov byte [0x140102747], al
cmp al, 1
jne 0x140057031
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140057053
test al, al
jne 0x140057053
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x68
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400570f7
cmp byte [0x14010272d], 0
sete al
mov byte [0x14010272d], al
cmp al, 1
jne 0x1400570c5
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x1400570e7
test al, al
jne 0x1400570e7
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x69
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057192
cmp byte [0x14010272e], 0
sete al
mov byte [0x14010272e], al
cmp al, 1
jne 0x140057160
mov byte [0x140102743], 0
mov byte [0x14010272c], 0
mov byte [0x140102754], 0
mov byte [0x140102746], 0
mov byte [0x14010272f], 0
mov byte [0x140102747], 0
mov byte [0x14010272d], 0
mov byte [0x140102745], 0
mov byte [0x14010272e], 0
jmp 0x140057182
test al, al
jne 0x140057182
mov byte [0x140102744], al
mov byte [0x140102755], al
mov byte [0x140102741], al
mov byte [0x14010272a], al
mov byte [0x14010272b], al
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400571db
cmp byte [0x140102744], 0
sete al
mov byte [0x140102744], al
cmp al, 1
jne 0x1400571cb
mov byte [0x140102741], 0
mov byte [0x140102740], 0
mov byte [0x140102755], 0
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057224
cmp byte [0x140102755], 0
sete al
mov byte [0x140102755], al
cmp al, 1
jne 0x140057214
mov byte [0x140102741], 0
mov byte [0x140102740], 0
mov byte [0x140102744], 0
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, reloc.WS2_32.dll_WSACleanup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005727a
cmp byte [0x140102740], 0
sete al
mov byte [0x140102740], al
cmp al, 1
jne 0x140057266
mov byte [0x140102744], 0
mov byte [0x140102741], 0
mov byte [0x14010272a], 0
mov byte [0x140102755], 0
jmp 0x14005727a
test al, al
jne 0x14005727a
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, reloc.WS2_32.dll_WSAStartup
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400572d0
cmp byte [0x140102741], 0
sete al
mov byte [0x140102741], al
cmp al, 1
jne 0x1400572bc
mov byte [0x140102744], 0
mov byte [0x140102740], 0
mov byte [0x14010272a], 0
mov byte [0x140102755], 0
jmp 0x1400572d0
test al, al
jne 0x1400572d0
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057304
cmp byte [0x140102742], 0
sete al
mov byte [0x140102742], al
test al, al
jne 0x140057304
mov edx, __WSAFDIsSet
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Beep]
mov ecx, 0x7b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057324
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov cl, reloc.WS2_32.dll_WSASetLastError
call qword [sym.imp.USER32.dll_keybd_event]
cmp byte [0x140102743], 1
je 0x140057379
cmp byte [0x14010272c], 1
je 0x140057379
cmp byte [0x140102754], 1
je 0x140057379
cmp byte [0x14010272f], 1
je 0x140057379
cmp byte [0x140102746], 1
je 0x140057379
cmp byte [0x140102747], 1
je 0x140057379
cmp byte [0x14010272d], 1
je 0x140057379
cmp byte [0x140102745], 1
je 0x140057379
cmp byte [0x14010272e], 1
jne 0x1400575e6
mov qword [rsp + 0x58], r15
xor r15d, r15d
mov dword [rsp + 0xb0], r15d
call fcn.140056930
test eax, eax
js 0x1400575e1
mov qword [rsp + 0x90], rbx
mov ebx, 0x8000
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x60], r14
movaps xmmword [rsp + 0x40], xmm6
movss xmm6, dword [0x1400ec6ec]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test bx, ax
je 0x1400575b0
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test bx, ax
je 0x1400575b0
mov ecx, r15d
call fcn.140056050
mov ecx, r15d
cvttsd2si r12d, xmm0
call fcn.1400558c0
mov ecx, r15d
cvttsd2si r13d, xmm0
call fcn.140056880
movzx eax, byte [0x140102742]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cmp al, 1
jne 0x140057444
movaps xmm0, xmm1
mulss xmm0, xmm6
subss xmm1, xmm0
cvttss2si ebp, xmm1
add ebp, 2
jmp 0x140057448
cvttss2si ebp, xmm1
call fcn.1400567e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cmp al, 1
jne 0x14005746e
movaps xmm0, xmm1
mulss xmm0, xmm6
subss xmm1, xmm0
cvttss2si r14d, xmm1
add r14d, 2
jmp 0x140057473
cvttss2si r14d, xmm1
xor ecx, ecx
mov dword [rsp + 0xa8], r14d
xor r9d, r9d
mov dword [rsp + 0xa0], ecx
cmp ebp, 1
jl 0x14005752d
mov r15d, ebp
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0xb8], r13d
mov r14d, ebp
nop dword [rax]
nop word [rax + rax]
mov eax, r13d
mov qword [rsp + 0x20], 0
cdq
idiv ebp
mov esi, eax
mov eax, r12d
cdq
idiv ebp
mov edi, eax
mov eax, r15d
cdq
mov r8d, edi
idiv ebp
sub r8d, r9d
mov edx, esi
xor r9d, r9d
sub edx, ecx
mov ebx, eax
lea ecx, [r9 + 1]
call qword [sym.imp.USER32.dll_mouse_event]
mov ecx, ebx
sub ecx, dword [rsp + 0xa0]
call fcn.140055630
add r13d, dword [rsp + 0xb8]
add r15d, ebp
add r12d, dword [rsp + 0x30]
mov ecx, esi
mov dword [rsp + 0xa0], ebx
mov r9d, edi
sub r14, 1
jne 0x1400574b0
mov r14d, dword [rsp + 0xa8]
mov ebx, 0x8000
mov r15d, dword [rsp + 0xb0]
sub r14d, ebp
mov ecx, r14d
call fcn.140055630
cmp byte [0x140102745], 1
je 0x14005757d
cmp byte [0x140102747], 1
je 0x140057597
call fcn.140056930
cmp r15d, eax
jne 0x140057597
cmp byte [0x140102729], 1
jne 0x14005757d
mov edx, 0x5a
mov ecx, 0x4b0
call qword [sym.imp.KERNEL32.dll_Beep]
mov edx, 0x5a
mov ecx, 0x5dc
call qword [sym.imp.KERNEL32.dll_Beep]
xor edx, edx
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
inc r15d
mov dword [rsp + 0xb0], r15d
call fcn.140056930
cmp r15d, eax
jle 0x1400573d4
mov rbx, qword [rsp + 0x90]
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
movaps xmm6, xmmword [rsp + 0x40]
mov r15, qword [rsp + 0x58]
add rsp, 0x98
ret