Function at 0x401460
Capabilities:
Log keystrokes via polling

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push ebx
push ecx
sub esp, 0x70
call sym.___main
fld dword [0x406188]
fstp dword [ebp - 0xc]
fld dword [0x406188]
fstp dword [ebp - 0x10]
fldz
fstp dword [ebp - 0x14]
lea eax, [ebp - 0x41]
mov ecx, eax
call fcn.00401a84
lea eax, [ebp - 0x50]
lea edx, [ebp - 0x41]
mov dword [esp + 4], edx
mov dword [esp], 0x12c0
mov ecx, eax
call method.std::vector_char__std::allocator_char___.vector_unsigned_int__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x41]
mov ecx, eax
call sym.std::allocator_char_::allocator__
mov dword [esp], 0x41
call sym._GetAsyncKeyState_4
sub esp, 4
shr ax, 0xf
test al, al
je 0x4014e2
fld dword [ebp - 0x14]
fld dword [0x40618c]
fsubp st(1)
fstp dword [ebp - 0x14]
mov dword [esp], 0x44
call sym._GetAsyncKeyState_4
sub esp, 4
shr ax, 0xf
test al, al
je 0x401507
fld dword [ebp - 0x14]
fld dword [0x40618c]
faddp st(1)
fstp dword [ebp - 0x14]
mov dword [esp], 0x57
call sym._GetAsyncKeyState_4
sub esp, 4
shr ax, 0xf
test al, al
je 0x4015fa
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._cosf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0xc]
faddp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._sinf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0x10]
faddp st(1)
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
mov ah, 0xc
mov word [ebp - 0x5c], ax
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x60]
fldcw word [ebp - 0x5a]
mov eax, dword [ebp - 0x60]
shl eax, 4
fld dword [ebp - 0xc]
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x60]
fldcw word [ebp - 0x5a]
mov edx, dword [ebp - 0x60]
add eax, edx
mov dword [esp], eax
mov ecx, 0x409020
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator___unsigned_int_
sub esp, 4
movzx eax, byte [eax]
cmp al, 0x23
sete al
test al, al
je 0x4015fa
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._cosf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0xc]
fsubrp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._sinf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0x10]
fsubrp st(1)
fstp dword [ebp - 0x10]
mov dword [esp], 0x53
call sym._GetAsyncKeyState_4
sub esp, 4
shr ax, 0xf
test al, al
je 0x4016ed
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._cosf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0xc]
fsubrp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._sinf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0x10]
fsubrp st(1)
fstp dword [ebp - 0x10]
fld dword [ebp - 0x10]
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
mov ah, 0xc
mov word [ebp - 0x5c], ax
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x60]
fldcw word [ebp - 0x5a]
mov eax, dword [ebp - 0x60]
shl eax, 4
fld dword [ebp - 0xc]
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x60]
fldcw word [ebp - 0x5a]
mov edx, dword [ebp - 0x60]
add eax, edx
mov dword [esp], eax
mov ecx, 0x409020
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator___unsigned_int_
sub esp, 4
movzx eax, byte [eax]
cmp al, 0x23
sete al
test al, al
je 0x4016ed
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._cosf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0xc]
faddp st(1)
fstp dword [ebp - 0xc]
fld dword [ebp - 0x14]
fstp dword [esp]
call sym._sinf
fld dword [0x406190]
fmulp st(1)
fld dword [0x406194]
fmulp st(1)
fld dword [ebp - 0x10]
faddp st(1)
fstp dword [ebp - 0x10]
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 0x77
jg 0x4018f5
fld dword [ebp - 0x14]
fld dword [0x406198]
fsubp st(1)
fild dword [ebp - 0x18]
fld dword [0x40619c]
fdivp st(1)
fld dword [0x4061a0]
fmulp st(1)
faddp st(1)
fstp dword [ebp - 0x28]
fldz
fstp dword [ebp - 0x1c]
mov byte [ebp - 0x1d], 0
fld dword [ebp - 0x28]
fstp dword [esp]
call sym._cosf
fstp dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x2c], eax
fld dword [ebp - 0x28]
fstp dword [esp]
call sym._sinf
fstp dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x30], eax
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
mov ah, 0xc
mov word [ebp - 0x5c], ax
cmp byte [ebp - 0x1d], 0
jne 0x401831
fld dword [0x4061a4]
fld dword [ebp - 0x1c]
fxch st(1)
fucompp
fnstsw ax
sahf
seta al
xor eax, 1
test al, al
jne 0x401831
fld dword [ebp - 0x1c]
fld dword [0x4061a8]
faddp st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x2c]
fmul dword [ebp - 0x1c]
fadd dword [ebp - 0xc]
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x34]
fldcw word [ebp - 0x5a]
fld dword [ebp - 0x30]
fmul dword [ebp - 0x1c]
fadd dword [ebp - 0x10]
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x38]
fldcw word [ebp - 0x5a]
cmp dword [ebp - 0x34], 0
js 0x4017d1
cmp dword [ebp - 0x34], 0xf
jg 0x4017d1
cmp dword [ebp - 0x38], 0
js 0x4017d1
cmp dword [ebp - 0x38], 0xf
jle 0x4017e0
mov byte [ebp - 0x1d], 1
fld dword [0x4061a4]
fstp dword [ebp - 0x1c]
jmp 0x40182c
mov eax, dword [ebp - 0x38]
shl eax, 4
mov edx, eax
mov eax, dword [ebp - 0x34]
add eax, edx
mov dword [esp], eax
mov ecx, 0x409020
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator___unsigned_int_
sub esp, 4
movzx eax, byte [eax]
cmp al, 0x23
sete al
test al, al
je 0x40181f
mov byte [ebp - 0x1d], 1
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
mov ah, 0xc
mov word [ebp - 0x5c], ax
jmp 0x40175f
fnstcw word [ebp - 0x5a]
movzx eax, word [ebp - 0x5a]
mov ah, 0xc
mov word [ebp - 0x5c], ax
jmp 0x40175f
fld dword [0x4061ac]
fdiv dword [ebp - 0x1c]
fld dword [0x4061b0]
fsubrp st(1)
fldcw word [ebp - 0x5c]
fistp dword [ebp - 0x3c]
fldcw word [ebp - 0x5a]
mov eax, 0x28
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], 0x27
jg 0x4018ec
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x3c]
jg 0x401891
mov eax, dword [ebp - 0x24]
imul edx, eax, 0x78
mov eax, dword [ebp - 0x18]
add eax, edx
mov edx, eax
lea eax, [ebp - 0x50]
mov dword [esp], edx
mov ecx, eax
call method.std::vector_char__std::allocator_char___.operator___unsigned_int_
sub esp, 4
mov byte [eax], 0x20
jmp 0x4018e3
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x3c]
jle 0x4018c3
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x40]
jg 0x4018c3
mov eax, dword [ebp - 0x24]
imul edx, eax, 0x78
mov eax, dword [ebp - 0x18]
add eax, edx
mov edx, eax
lea eax, [ebp - 0x50]
mov dword [esp], edx
mov ecx, eax
call method.std::vector_char__std::allocator_char___.operator___unsigned_int_
sub esp, 4
mov byte [eax], 0x23
jmp 0x4018e3
mov eax, dword [ebp - 0x24]
imul edx, eax, 0x78
mov eax, dword [ebp - 0x18]
add eax, edx
mov edx, eax
lea eax, [ebp - 0x50]
mov dword [esp], edx
mov ecx, eax
call method.std::vector_char__std::allocator_char___.operator___unsigned_int_
sub esp, 4
mov byte [eax], 0x2e
add dword [ebp - 0x24], 1
jmp 0x40185d
add dword [ebp - 0x18], 1
jmp 0x4016f4
lea eax, [ebp - 0x50]
mov dword [esp], 0x12bf
mov ecx, eax
call method.std::vector_char__std::allocator_char___.operator___unsigned_int_
sub esp, 4
mov byte [eax], 0
lea eax, [ebp - 0x50]
mov ecx, eax
call method.std::vector_char__std::allocator_char___.data__
mov dword [esp + 4], eax
mov dword [esp], sym.imp.libstdc_6.dll_std::cout
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
jmp 0x4014bd