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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xc0
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
mov rdi, rcx
xor ebp, ebp
lea ebx, [rbp + 1]
cmp byte [0x18007ed50], bpl
jne 0x18001d42d
mov dword [0x18007ed90], 0xff
mov ecx, ebx
call fcn.18003b134
mov qword [rsp + 0xf8], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], ebp
mov r9, rax
lea r8, [0x18001adc0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x18001da70
cmp dword [rsp + 0x58], ebp
je 0x18001da68
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x60]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x18001da68
mov qword [rsp + 0x108], rdi
mov rcx, rdi
call sub.MSVCP140.dll__Mtx_lock
test eax, eax
jne 0x18001da5d
mov eax, dword [rdi + 0x4c]
cmp eax, 0x7fffffff
je 0x18001da4d
mov byte [0x18007ed50], 1
movabs rsi, 0x5f4b6931816e599b
movss xmm10, dword [0x180043274]
cmp byte [rdi + 0x50], 0
je 0x18001d53a
cmp byte [rdi + 0x51], 0
je 0x18001d53a
mov rcx, rsi
call fcn.18001db80
mov rcx, rbp
call fcn.18001dba0
call fcn.18001db10
mov ecx, ebx
call qword [sym.imp.USER32.dll_ShowCursor]
movss xmm8, dword [rdi + 0xb0]
addss xmm8, dword [rdi + 0x80]
addss xmm8, dword [rdi + 0xf8]
movss xmm6, dword [rdi + 0x5c]
mulss xmm6, xmm10
movaps xmm7, xmm6
addss xmm7, dword [rdi + 0x54]
mulss xmm8, xmm10
movaps xmm9, xmm8
addss xmm9, dword [rdi + 0x58]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm3, dword [rsp + 0xf8]
cvtdq2ps xmm3, xmm3
movd xmm0, dword [rsp + 0xfc]
cvtdq2ps xmm0, xmm0
movaps xmm2, xmm7
subss xmm2, xmm6
addss xmm7, xmm6
movaps xmm1, xmm9
addss xmm1, xmm8
subss xmm9, xmm8
comiss xmm3, xmm7
ja 0x18001d53a
comiss xmm2, xmm3
ja 0x18001d53a
comiss xmm0, xmm1
ja 0x18001d53a
comiss xmm9, xmm0
ja 0x18001d53a
lea rcx, str.Kekkeke
call fcn.18001a0b0
mov rax, qword [0x180072a88]
cmp byte [rax + 0x50], 0
je 0x18001d568
movzx eax, byte [0x18007ed95]
nop
test al, al
je 0x18001d568
mov rcx, rsi
call fcn.18001db80
mov rcx, rbp
call fcn.18001dba0
call fcn.18001db10
mov dword [rdi + 0x12c], 0
mov word [rdi + 0x130], 0
mov byte [rdi + 0x132], 0
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x12c], al
mov ecx, 8
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x12d], al
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x12e], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x12f], al
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x130], al
mov ecx, 0x25
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x131], al
mov ecx, 0x27
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x132], al
mov rcx, rdi
call fcn.18001c800
cmp byte [rdi + 0x50], 0
je 0x18001da16
mov r8d, ebx
mov edx, 0x1b
xor ecx, ecx
call fcn.18001b250
mov eax, dword [rdi + 0x58]
mov dword [rdi + 0x134], eax
mov rcx, rdi
call fcn.18001b2d0
mov rsi, qword [rdi + 0x158]
cmp qword [rdi + 0x150], rsi
je 0x18001d7c9
mov rsi, qword [rsi - 8]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x20]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
mov rdx, rsi
mov rcx, rdi
call fcn.18001c480
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001d7c9
mov r14, qword [rdi + 0x60]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
cmp rax, r14
ja 0x18001d6b3
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
mov r14, rax
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x30]
cmp rax, qword [rdi + 0x60]
jbe 0x18001d6ef
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x38]
cmp rax, qword [rdi + 0x60]
jb 0x18001d6ef
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
sub rbx, qword [rdi + 0x60]
lea rbp, [rbx + rax]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
lea r14, [rax + 1]
movss xmm6, dword [rdi + 0x134]
mov rbx, rbp
cmp rbp, r14
jae 0x18001d7c9
lea r15, [r14 - 1]
nop word [rax + rax]
movss xmm2, dword [rdi + 0xc8]
mulss xmm2, xmm10
addss xmm2, xmm6
cvtps2pd xmm0, xmm2
cmp rbx, rbp
jne 0x18001d731
movsd qword [0x18007ed80], xmm0
cmp rbx, r15
jne 0x18001d73e
movsd qword [0x18007ed88], xmm0
mov eax, dword [rdi + 0xe4]
mov dword [rsp + 0x28], eax
movss xmm0, dword [rdi + 0xc8]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rdi + 0x5c]
movss xmm1, dword [rdi + 0x54]
mov rcx, rdi
call fcn.18001c0f0
mov dword [0x18007ed7c], r14d
addss xmm6, dword [rdi + 0xc8]
inc rbx
cmp rbx, r14
jb 0x18001d710
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
mov dword [0x18007ed78], eax
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
cmp rbp, rax
sete bl
mov rax, qword [rsi]
mov rdx, rbp
mov rcx, rsi
call qword [rax + 0x28]
mov byte [rsp + 0x20], 1
mov r9, rsi
movzx r8d, bl
mov rdx, rax
mov rcx, rdi
call fcn.18001ba30
inc rbp
cmp rbp, r14
jb 0x18001d780
lea r14, [0x180074460]
mov rdx, r14
cmp qword [0x180074478], 0xf
cmova rdx, qword [0x180074460]
lea r8, [0x1800744a0]
cmp qword [0x1800744b8], 0xf
cmova r8, qword [0x1800744a0]
movss xmm7, dword [0x180043304]
cmp byte [rdi + 0x9d], 0
je 0x18001d810
movaps xmm2, xmm7
jmp 0x18001d813
xorps xmm2, xmm2
movss xmm0, dword [rdi + 0xf8]
movaps xmm1, xmm0
mulss xmm1, xmm10
addss xmm1, dword [rdi + 0x134]
movss dword [rsp + 0x40], xmm2
mov eax, dword [rdi + 0x100]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rdi + 0x5c]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
movss xmm3, dword [rdi + 0x54]
mov rcx, rdi
call fcn.18001c300
movss xmm6, dword [rdi + 0xfc]
xorps xmm8, xmm8
lea rbp, str.shop_arrows_upanddown
mov rsi, qword [rdi + 0x158]
cmp qword [rdi + 0x150], rsi
je 0x18001d8d2
mov rsi, qword [rsi - 8]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
test rax, rax
jne 0x18001d89f
movss xmm8, dword [0x1800445c8]
jmp 0x18001d8c3
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
lea rbx, [rax + 1]
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x30]
cmp rbx, rax
jne 0x18001d8d2
movss xmm8, dword [0x1800445cc]
mulss xmm6, dword [0x180044578]
lea rbp, str.arrowright
movabs rcx, 0x873c9f3104101dd3
call fcn.18001db80
lea rcx, [rsp + 0x100]
call fcn.18001dba0
lea rcx, [rsp + 0xf8]
call fcn.18001dba0
call fcn.18001db10
movd xmm1, dword [rsp + 0xf8]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [rsp + 0x100]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, xmm6
movss xmm0, dword [rdi + 0xf8]
mulss xmm0, xmm10
addss xmm0, dword [rdi + 0x134]
movss dword [rsp + 0x40], xmm8
mov eax, dword [rdi + 0x104]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rdi + 0x54]
mov r8, rbp
lea rdx, str.commonmenu
mov rcx, rdi
call fcn.18001c300
movss xmm0, dword [rdi + 0xf8]
addss xmm0, dword [rdi + 0x134]
movss dword [rdi + 0x134], xmm0
cmp qword [0x180074478], 0xf
cmova r14, qword [0x180074460]
lea r8, [0x180074500]
cmp qword [0x180074518], 0xf
cmova r8, qword [0x180074500]
cmp byte [rdi + 0x9d], 0
jne 0x18001d9ba
xorps xmm7, xmm7
cvtps2pd xmm0, xmm0
subsd xmm0, qword [0x1800445a0]
cvtpd2ps xmm1, xmm0
movss xmm3, dword [rdi + 0xa0]
mulss xmm3, xmm10
addss xmm3, dword [rdi + 0x54]
movss dword [rsp + 0x40], xmm7
mov eax, dword [rdi + 0xa8]
mov dword [rsp + 0x38], eax
movss xmm0, dword [0x18004456c]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rdi + 0x5c]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
mov rdx, r14
mov rcx, rdi
call fcn.18001c300
nop
mov rcx, rdi
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x30]
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]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
jmp sub.MSVCP140.dll__Mtx_unlock
dec eax
mov dword [rdi + 0x4c], eax
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
mov ecx, 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov ecx, ebx
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov dword [rsp + 0x58], ebp
mov ecx, 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3