Function at 0x1002f140
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x82c
mov eax, dword [0x1014a018]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
push edi
push 0x7ff
lea eax, [ebp - 0x80c]
push 0
push eax
call sub.MSVCR100.dll_memset
mov edx, dword [ebp + 8]
add esp, 0xc
lea ecx, [ebp + 0xc]
push ecx
push edx
lea eax, [ebp - 0x80c]
push 0x7ff
push eax
call dword [sym.imp.MSVCR100.dll_vsprintf_s]
add esp, 0x10
lea edi, [ebp - 0x80c]
lea esi, [ebp - 0x828]
call fcn.10037e90
fld dword [ebx + 0x1c]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebx + 0x18]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
call fcn.10037e20
test al, al
je 0x1002f1cf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x1f4
mov dword [0x118d9b64], eax
fld dword [ebx]
fld dword [0x1013f730]
fucompp
fnstsw ax
test ah, 0x44
jp 0x1002f1fb
fild dword [0xe61e58]
fdiv dword [0xe7c3d4]
fld qword [0x1013f510]
fmul st(1), st(0)
fmul dword [ebx + 0x18]
fsubp st(1)
fstp dword [ebx]
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1002f29d
fld dword [0x11921820]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebx + 0x18]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
call fcn.10037e20
test al, al
je 0x1002f256
cmp byte [ebx + 0x2a], 0
jne 0x1002f25c
mov byte [ebx + 0x2a], 1
fild dword [0x879340c]
fstp dword [ebx + 0x10]
fild dword [0x8793410]
fstp dword [ebx + 0x14]
cmp byte [ebx + 0x2a], 0
je 0x1002f2a7
fild dword [0x879340c]
fsub dword [ebx + 0x10]
fadd dword [ebx]
fstp dword [ebx]
fild dword [0x8793410]
fsub dword [ebx + 0x14]
fadd dword [ebx + 4]
fstp dword [ebx + 4]
fild dword [0x879340c]
fstp dword [ebx + 0x10]
fild dword [0x8793410]
fstp dword [ebx + 0x14]
fld dword [ebx + 0x18]
fadd dword [ebx]
fstp dword [ebx + 0x20]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fstp dword [ebx + 0x24]
jmp 0x1002f2a7
cmp byte [ebx + 0x2a], 0
je 0x1002f2a7
mov byte [ebx + 0x2a], 0
cmp dword [0x10234a28], 3
fld dword [ebx + 0x18]
fld qword [0x101407d0]
fld st(0)
fdivrp st(2)
fld dword [0xe7c3d4]
fdivp st(2)
fxch st(1)
fstp dword [0x1192181c]
fdiv dword [ebx + 0x1c]
fdiv dword [0xe7c3d8]
fstp dword [0x11921818]
fld dword [ebx + 0x1c]
fmul qword [0x1013fce8]
fmul qword [0x1013fd78]
fstp dword [0x11921820]
fld dword [ebx + 4]
fadd dword [0x11921820]
fsub dword [ebp - 0x81c]
fld dword [0xe7c3d8]
fmul qword [0x1013f6c0]
fsubp st(1)
fstp dword [0x11921814]
jb 0x1002f3fb
fld dword [0x11921818]
sub esp, 0x28
fstp dword [esp + 0x24]
fld dword [0x1192181c]
fstp dword [esp + 0x20]
fld dword [0x10140310]
fst dword [esp + 0x1c]
fst dword [esp + 0x18]
fldz
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
push 0xf1007
call fcn.10025c00
fld dword [ebp - 0x81c]
lea edx, [ebp - 0x80c]
push edx
call fcn.1012e5b0
fld dword [ebx + 0x18]
push eax
call fcn.1012e5b0
fld dword [0x11921814]
push eax
push 0
push 0xffffffffffffffff
call fcn.1012e5b0
fld dword [ebx]
push eax
call fcn.1012e5b0
push eax
mov eax, dword [0x116de53c]
push eax
mov cl, 3
call fcn.1008a600
fld dword [0x11921814]
mov esi, dword [0x10a88838]
mov ecx, dword [esi]
add esp, 0x20
push 0x10135e76
sub esp, 8
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fld dword [ecx + 8]
fadd qword [0x1013f580]
fsubp st(1)
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp]
call fcn.10037fd0
add esp, 0xc
test al, al
je 0x1002f9d6
xor byte [ebx + 0x29], 1
jmp 0x1002f9d6
fld dword [ebx + 0x18]
push 1
fld qword [0x1013f928]
mov edx, 0x635fd0
fld st(0)
fdivrp st(2)
fld dword [0xe7c3d4]
fdivp st(2)
fxch st(1)
fstp dword [ebp - 0x814]
fdiv dword [ebx + 0x1c]
fdiv dword [0xe7c3d8]
fstp dword [ebp - 0x810]
call edx
fld1
fst dword [esp]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
call dword [sym.imp.OPENGL32.dll_glColor3f]
fld dword [ebp - 0x810]
sub esp, 0x28
fstp dword [esp + 0x24]
fld dword [ebp - 0x814]
fstp dword [esp + 0x20]
fld dword [0x1013f920]
fst dword [esp + 0x1c]
fld dword [0x1013f7a8]
fstp dword [esp + 0x18]
fldz
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fst dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
call fcn.10066150
fld dword [ebx]
fld qword [0x1013f580]
fadd st(1), st(0)
fxch st(1)
call fcn.1012e5b0
mov dword [ebp - 0x818], eax
fild dword [ebp - 0x818]
mov esi, 0xa
fstp dword [ebp - 0x814]
fld dword [ebp - 0x814]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub st(2)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x1002f8f4
fstp st(1)
jmp 0x1002f4e2
fstp st(0)
fldz
sub esp, 0x18
fstp dword [esp + 0x14]
mov eax, 0x790e40
fld dword [0x1013f910]
fstp dword [esp + 0x10]
fld dword [0x1013f90c]
fstp dword [esp + 0xc]
fld dword [0x1013f6a0]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fstp dword [esp]
push 0x7a79
call eax
fldz
fstp dword [esp + 0x18]
add esp, 4
fld dword [0x1013f910]
mov ecx, 0x790e40
fstp dword [esp + 0x10]
fld dword [0x1013f908]
fstp dword [esp + 0xc]
fld dword [0x1013f6a0]
fstp dword [esp + 8]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsub qword [0x1013f918]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp + 4]
fld dword [ebp - 0x814]
fstp dword [esp]
push 0x7a7d
call ecx
add dword [ebp - 0x818], esi
fild dword [ebp - 0x818]
add esp, 0x1c
fstp dword [ebp - 0x814]
fld dword [ebp - 0x814]
fld dword [ebx + 0x18]
fadd dword [ebx]
fld qword [0x1013f580]
fsub st(1), st(0)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 0x41
je 0x1002f4e0
fstp st(1)
fld dword [ebx + 4]
fadd st(1)
call fcn.1012e5b0
mov dword [ebp - 0x814], eax
fild dword [ebp - 0x814]
fstp dword [ebp - 0x818]
fld dword [ebp - 0x818]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsubrp st(2)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x1002f6a4
fldz
sub esp, 0x18
fst dword [esp + 0x14]
mov edx, 0x790e40
fstp dword [esp + 0x10]
fld dword [0x1013f6a0]
fstp dword [esp + 0xc]
fld dword [0x1013f8e0]
fstp dword [esp + 8]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
push 0x7a7b
call edx
fldz
fst dword [esp + 0x18]
add esp, 4
fstp dword [esp + 0x10]
mov eax, 0x790e40
fld dword [0x1013f6a0]
fstp dword [esp + 0xc]
fld dword [0x1013f8e0]
fstp dword [esp + 8]
fld dword [ebp - 0x818]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f900]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp]
push 0x7a7c
call eax
add dword [ebp - 0x814], esi
fild dword [ebp - 0x814]
add esp, 0x1c
fstp dword [ebp - 0x818]
fld dword [ebp - 0x818]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsub qword [0x1013f580]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x1002f5e9
fstp st(0)
sub esp, 0x18
fldz
mov ecx, 0x790e40
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x1013f90c]
fstp dword [esp + 0xc]
fld dword [0x1013f910]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
push 0x7a79
call ecx
fldz
fstp dword [esp + 0x18]
add esp, 4
fld dword [0x10150f98]
mov edx, 0x790e40
fstp dword [esp + 0x10]
fld dword [0x1013f90c]
fstp dword [esp + 0xc]
fld dword [0x1013f910]
fstp dword [esp + 8]
fld dword [ebx + 4]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f598]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp]
push 0x7a79
call edx
fldz
fst dword [esp + 0x18]
add esp, 4
fstp dword [esp + 0x10]
mov eax, 0x790e40
fld dword [0x1013f908]
fstp dword [esp + 0xc]
fld dword [0x1013f910]
fstp dword [esp + 8]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsub qword [0x1013f918]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp + 4]
fld dword [ebx]
fstp dword [esp]
push 0x7a7d
call eax
fldz
fstp dword [esp + 0x18]
add esp, 4
fld dword [0x10150f98]
mov ecx, 0x790e40
fstp dword [esp + 0x10]
fld dword [0x1013f908]
fstp dword [esp + 0xc]
fld dword [0x1013f910]
fstp dword [esp + 8]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsub qword [0x1013f918]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f598]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fstp dword [esp]
push 0x7a7d
call ecx
fld dword [ebx + 0x18]
add esp, 0x1c
fadd dword [ebx]
fsub qword [0x1013f8f8]
call fcn.1012e5b0
fld dword [ebx + 4]
mov esi, eax
mov dword [ebp - 0x818], esi
call fcn.1012e5b0
mov edi, eax
mov dword [ebp - 0x810], edi
fild dword [ebp - 0x810]
sub esp, 0x10
mov edx, 0x790b50
fstp dword [ebp - 0x814]
fild dword [ebp - 0x818]
fstp dword [ebp - 0x818]
fld dword [0x1013f7f8]
fstp dword [esp + 0xc]
fld dword [0x1013f7d0]
fstp dword [esp + 8]
fld dword [ebp - 0x814]
fstp dword [esp + 4]
fld dword [ebp - 0x818]
fstp dword [esp]
push 0x7ec5
call edx
add esp, 0x14
push 0x24
push 0x24
push edi
push esi
mov eax, 0x790b10
call eax
add esp, 0x10
cmp al, 1
jne 0x1002f97b
fild dword [0x879340c]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebp - 0x818]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x1002f8fd
fld qword [0x1013fc50]
fadd st(1), st(0)
fxch st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x1002f8ff
fild dword [0x8793410]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebp - 0x814]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x1002f8fb
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x1002f901
push 1
mov ecx, 0x791050
call ecx
add esp, 4
test al, al
je 0x1002f901
xor byte [ebx + 0x29], 1
jmp 0x1002f901
fstp st(0)
jmp 0x1002f5b0
fstp st(1)
fstp st(1)
fstp st(0)
push 0x82
push 0x14
push 0xcc
push 0xff
mov edx, 0x412d20
call edx
fldz
add esp, 0x10
push eax
sub esp, 0x18
fst dword [esp + 0x14]
mov eax, 0x790f20
fstp dword [esp + 0x10]
fld dword [0x1013f7f8]
fstp dword [esp + 0xc]
fld dword [0x1013f7d0]
fstp dword [esp + 8]
fld dword [ebp - 0x814]
fstp dword [esp + 4]
fld dword [ebp - 0x818]
fstp dword [esp]
push 0x7ec5
call eax
mov ecx, dword [0x10a723b4]
mov edx, dword [0x10a723ac]
push str.Close
push ecx
add edx, 0x14
push edx
call fcn.100bba40
add esp, 0x2c
fld dword [ebp - 0x81c]
lea eax, [ebp - 0x80c]
push eax
call fcn.1012e5b0
fld dword [ebx + 0x18]
push eax
call fcn.1012e5b0
fld dword [ebx + 4]
fadd qword [0x1013f8f0]
push eax
push 0
push 0xffae00ff
call fcn.1012e5b0
fld dword [ebx]
push eax
call fcn.1012e5b0
mov ecx, dword [0xe8c58c]
push eax
push ecx
mov cl, 3
call fcn.10025780
mov edx, 0x635f50
call edx
push 0
mov eax, 0x635fd0
call eax
add esp, 0x24
fld dword [ebx]
fstp dword [ebp - 0x814]
fld dword [ebx + 4]
fstp dword [ebp - 0x818]
fild dword [0x879340c]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebx + 0x18]
fld dword [ebp - 0x814]
fld st(0)
faddp st(2)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x1002fa5e
fcompp
fnstsw ax
test ah, 0x41
jp 0x1002fa62
fild dword [0x8793410]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebp - 0x818]
fld st(0)
fadd dword [ebx + 0x1c]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x1002fa5e
fcompp
fnstsw ax
test ah, 0x41
jp 0x1002fa62
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.1012db16
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
mov ecx, dword [ebp - 8]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.1012db16
mov esp, ebp
pop ebp
ret