Function at 0x140055cd0
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x40
xor ebx, ebx
mov ecx, dword [0x1401d63e4]
mov edi, 1
test ecx, ecx
je 0x140055d10
sub ecx, edi
je 0x140055d09
sub ecx, edi
je 0x140055d02
cmp ecx, edi
jne 0x140055cfb
mov ecx, edi
jmp 0x140055d15
movzx eax, word [rsp + 0x50]
jmp 0x140055d1b
mov ecx, 0xdb
jmp 0x140055d15
mov ecx, 5
jmp 0x140055d15
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp dword [0x1401d63ec], ebx
jne 0x140055e5a
mov byte [0x1401d6399], dil
test ax, ax
jns 0x140055dda
cmp byte [0x1401d63c1], bl
jne 0x140055f67
mov byte [0x1401d63c1], dil
xchg byte [0x1401d639a], dil
lea rcx, [0x1401d6830]
call qword [sym.imp.MSVCP140.dll__Cnd_broadcast]
mov ecx, 8
call fcn.1400f1d40
lea rcx, [0x1400556d0]
mov qword [rax], rcx
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x14004ee80]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140055dca
cmp dword [0x1401d6470], 0
jne 0x140055dc3
movaps xmm1, xmmword [rsp + 0x30]
movups xmmword [0x1401d6468], xmm1
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov dword [rsp + 0x38], ebx
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov byte [0x1401d6399], bl
cmp byte [0x1401d63c1], bl
je 0x140055f67
mov byte [0x1401d63c1], bl
xchg byte [0x1401d639a], bl
lea rcx, [0x1401d6830]
call qword [sym.imp.MSVCP140.dll__Cnd_broadcast]
cmp dword [0x1401d6470], 0
je 0x140055f67
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [0x1401d6470], eax
je 0x140055f28
movups xmm0, xmmword [0x1401d6468]
movaps xmmword [rsp + 0x30], xmm0
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
jne 0x140055f55
xorps xmm0, xmm0
movups xmmword [0x1401d6468], xmm0
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
test ax, ax
jns 0x140055f61
cmp byte [0x1401d63c0], bl
jne 0x140055f67
mov byte [0x1401d63c0], dil
cmp byte [0x1401d63c1], bl
sete al
mov byte [0x1401d63c1], al
xchg byte [0x1401d639a], al
movzx eax, byte [0x1401d639a]
lea rcx, [0x1401d6830]
test al, al
je 0x140055f0c
call qword [sym.imp.MSVCP140.dll__Cnd_broadcast]
mov ecx, 8
call fcn.1400f1d40
lea rcx, [0x1400556d0]
mov qword [rax], rcx
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], ebx
mov r9, rax
lea r8, [0x14004ee80]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140055efc
cmp dword [0x1401d6470], 0
je 0x140055dac
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov dword [rsp + 0x38], ebx
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
call qword [sym.imp.MSVCP140.dll__Cnd_broadcast]
cmp dword [0x1401d6470], ebx
je 0x140055f67
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [0x1401d6470], eax
jne 0x140055f34
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
movups xmm0, xmmword [0x1401d6468]
movaps xmmword [rsp + 0x30], xmm0
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
je 0x140055e45
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov byte [0x1401d63c0], bl
mov rbx, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret