Function at 0x401ed0
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
push edi
mov edi, edx
mov dword [esp + 0x14], ecx
push 0x405454
call esi
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, str._MENU__n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._1__Toggle_Aimbot__F1__n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._2__Toggle_ESP__F2__n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._3__Show_Current_Status_n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._0__Exit_n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Choose_an_option:
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [esp + 0x13]
call fcn.00403100
mov bl, byte [esp + 0x13]
movsx eax, bl
add eax, 0xffffffd0
cmp eax, 3
ja case.default.0x401d24
jmp dword [eax*4 + 0x401ec0]
push 0
push 0
push 0
push 0x70
call dword [sym.imp.USER32.dll_keybd_event]
mov ecx, dword [esp + 0x14]
mov edx, str.Aimbot:
cmp byte [ecx], 0
sete al
mov byte [ecx], al
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00402b20
mov ecx, dword [esp + 0x14]
mov edx, str.Enabled
cmp byte [ecx], 0
mov ecx, str.Disabled
cmove edx, ecx
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x401e64
push 0
push 0
push 0
push 0x71
call dword [sym.imp.USER32.dll_keybd_event]
cmp byte [edi], 0
mov edx, str.ESP:
sete al
mov byte [edi], al
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00402b20
cmp byte [edi], 0
mov ecx, str.Disabled
mov edx, str.Enabled
cmove edx, ecx
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp 0x401e64
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str._n_STATUS__n
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Aimbot:
call fcn.00402b20
mov ecx, dword [esp + 0x14]
mov edx, str.Enabled
cmp byte [ecx], 0
mov ecx, str.Disabled
cmove edx, ecx
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.ESP:
call fcn.00402b20
cmp byte [edi], 0
mov ecx, str.Disabled
mov edx, str.Enabled
cmove edx, ecx
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov edx, str._n
jmp 0x401e59
mov edx, str.Invalid_choice__Please_try_again._n
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Press_any_key_to_return_to_the_menu...
call fcn.00402b20
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
push 0
push 0x2710
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_long_long___int64___int_]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::basic_istream_char__struct_std::char_traits_char__::get_void_]
cmp bl, 0x30
jne 0x401c88
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Exiting..._n
call fcn.00402b20
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
nop dword [eax]
movsd dword es:[edi], dword [esi]
push ds
inc eax
add byte [ebx], ch
sbb eax, 0x1d820040
inc eax
add cl, dl
sbb eax, 0x8b550040
in al, dx
and esp, 0xfffffff8
sub esp, 0xc0
mov eax, dword [0x407040]
xor eax, esp
mov dword [esp + 0xbc], eax
mov ecx, dword [ebp + 0xc]
mov dl, 1
push esi
mov dh, dl
mov byte [esp + 5], dl
push edi
mov edi, dword [ebp + 8]
lea eax, [ecx + 0xdb25dc]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x10]
add eax, 0x58cfc4
mov byte [esp + 0xa], dh
mov dword [esp + 0x60], eax
lea eax, [ecx + 0x4dcde7c]
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x64], eax
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop dword [eax]
nop dword [eax + eax]
lea ecx, [esp + 0x78]
mov byte [esp + 0xb], dh
mov byte [esp + 0x8f], dl
call fcn.00402d70
push 0x70
call esi
test al, 1
je 0x401fa9
cmp byte [esp + 9], 0
mov esi, str.Enabled
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Aimbot:
sete al
cmp byte [esp + 0x8f], 0
mov byte [esp + 9], al
mov eax, str.Disabled
cmovne esi, eax
call fcn.00402b20
mov edx, esi
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x71
call esi
test al, 1
je 0x401ffb
cmp byte [esp + 0xa], 0
mov esi, str.Enabled
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.ESP:
sete al
cmp byte [esp + 0xb], 0
mov byte [esp + 0xa], al
mov eax, str.Disabled
cmovne esi, eax
call fcn.00402b20
mov edx, esi
mov ecx, eax
call fcn.00402b20
push 0x402d40
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dl, byte [esp + 9]
mov dh, byte [esp + 0xa]
test dl, dl
je 0x401f40
push 2
call esi
mov dl, byte [esp + 9]
mov dh, byte [esp + 0xa]
test ax, ax
je 0x401f40
push 0
push 4
lea eax, [esp + 0xac]
mov dword [esp + 0xac], 0
push eax
push dword [esp + 0x68]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov esi, dword [esp + 0xa4]
lea eax, [esp + 0xc0]
push 0
push 4
push eax
lea eax, [esi + 0xf4]
mov dword [esp + 0xcc], 0
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 0xc
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push eax
lea eax, [esi + 0x138]
mov dword [esp + 0x4c], 0
push eax
push dword [edi + 4]
mov dword [esp + 0x58], 0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 0xc
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push eax
lea eax, [esi + 0x108]
mov dword [esp + 0x34], 0
push eax
push dword [edi + 4]
mov dword [esp + 0x40], 0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [esp + 0x24]
lea eax, [esp + 0xbc]
addss xmm0, dword [esp + 0x3c]
push 0
push 4
push eax
push dword [esp + 0x6c]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [esp + 0x50]
push dword [edi + 4]
mov dword [esp + 0xd0], 0
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [esp + 0x58]
movss dword [esp + 0x5c], xmm0
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0xb0]
push 0
push 0xc
mov dword [esp + 0x70], eax
add eax, 0x4d90
push ecx
push eax
push dword [edi + 4]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 0xc
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
lea eax, [esi + 0x303c]
mov dword [esp + 0x40], 0
push eax
push dword [edi + 4]
mov dword [esp + 0x4c], 0
mov esi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
call esi
movss xmm1, dword [0x4055b0]
xorps xmm2, xmm2
movss xmm0, dword [esp + 0x30]
mulss xmm0, xmm1
mov eax, dword [esp + 0x64]
movss dword [esp + 0xa4], xmm2
mov dword [esp + 0x18], 0
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x34]
mulss xmm0, xmm1
mov dword [esp + 0x1c], eax
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x38]
mulss xmm0, xmm1
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [0x4055b8]
movss dword [esp + 0x14], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x10], xmm0
push 0
push 4
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], 0
push ecx
push eax
push dword [edi + 4]
call esi
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
test eax, eax
je 0x40260c
push 0
push 4
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa8], 0
push ecx
add eax, 0xf4
push eax
push dword [edi + 4]
call esi
push 0
push 1
lea eax, [esp + 0x97]
mov byte [esp + 0x97], 0
push eax
mov eax, dword [esp + 0x18]
add eax, 0xed
push eax
push dword [edi + 4]
call esi
push 0
push 4
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0
push eax
mov eax, dword [esp + 0x18]
add eax, 0x25f
push eax
push dword [edi + 4]
call esi
push 0
push 4
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], 0
push eax
mov eax, dword [esp + 0x18]
add eax, 0x980
push eax
push dword [edi + 4]
call esi
mov eax, dword [esp + 0xc0]
cmp dword [esp + 0xa0], eax
je 0x4025ef
cmp byte [esp + 0x8f], 0
jne 0x4025ef
cmp dword [esp + 0x90], 0
jne 0x4025ef
push 0
push 4
lea eax, [esp + 0x98]
mov dword [esp + 0x98], 0
push eax
mov eax, dword [esp + 0x74]
add eax, 0x180
push eax
push dword [edi + 4]
call esi
mov ecx, dword [esp + 0x90]
mov eax, 1
shl eax, cl
test dword [esp + 0x98], eax
je 0x4025ef
push 0
push 4
lea eax, [esp + 0xa0]
mov dword [esp + 0xa0], 0
push eax
mov eax, dword [esp + 0x18]
add eax, 0x26a8
push eax
push dword [edi + 4]
call esi
mov esi, dword [esp + 0x98]
lea eax, [esp + 0x90]
push 0
push 4
push eax
lea eax, [esi + 0x18c]
mov dword [esp + 0x9c], 0
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 4
lea eax, [esp + 0xa8]
mov dword [esp + 0xa8], 0
push eax
lea eax, [esi + 0x19c]
push eax
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 4
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], 0
push eax
lea eax, [esi + 0x1ac]
mov esi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push eax
push dword [edi + 4]
call esi
movss xmm0, dword [esp + 0xb8]
sub esp, 8
addss xmm0, dword [esp + 0x74]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x98]
subss xmm0, dword [esp + 0x78]
movss dword [esp + 0x98], xmm0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xa8]
subss xmm0, dword [esp + 0x7c]
movss dword [esp + 0xa0], xmm0
fld dword [esp + 0xa0]
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [esp + 0xb0]
subss xmm0, dword [esp + 0x50]
fstp dword [esp + 4]
fld dword [esp + 0x98]
fstp dword [esp]
xorps xmm0, xmmword [0x4055c0]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0xb0], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
fstp dword [esp + 0xa0]
movss xmm0, dword [esp + 0xa0]
add esp, 8
fld qword [esp + 0xa8]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x98], xmm0
fld qword [esp + 0x98]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
movss xmm0, dword [esp + 0xb0]
addss xmm0, dword [esp + 0x4c]
fstp qword [esp + 0x98]
movsd xmm1, qword [esp + 0x98]
cvtpd2ps xmm1, xmm1
mulss xmm1, dword [0x4055bc]
subss xmm1, xmm0
movss xmm0, dword [esp + 0xa0]
cvtps2pd xmm0, xmm0
movss dword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
fld qword [esp + 0x90]
movss xmm0, dword [esp + 0xc]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x90], xmm0
fld qword [esp + 0x90]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
movss xmm0, dword [esp + 0xb4]
addss xmm0, dword [esp + 0x50]
movss xmm1, dword [esp + 0x98]
subss xmm1, dword [esp + 0xb0]
fstp qword [esp + 0x90]
movsd xmm3, qword [esp + 0x90]
cvtpd2ps xmm3, xmm3
mulss xmm1, xmm1
mulss xmm3, dword [0x4055bc]
subss xmm3, xmm0
movaps xmm0, xmm3
movss dword [esp + 0x90], xmm3
subss xmm0, dword [esp + 0xb4]
mulss xmm0, xmm0
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x4025a5
sqrtsd xmm0, xmm0
jmp 0x4025aa
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esp + 0x14]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x4025ef
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x98]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0xa4], xmm0
xorps xmm0, xmm0
subss xmm0, dword [esp + 0x54]
movss dword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
add eax, 0x10
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
cmp ecx, 0x20
jl 0x402223
movss xmm1, dword [esp + 0x20]
xorps xmm3, xmm3
movss xmm2, dword [esp + 0xa4]
movss xmm0, dword [esp + 0x10]
ucomiss xmm1, xmm3
lahf
test ah, 0x44
jp 0x402651
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jp 0x402651
mov dl, byte [esp + 9]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov dh, byte [esp + 0xa]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x401f40
movss xmm3, dword [0x4055b4]
lea eax, [esp + 0x80]
divss xmm1, xmm3
push 0
push 0xc
push eax
divss xmm2, xmm3
divss xmm0, xmm3
addss xmm1, dword [esp + 0xbc]
addss xmm2, dword [esp + 0xc0]
addss xmm0, dword [esp + 0xc4]
push dword [esp + 0x64]
push dword [edi + 4]
movss dword [esp + 0x94], xmm1
movss dword [esp + 0x98], xmm2
movss dword [esp + 0x9c], xmm0
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dl, byte [esp + 9]
mov dh, byte [esp + 0xa]
jmp 0x401f2e