Function at 0x402cd2
Capabilities:
Log keystrokes via polling
Set console window title

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x168
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x40], xmm6
movaps xmmword [rbp + 0x50], xmm7
movaps xmmword [rbp + 0x60], xmm8
movaps xmmword [rbp + 0x70], xmm9
movaps xmmword [rbp + 0x80], xmm10
movaps xmmword [rbp + 0x90], xmm11
movaps xmmword [rbp + 0xa0], xmm12
movaps xmmword [rbp + 0xb0], xmm13
movaps xmmword [rbp + 0xc0], xmm14
movaps xmmword [rbp + 0xd0], xmm15
lea rax, [sym.__gxx_personality_sj0]
mov qword [rbp - 0x30], rax
lea rax, [0x0040a358]
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x20]
lea rbx, [rbp + 0x40]
mov qword [rax], rbx
lea rdx, [0x00403006]
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rsp
lea rax, [rbp - 0x60]
mov rcx, rax
call sym._Unwind_SjLj_Register
call sym.__main
lea rcx, str.N0tT00MUCH_DEVILISH____
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov dword [rbp - 0x58], 0xffffffff
call rax
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rbp - 0x58], 0xffffffff
call rax
mov ecx, 0x61
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
call rax
test ax, ax
setne al
test al, al
je 0x402dfb
movzx eax, byte [0x0040b048]
xor eax, 1
test al, al
je 0x402dfb
lea rax, [rbp + 0x38]
lea rdx, [sym.Health__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x38]
mov dword [rbp - 0x58], 1
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b048], 1
lea rax, [rbp + 0x38]
mov rcx, rax
call method.std::thread.thread__
mov ecx, 0x62
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [rbp - 0x58], 0xffffffff
call rax
test ax, ax
setne al
test al, al
je 0x402e61
movzx eax, byte [0x0040b049]
xor eax, 1
test al, al
je 0x402e61
lea rax, [rbp + 0x30]
lea rdx, [sym.pCollision__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x30]
mov dword [rbp - 0x58], 2
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b049], 1
lea rax, [rbp + 0x30]
mov rcx, rax
call method.std::thread.thread__
mov ecx, 0x63
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [rbp - 0x58], 0xffffffff
call rax
test ax, ax
setne al
test al, al
je 0x402ec7
movzx eax, byte [0x0040b04a]
xor eax, 1
test al, al
je 0x402ec7
lea rax, [rbp + 0x28]
lea rdx, [sym.PowerCard__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x28]
mov dword [rbp - 0x58], 3
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b04a], 1
lea rax, [rbp + 0x28]
mov rcx, rax
call method.std::thread.thread__
mov ecx, 0x64
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [rbp - 0x58], 0xffffffff
call rax
test ax, ax
setne al
test al, al
je 0x402f2d
movzx eax, byte [0x0040b04b]
xor eax, 1
test al, al
je 0x402f2d
lea rax, [rbp + 0x20]
lea rdx, [sym.CoinsSlotA__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x20]
mov dword [rbp - 0x58], 4
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b04b], 1
lea rax, [rbp + 0x20]
mov rcx, rax
call method.std::thread.thread__
mov ecx, 0x65
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [rbp - 0x58], 0xffffffff
call rax
test ax, ax
setne al
test al, al
je 0x402f93
movzx eax, byte [0x0040b04c]
xor eax, 1
test al, al
je 0x402f93
lea rax, [rbp + 0x18]
lea rdx, [sym.CoinsSlotB__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x18]
mov dword [rbp - 0x58], 5
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b04c], 1
lea rax, [rbp + 0x18]
mov rcx, rax
call method.std::thread.thread__
mov ecx, 0x66
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dword [rbp - 0x58], 0xffffffff
call rax
test ax, ax
setne al
test al, al
je 0x402d87
movzx eax, byte [0x0040b04d]
xor eax, 1
test al, al
je 0x402d87
lea rax, [rbp + 0x10]
lea rdx, [sym.CoinsSlotC__]
mov rcx, rax
call method.std::thread.thread_void_______void______
lea rax, [rbp + 0x10]
mov dword [rbp - 0x58], 6
mov rcx, rax
call sym.std::thread::detach__
mov byte [0x0040b04d], 1
lea rax, [rbp + 0x10]
mov rcx, rax
call method.std::thread.thread__
jmp 0x402d87