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

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xc0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rsp + 0x70], xmm10
mov rsi, rcx
xor r12d, r12d
lea ebp, [r12 + 1]
cmp byte [0x18011b32a], r12b
jne 0x180029a16
mov dword [0x18011b32c], 0xff
mov ecx, ebp
call fcn.180072398
mov qword [rsp + 0x108], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r12d
mov r9, rax
lea r8, [0x18002cdc0]
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 0x180029a31
cmp dword [rsp + 0x58], r12d
jne 0x1800299ea
mov ecx, ebp
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
je 0x180029a0d
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
int3
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x50], rsi
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x180029a42
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
nop
mov dword [rsp + 0x58], r12d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov byte [0x18011b32a], 1
movabs rbx, 0x5f4b6931816e599b
movss xmm10, dword [0x1800965b8]
cmp byte [rsi + 0x50], 0
je 0x180029b39
cmp byte [rsi + 0x51], 0
je 0x180029b39
mov dword [0x1800cd6a8], r12d
mov qword [0x18011d858], rbx
mov qword [0x1800cd770], r12
mov dword [0x1800cd698], ebp
call fcn.18002ce10
mov ecx, ebp
call qword [sym.imp.USER32.dll_ShowCursor]
movss xmm8, dword [rsi + 0xbc]
addss xmm8, dword [rsi + 0x80]
addss xmm8, dword [rsi + 0x108]
movss xmm6, dword [rsi + 0x5c]
movaps xmm7, xmm6
mulss xmm7, xmm10
addss xmm7, dword [rsi + 0x54]
mulss xmm8, xmm10
movaps xmm9, xmm8
addss xmm9, dword [rsi + 0x58]
lea rcx, [rsp + 0x108]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm3, dword [rsp + 0x108]
cvtdq2ps xmm3, xmm3
movd xmm0, dword [rsp + 0x10c]
cvtdq2ps xmm0, xmm0
mulss xmm6, xmm10
movaps xmm2, xmm7
subss xmm2, xmm6
addss xmm7, xmm6
movaps xmm1, xmm8
addss xmm1, xmm9
subss xmm9, xmm8
comiss xmm3, xmm7
ja 0x180029b39
comiss xmm2, xmm3
ja 0x180029b39
comiss xmm0, xmm1
ja 0x180029b39
comiss xmm9, xmm0
ja 0x180029b39
lea rcx, str.Kekkeke
call fcn.180026780
mov rax, qword [0x1800cfb78]
cmp byte [rax + 0x50], 0
je 0x180029b71
movzx eax, byte [0x18011d951]
test al, al
je 0x180029b71
mov dword [0x1800cd6a8], r12d
mov qword [0x18011d858], rbx
mov qword [0x1800cd770], r12
mov dword [0x1800cd698], ebp
call fcn.18002ce10
mov dword [rsi + 0x17c], 0
mov word [rsi + 0x180], 0
mov byte [rsi + 0x182], 0
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x17c], al
mov ecx, 8
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x17d], al
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x17e], al
mov ecx, 0x26
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x17f], al
mov ecx, 0x28
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x180], al
mov ecx, 0x25
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x181], al
mov ecx, 0x27
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rsi + 0x182], al
mov rcx, rsi
call fcn.18002a670
cmp byte [rsi + 0x50], 0
je 0x18002a25d
mov dword [0x1800cd6a8], r12d
movabs rax, 0xfe99b66d079cf6bc
mov qword [0x18011d858], rax
mov qword [0x1800cd770], r12
mov qword [rsp + 0x108], r12
mov dword [rsp + 0x108], 0x1b
mov rax, qword [rsp + 0x108]
mov qword [0x1800cd778], rax
mov qword [rsp + 0x108], r12
mov dword [rsp + 0x108], ebp
mov rax, qword [rsp + 0x108]
mov qword [0x1800cd780], rax
mov dword [0x1800cd698], 3
call fcn.18002ce10
mov eax, dword [rsi + 0x58]
mov dword [rsi + 0x184], eax
mov rcx, rsi
call fcn.18002b870
mov rax, qword [rsi + 0x1a8]
mov rdi, qword [rax - 8]
mov dword [rsp + 0x108], 0xffffffff
movss xmm0, dword [rsi + 0xd4]
movaps xmm1, xmm0
mulss xmm1, xmm10
addss xmm1, dword [rsi + 0x184]
addss xmm1, dword [rsi + 0xd8]
subss xmm1, dword [0x180096574]
xorps xmm7, xmm7
movss dword [rsp + 0x40], xmm7
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsi + 0x5c]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
movss xmm3, dword [rsi + 0x54]
lea r8, str.background
lea rdx, str.Atomix
call fcn.18002c880
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
mov rdx, qword [rdi]
mov r8, qword [rdx + 0x30]
mov rcx, rdi
cmp rax, qword [rsi + 0x60]
ja 0x180029d70
call r8
mov rcx, rax
xorps xmm0, xmm0
test rax, rax
js 0x180029d65
cvtsi2ss xmm0, rax
jmp 0x180029da0
shr rax, 1
and ecx, 1
or rax, rcx
jmp 0x180029d97
mov rbx, qword [rsi + 0x60]
call r8
cmp rax, rbx
jbe 0x180029db0
xorps xmm0, xmm0
test rbx, rbx
js 0x180029d8b
cvtsi2ss xmm0, rbx
jmp 0x180029da0
mov rax, rbx
shr rax, 1
and ebx, 1
or rax, rbx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [rsi + 0xd8]
movss dword [rsi + 0xd4], xmm0
mov r14, qword [rsi + 0x1a8]
cmp qword [rsi + 0x1a0], r14
je 0x18002a0b1
mov r14, qword [r14 - 8]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x20]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x18]
mov rdx, r14
mov rcx, rsi
call fcn.18002bdf0
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
test rax, rax
je 0x18002a0b1
mov rdi, r12
mov r15, qword [rsi + 0x60]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
cmp rax, r15
ja 0x180029e18
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x30]
mov r15, rax
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x30]
cmp rax, qword [rsi + 0x60]
jbe 0x180029e54
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x38]
cmp rax, qword [rsi + 0x60]
jb 0x180029e54
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x38]
sub rbp, qword [rsi + 0x60]
lea rdi, [rax + rbp]
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x38]
lea r15, [rax + 1]
movss xmm1, dword [rsi + 0x184]
mov rcx, rdi
cmp rdi, r15
jae 0x18002a0b1
movss xmm2, dword [rsi + 0xd8]
mov rax, r15
sub rax, rdi
cmp rax, 8
jb 0x18002a02e
movaps xmm3, xmm2
mulss xmm3, xmm10
lea rdx, [r15 - 1]
lea r9, [r15 - 7]
lea rax, [rdi + 2]
nop dword [rax]
nop dword [rax + rax]
movaps xmm0, xmm3
addss xmm0, xmm1
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp rcx, rdi
jne 0x180029ebb
movsd qword [0x18011c338], xmm4
cmp rcx, rdx
jne 0x180029ec8
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax - 1]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x180029eeb
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x180029ef8
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp rax, rdi
jne 0x180029f17
movsd qword [0x18011c338], xmm4
cmp rax, rdx
jne 0x180029f24
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax + 1]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x180029f47
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x180029f54
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax + 2]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x180029f77
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x180029f84
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax + 3]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x180029fa7
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x180029fb4
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax + 4]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x180029fd7
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x180029fe4
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
movaps xmm0, xmm3
addss xmm0, xmm1
lea r8, [rax + 5]
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
cmp r8, rdi
jne 0x18002a007
movsd qword [0x18011c338], xmm4
cmp r8, rdx
jne 0x18002a014
movsd qword [0x18011c330], xmm4
addss xmm1, xmm2
add rcx, 8
add rax, 8
cmp rcx, r9
jb 0x180029ea0
cmp rcx, r15
jae 0x18002a06e
movaps xmm4, xmm2
mulss xmm4, xmm10
lea rax, [r15 - 1]
movaps xmm0, xmm4
addss xmm0, xmm1
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
cmp rcx, rdi
jne 0x18002a055
movsd qword [0x18011c338], xmm3
cmp rcx, rax
jne 0x18002a062
movsd qword [0x18011c330], xmm3
addss xmm1, xmm2
inc rcx
cmp rcx, r15
jb 0x18002a03a
cmp rdi, r15
jae 0x18002a0b1
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x38]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x38]
cmp rdi, rax
sete bl
mov rax, qword [r14]
mov rdx, rdi
mov rcx, r14
call qword [rax + 0x28]
mov r9, r14
movzx r8d, bl
mov rdx, rax
mov rcx, rsi
call fcn.18002c0f0
inc rdi
cmp rdi, r15
jb 0x18002a073
lea rdx, [0x1800cf9c8]
cmp qword [0x1800cf9e0], 0x10
cmovae rdx, qword [0x1800cf9c8]
lea r8, [0x1800cfa48]
cmp qword [0x1800cfa60], 0x10
cmovae r8, qword [0x1800cfa48]
movss xmm0, dword [rsi + 0x108]
movaps xmm1, xmm0
mulss xmm1, xmm10
addss xmm1, dword [rsi + 0x184]
movss dword [rsp + 0x40], xmm7
mov eax, dword [rsi + 0x110]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsi + 0x5c]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
movss xmm3, dword [rsi + 0x54]
call fcn.18002c880
movss xmm6, dword [rsi + 0x10c]
lea rbp, str.shop_arrows_upanddown
mov rdi, qword [rsi + 0x1a8]
cmp qword [rsi + 0x1a0], rdi
je 0x18002a195
mov rdi, qword [rdi - 8]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
test rax, rax
jne 0x18002a163
movss xmm7, dword [0x180096b78]
jmp 0x18002a186
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x38]
lea rbx, [rax + 1]
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0x30]
cmp rbx, rax
jne 0x18002a195
movss xmm7, dword [0x180096e44]
mulss xmm6, dword [0x1800965e8]
lea rbp, str.arrowright
mov dword [0x1800cd6a8], r12d
movabs rax, 0x873c9f3104101dd3
mov qword [0x18011d858], rax
lea rax, [rsp + 0x118]
mov qword [0x1800cd770], rax
lea rax, [rsp + 0x110]
mov qword [0x1800cd778], rax
mov dword [0x1800cd698], 2
call fcn.18002ce10
movd xmm1, dword [rsp + 0x110]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [rsp + 0x118]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, xmm6
movss xmm0, dword [rsi + 0x108]
mulss xmm0, xmm10
addss xmm0, dword [rsi + 0x184]
movss dword [rsp + 0x40], xmm7
mov eax, dword [rsi + 0x114]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rsi + 0x54]
mov r8, rbp
lea rdx, str.commonmenu
call fcn.18002c880
movss xmm0, dword [rsi + 0x108]
addss xmm0, dword [rsi + 0x184]
movss dword [rsi + 0x184], xmm0
mov rcx, rsi
lea r11, [rsp + 0xc0]
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 r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp qword [sym.imp.MSVCP140.dll__Mtx_unlock]