Function at 0x140003b50
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x338]
sub rsp, 0x410
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
mov rax, qword [0x14013e0a0]
xor rax, rsp
mov qword [rbp + 0x280], rax
xor r12d, r12d
mov r15d, r12d
mov dword [rsp + 0x6c], r12d
movups xmm0, xmmword [rcx]
movaps xmmword [rbp - 0x80], xmm0
lea rcx, [rbp - 0x80]
call fcn.140004730
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
movups xmmword [rbp + 0x120], xmm0
lea rcx, [rbp + 0xd0]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::constructor_void____ptr64]
nop
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rbx, rax
mov qword [rbp - 0x38], rax
mov rcx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdi, rax
mov qword [rbp - 0x30], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xa8], xmm0
mov qword [rbp + 0xb8], r12
mov dword [rbp + 0xc0], r12d
mov dword [rbp + 0x98], 0x28
mov ecx, dword [0x1401c3560]
mov dword [rbp + 0x9c], ecx
mov ecx, dword [0x1401c3564]
neg ecx
mov dword [rbp + 0xa0], ecx
mov dword [rbp + 0xa4], 0x200001
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x50]
xor r8d, r8d
lea rdx, [rbp + 0x98]
mov rcx, rax
call qword [sym.imp.GDI32.dll_CreateDIBSection]
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x28], r12
mov rax, qword [rbp + 0x50]
mov qword [rsp + 0x20], rax
lea r9d, [r12 + 0x18]
mov r8d, dword [0x1401c3560]
mov edx, dword [0x1401c3564]
lea rcx, [rbp - 0x10]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::constructor_int__int__int__void____ptr64__unsigned_long_long_unsigned___int64_____ptr64]
nop
mov rdx, rax
lea rcx, [rbp + 0xd0]
call qword [sym.imp.opencv_world480.dll_public:_class_cv::Mat____ptr64___cdecl_cv::Mat::operator_class_cv::Mat____ptr64____ptr64]
nop
lea rcx, [rbp - 0x10]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::destructor_void____ptr64]
mov eax, dword [0x1401c32d4]
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov eax, dword [0x1401c3564]
cdq
sub eax, edx
sar eax, 1
sub r8d, eax
mov eax, dword [0x1401c32d0]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [0x1401c3560]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [0x1401c3518], ecx
mov dword [0x1401c351c], r8d
cmp byte [0x1401c32a0], r12b
je 0x140004626
movsd xmm12, qword [0x14011e590]
movss xmm13, dword [0x14011e6f0]
movsd xmm10, qword [0x14011e5d8]
movss xmm11, dword [0x14011e6a0]
movsd xmm9, qword [0x14011e5c0]
nop word [rax + rax]
mov rcx, qword [0x1401c33f8]
mov ecx, dword [rcx + 0xe8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov word [rsp + 0x68], ax
test ax, ax
jne 0x140003da5
cmp byte [0x1401c3039], al
jne 0x140003da5
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140004619
mov dword [rsp + 0x40], 0xcc0020
mov eax, dword [0x1401c351c]
mov dword [rsp + 0x38], eax
mov eax, dword [0x1401c3518]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rbx
mov eax, dword [0x1401c3564]
mov dword [rsp + 0x20], eax
mov r9d, dword [0x1401c3560]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.GDI32.dll_BitBlt]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x90], rax
movups xmmword [rbp + 0x220], xmm0
movups xmmword [rbp + 0x230], xmm0
movups xmmword [rbp + 0x240], xmm0
movups xmmword [rbp + 0x250], xmm0
movups xmmword [rbp + 0x260], xmm0
movups xmmword [rbp + 0x270], xmm0
lea rcx, [rbp + 0x220]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::constructor_void____ptr64]
nop
mov qword [rbp - 0x70], 0
mov dword [rbp - 0x80], 0x2010000
lea rax, [rbp + 0x220]
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x48], 0
mov dword [rbp - 0x58], 0x1010000
lea rax, [rbp + 0xd0]
mov qword [rbp - 0x50], rax
xor r9d, r9d
lea r8d, [r9 + 3]
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x58]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::cvtColor_class_cv::_InputArray_const____ptr64__class_cv::_OutputArray_const____ptr64__int__int_]
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0x68], xmm1
mov rax, qword [0x1401c3560]
mov qword [rbp - 0x60], rax
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x50], 0x1010000
lea rax, [rbp + 0x220]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x38], 5
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x28], 0
lea rax, [rbp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x60]
movaps xmm2, xmm12
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x10]
call qword [sym.imp.opencv_world480.dll_class_cv::Mat___cdecl_cv::dnn::dnn4_v20230620::blobFromImage_class_cv::_InputArray_const____ptr64__double__class_cv::Size__int__const____ptr64__class_cv::Scalar__double__const____ptr64__bool__bool__int_]
or r15d, 4
mov dword [rsp + 0x6c], r15d
lea rcx, [rbp + 0x220]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::destructor_void____ptr64]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x80]
call fcn.140004ce0
nop
mov edi, r12d
mov qword [rsp + 0x70], 0
mov r14d, r12d
movaps xmm7, xmm13
mov rbx, qword [0x1401c3560]
mov r13d, dword [0x14013ee7c]
mov rsi, qword [rbp + 0x80]
mov r12, qword [rbp + 0x88]
mov qword [rbp - 0x28], r12
cmp rsi, r12
je 0x14000404f
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov r15d, eax
mov eax, dword [0x1401c3564]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov dword [rbp - 0x60], eax
lea rdi, [rsi + 4]
movss xmm8, dword [0x14013ee50]
nop dword [rax + rax]
mov r9d, dword [rdi + 8]
mov r8d, dword [rdi]
add r8d, r9d
mov eax, dword [rdi + 4]
cdq
sub eax, edx
sar eax, 1
mov r14d, dword [rdi - 4]
sub r14d, eax
add r14d, dword [rdi + 4]
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
movd xmm0, r9d
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm8
subss xmm1, xmm0
cvttss2si r12d, xmm1
mov eax, r14d
sub eax, r15d
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm10
call fcn.1400e3be0
movaps xmm6, xmm0
mov eax, r12d
sub eax, ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm10
call fcn.1400e3be0
movaps xmm1, xmm0
addsd xmm1, xmm6
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x140003ff4
xorps xmm0, xmm0
sqrtsd xmm0, xmm1
jmp 0x140003ffc
movaps xmm0, xmm1
call fcn.1400f8e68
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
comiss xmm7, xmm1
jbe 0x140004025
movd xmm0, r13d
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x140004025
movaps xmm7, xmm1
mov dword [rsp + 0x70], r14d
mov dword [rsp + 0x74], r12d
mov ebx, dword [rbp - 0x60]
add rdi, 0x14
lea rax, [rdi - 4]
mov r12, qword [rbp - 0x28]
cmp rax, r12
jne 0x140003f70
mov rbx, qword [0x1401c3560]
mov r15d, dword [rsp + 0x6c]
mov edi, dword [rsp + 0x70]
mov r14d, dword [rsp + 0x74]
cmp byte [0x1401c3039], 0
je 0x140004509
cmp rsi, r12
je 0x140004359
xor r13d, r13d
nop dword [rax + rax]
movaps xmm0, xmmword [0x14011e740]
movups xmmword [rbp + 0x58], xmm0
movaps xmm1, xmmword [0x14011ea40]
movups xmmword [rbp + 0x68], xmm1
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x50], 0x3010000
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x58], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rbp - 0x80], xmm0
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 8
mov r9d, 1
lea r8, [rbp + 0x58]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::rectangle_class_cv::_InputOutputArray_const____ptr64__class_cv::Rect__int___class_cv::Scalar__double__const____ptr64__int__int__int_]
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp + 0x130]
call fcn.1400c2030
lea rcx, [rbp + 0x130]
call fcn.140006230
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov eax, dword [rbp + rcx + 0x148]
btr eax, 0xc
bts eax, 0xd
mov dword [rbp + rcx + 0x148], eax
mov edx, 2
lea rcx, [rbp - 0x20]
call fcn.14007af40
mov r8, qword [rax]
mov rcx, qword [rbp + 0x130]
movsxd rdx, dword [rcx + 4]
lea rcx, [rbp + 0x130]
add rcx, rdx
mov rdx, qword [rax + 8]
call r8
movss xmm1, dword [rsi + 0x10]
mulss xmm1, xmm11
lea rcx, [rbp + 0x130]
call fcn.140006320
movaps xmm0, xmmword [0x14011e740]
movups xmmword [rbp + 0x58], xmm0
movaps xmm1, xmmword [0x14011ea40]
movups xmmword [rbp + 0x68], xmm1
mov ebx, dword [rsi + 4]
shl rbx, 0x20
mov eax, dword [rsi]
or rbx, rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x68], send
mov byte [rbp - 0x80], 0
or r15d, 2
mov dword [rsp + 0x6c], r15d
xor eax, eax
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], rax
mov ecx, dword [rbp + 0x1a8]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1400041d8
mov rax, qword [rbp + 0x178]
mov r8, qword [rax]
test r8, r8
je 0x1400041d8
mov rax, qword [rbp + 0x158]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x1a0]
cmovb r8, qword [rbp + 0x1a0]
sub r8, rdx
jmp 0x140004210
test cl, 4
jne 0x140004208
mov rax, qword [rbp + 0x170]
mov rcx, qword [rax]
test rcx, rcx
je 0x140004208
mov rax, qword [rbp + 0x150]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x188]
movsxd r8, dword [rax]
add r8, rcx
sub r8, rdx
jmp 0x140004210
mov r8, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x14000421e
lea rcx, [rbp - 0x80]
call fcn.1400078e0
and r15d, 0xfffffffd
or r15d, 1
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x50], 0x3010000
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x40], 0
mov dword [rsp + 0x38], 8
mov dword [rsp + 0x30], 1
lea rax, [rbp + 0x58]
mov qword [rsp + 0x28], rax
movsd qword [rsp + 0x20], xmm9
xor r9d, r9d
mov r8, rbx
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::putText_class_cv::_InputOutputArray_const____ptr64__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__class_cv::Point__int___int__double__class_cv::Scalar__double___int__int__bool_]
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1400042b6
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400042b0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004697
call fcn.1400a09c0
nop
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x138]
call fcn.140005f30
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx + 0x12c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x1b8], rax
lea rcx, [rbp + 0x1b8]
call fcn.14007ae48
nop
add rsi, 0x14
cmp rsi, r12
jne 0x140004070
mov rbx, qword [0x1401c3560]
mov r13d, dword [0x14013ee7c]
test edi, edi
jne 0x140004366
test r14d, r14d
je 0x1400043ee
movaps xmm0, xmmword [0x14011e750]
movups xmmword [rbp + 0x58], xmm0
movaps xmm1, xmmword [0x14011ea50]
movups xmmword [rbp + 0x68], xmm1
mov eax, dword [0x1401c3564]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
xor r12d, r12d
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x50], 0x3010000
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x58], rax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
shl rcx, 0x20
or rdx, rcx
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 8
mov dword [rsp + 0x20], 1
lea r9, [rbp + 0x58]
mov r8, qword [rsp + 0x70]
lea rcx, [rsp + 0x50]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::line_class_cv::_InputOutputArray_const____ptr64__class_cv::Point__int___class_cv::Point__int___class_cv::Scalar__double__const____ptr64__int__int__int_]
mov rbx, qword [0x1401c3560]
mov r13d, dword [0x14013ee7c]
jmp 0x1400043f1
xor r12d, r12d
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
movaps xmm1, xmmword [0x14011ea60]
movups xmmword [rbp + 0x68], xmm1
mov eax, dword [0x1401c3564]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x50], 0x3010000
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x58], rax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
shl rcx, 0x20
or rdx, rcx
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 8
mov ebx, 1
mov dword [rsp + 0x20], ebx
lea r9, [rbp + 0x58]
mov r8d, r13d
lea rcx, [rsp + 0x50]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::circle_class_cv::_InputOutputArray_const____ptr64__class_cv::Point__int___int__class_cv::Scalar__double__const____ptr64__int__int__int_]
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x50], 0x1010000
lea rax, [rbp + 0xd0]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
mov qword [rbp - 0x48], r12
mov qword [rbp - 0x40], r12
lea r8d, [rbx + 5]
lea rdx, str.ai_eye
lea rcx, [rbp - 0x58]
call fcn.1400035b0
nop
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x58]
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::imshow_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__class_cv::_InputArray_const____ptr64_]
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x1400044f1
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400044ec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000468b
call fcn.1400a09c0
mov ecx, ebx
call qword [sym.imp.opencv_world480.dll_int___cdecl_cv::waitKey_int_]
mov byte [0x1401c303a], 1
mov rsi, qword [rbp + 0x80]
jmp 0x14000452e
cmp byte [0x1401c303a], 0
je 0x140004526
call qword [sym.imp.opencv_world480.dll_void___cdecl_cv::destroyAllWindows_void_]
mov byte [0x1401c303a], 0
mov rsi, qword [rbp + 0x80]
mov ebx, 1
xor r12d, r12d
test edi, edi
jne 0x140004537
test r14d, r14d
je 0x1400045b2
cmp word [rsp + 0x68], 0
je 0x1400045b2
cmp byte [reloc.WS2_32.dll_accept], 0
je 0x1400045b2
sub r14d, dword [0x1401c327c]
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14013ee88]
cvttss2si ecx, xmm0
sub edi, dword [0x1401c3278]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14013ee88]
cvttss2si eax, xmm0
mov qword [rbp + 0x58], 0
mov dword [rbp + 0x68], r12d
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x70], xmm0
mov dword [rbp + 0x60], eax
mov dword [rbp + 0x64], ecx
mov dword [rbp + 0x6c], ebx
mov r8d, 0x28
lea rdx, [rbp + 0x58]
mov ecx, ebx
call qword [sym.imp.USER32.dll_SendInput]
mov rsi, qword [rbp + 0x80]
test rsi, rsi
je 0x140004611
mov rcx, qword [rbp + 0x90]
sub rcx, rsi
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 2
mov rax, rsi
cmp rdx, 0x1000
jb 0x140004609
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140004691
mov rcx, rsi
call fcn.1400a09c0
mov rdi, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x38]
cmp byte [0x1401c32a0], 0
jne 0x140003d70
lea rcx, [rbp + 0xd0]
call qword [sym.imp.opencv_world480.dll_public:_void___cdecl_cv::Mat::destructor_void____ptr64]
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.1400a09a0
lea r11, [rsp + 0x410]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400d2350
nop
call fcn.1400d2350
nop
call fcn.1400d2350
int3