Function at 0x140042420
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x160
mov rax, qword [0x140137040]
xor rax, rsp
mov qword [rsp + 0x150], rax
xor esi, esi
mov qword [rsp + 0x38], rcx
lea eax, [rdx - 1]
mov edi, edx
mov rbx, rcx
cmp eax, 0x7a
ja case.0x140042477.7
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x42ba4]
mov ecx, dword [rdx + rax*4 + 0x42b04]
add rcx, rdx
jmp rcx
lea rdx, [0x14010b350]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b354]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, str.Cancel
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b360]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, str.X1MB
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 4
mov qword [rbx + 0x18], recv
mov dword [rbx], 0x424d3258
mov byte [rbx + 4], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 6
mov qword [rbx + 0x18], recv
mov eax, dword [str.Return]
mov dword [rbx], eax
movzx eax, word [0x14010b370]
mov word [rbx + 4], ax
mov byte [rbx + 6], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 3
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b374]
mov word [rbx], ax
movzx eax, byte [0x14010b376]
jmp 0x140042ace
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Enter]
mov dword [rbx], eax
movzx eax, byte [0x14010b37c]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Shift]
mov dword [rbx], eax
movzx eax, byte [0x14010b384]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 7
mov qword [rbx + 0x18], recv
mov rax, qword [str.Control]
mov dword [rbx], eax
movzx eax, word [0x14010b38c]
mov word [rbx + 4], ax
movzx eax, byte [0x14010b38e]
mov byte [rbx + 6], al
mov byte [rbx + 7], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 3
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b390]
mov word [rbx], ax
movzx eax, byte [0x14010b392]
jmp 0x140042ace
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Pause]
mov dword [rbx], eax
movzx eax, byte [0x14010b398]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 4
mov qword [rbx + 0x18], recv
mov dword [rbx], 0x73706143
mov byte [rbx + 4], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 6
mov qword [rbx + 0x18], recv
mov eax, dword [str.Escape]
mov dword [rbx], eax
movzx eax, word [0x14010b3a0]
mov word [rbx + 4], ax
mov byte [rbx + 6], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Space]
mov dword [rbx], eax
movzx eax, byte [0x14010b3a8]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 4
mov qword [rbx + 0x18], recv
mov eax, dword [str.Left]
mov dword [rbx], eax
mov byte [rbx + 4], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 2
mov qword [rbx + 0x18], recv
mov word [rbx], 0x7055
mov byte [rbx + 2], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Right]
mov dword [rbx], eax
movzx eax, byte [0x14010b344]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 4
mov qword [rbx + 0x18], recv
mov dword [rbx], 0x6e776f44
mov byte [rbx + 4], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 7
mov qword [rbx + 0x18], recv
mov rax, qword [str.Prt_Scr]
mov dword [rbx], eax
movzx eax, word [0x14010b3bc]
mov word [rbx + 4], ax
movzx eax, byte [0x14010b3be]
mov byte [rbx + 6], al
mov byte [rbx + 7], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 6
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b3c0]
mov dword [rbx], eax
movzx eax, word [0x14010b3c4]
mov word [rbx + 4], ax
mov byte [rbx + 6], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 6
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b3c8]
mov dword [rbx], eax
movzx eax, word [0x14010b3cc]
mov word [rbx + 4], ax
mov byte [rbx + 6], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 4
mov qword [rbx + 0x18], recv
mov dword [rbx], 0x656d6f48
mov byte [rbx + 4], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 3
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b3d8]
mov word [rbx], ax
movzx eax, byte [0x14010b3da]
jmp 0x140042ace
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 5
mov qword [rbx + 0x18], recv
mov eax, dword [str.Pg_Up]
mov dword [rbx], eax
movzx eax, byte [0x14010b3e0]
mov byte [rbx + 4], al
mov byte [rbx + 5], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 7
mov qword [rbx + 0x18], recv
mov rax, qword [str.Pg_Down]
mov dword [rbx], eax
movzx eax, word [0x14010b3ec]
mov word [rbx + 4], ax
movzx eax, byte [0x14010b3ee]
mov byte [rbx + 6], al
mov byte [rbx + 7], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 2
mov qword [rbx + 0x18], recv
mov word [rbx], 0x3146
mov byte [rbx + 2], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 2
mov qword [rbx + 0x18], recv
mov word [rbx], 0x3246
mov byte [rbx + 2], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 2
mov qword [rbx + 0x18], recv
mov word [rbx], 0x3346
mov byte [rbx + 2], sil
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 2
mov qword [rbx + 0x18], recv
mov word [rbx], 0x3446
mov byte [rbx + 2], sil
jmp 0x140042ad5
xorps xmm0, xmm0
lea rdx, [0x14010b400]
movups xmmword [rbx], xmm0
mov r8d, 2
mov qword [rbx + 0x10], rsi
mov rcx, rbx
mov qword [rbx + 0x18], rsi
call fcn.140008640
jmp 0x140042ad5
lea rdx, [0x14010b404]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b408]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b40c]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b410]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b414]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b418]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rdx, [0x14010b41c]
mov rcx, rbx
call fcn.140008600
jmp 0x140042ad5
lea rcx, [rsp + 0x50]
call qword [sym.imp.USER32.dll_GetKeyboardState]
xor edx, edx
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov dword [rsp + 0x28], esi
lea r9, [rsp + 0x38]
mov edx, eax
mov dword [rsp + 0x20], reloc.WS2_32.dll_recv
lea r8, [rsp + 0x50]
mov ecx, edi
call qword [sym.imp.USER32.dll_ToUnicode]
test eax, eax
jle 0x140042aa8
cdqe
cmp rax, 0x10
jae 0x140042afd
xorps xmm0, xmm0
mov byte [rsp + rax + 0x38], sil
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rsi
lea rax, [rsp + 0x38]
mov qword [rbx + 0x18], rsi
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], sil
jne 0x140042a90
lea rdx, [rsp + 0x38]
mov rcx, rbx
call fcn.140008640
jmp 0x140042ad5
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 3
mov qword [rbx + 0x18], recv
mov eax, dword [0x14010b420]
mov word [rbx], ax
movzx eax, byte [0x14010b422]
mov byte [rbx + 2], al
mov byte [rbx + 3], sil
mov rax, rbx
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1400f3ce0
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.1400f3f28
int3