Function at 0x100374b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x824
mov eax, dword [0x1014a018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x7ff
lea eax, [ebp - 0x804]
mov esi, ecx
push 0
push eax
mov dword [ebp - 0x814], esi
call sub.MSVCR100.dll_memset
lea ecx, [ebp - 0x810]
push ecx
push esi
lea edx, [ebp - 0x804]
push 0x7ff
push edx
call dword [sym.imp.MSVCR100.dll_vsprintf_s]
add esp, 0x1c
lea edi, [ebp - 0x804]
lea esi, [ebp - 0x824]
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 0x10037544
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 0x10037570
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 0x10037612
fld dword [0x11921740]
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 0x100375cb
cmp byte [ebx + 0x2a], 0
jne 0x100375d1
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 0x1003761c
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 0x1003761c
cmp byte [ebx + 0x2a], 0
je 0x1003761c
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 [0x1192173c]
fdiv dword [ebx + 0x1c]
fdiv dword [0xe7c3d8]
fstp dword [0x11921738]
fld dword [ebx + 0x1c]
fmul qword [0x1013fce8]
fmul qword [0x1013fd78]
fstp dword [0x11921740]
fld dword [ebx + 4]
fadd dword [0x11921740]
fsub dword [ebp - 0x818]
fld dword [0xe7c3d8]
fmul qword [0x1013f6c0]
fsubp st(1)
fstp dword [0x11921734]
jb 0x1003779b
fld dword [0x11921738]
sub esp, 0x28
fstp dword [esp + 0x24]
fld dword [0x1192173c]
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 - 0x818]
lea edx, [ebp - 0x804]
push edx
call fcn.1012e5b0
fld dword [ebx + 0x18]
push eax
call fcn.1012e5b0
fld dword [0x11921734]
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 [0x11921734]
fld qword [0x1013f580]
mov esi, dword [0x10a88838]
mov ecx, dword [esi]
fsub st(1), st(0)
add esp, 0x20
fxch st(1)
push 0x10135e76
fstp dword [ebp - 0x808]
sub esp, 8
fld dword [ebp - 0x808]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fld dword [ecx + 8]
faddp st(2)
fsubrp st(1)
fsub qword [0x1013f6d8]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fstp dword [esp]
call fcn.10037fd0
add esp, 0xc
test al, al
je 0x10037d7c
mov eax, dword [ebp + 8]
xor byte [ebx + 0x29], 1
imul eax, eax, 0x54
xor byte [eax + 0x118c4f99], 1
lea eax, [eax + 0x118c4f99]
jmp 0x10037d7c
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 - 0x80c]
fdiv dword [ebx + 0x1c]
fdiv dword [0xe7c3d8]
fstp dword [ebp - 0x808]
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 - 0x808]
sub esp, 0x28
fstp dword [esp + 0x24]
fld dword [ebp - 0x80c]
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 - 0x810], eax
fild dword [ebp - 0x810]
mov esi, 0xa
fstp dword [ebp - 0x80c]
fld dword [ebp - 0x80c]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub st(2)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10037c9a
fstp st(1)
jmp 0x1003787b
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 - 0x808]
fld dword [ebp - 0x808]
fstp dword [esp + 4]
fld dword [ebp - 0x80c]
fstp dword [esp]
push 0x7a7d
call ecx
add dword [ebp - 0x810], esi
fild dword [ebp - 0x810]
add esp, 0x1c
fstp dword [ebp - 0x80c]
fld dword [ebp - 0x80c]
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 0x10037879
fstp st(1)
fld dword [ebx + 4]
fadd st(1)
call fcn.1012e5b0
mov dword [ebp - 0x80c], eax
fild dword [ebp - 0x80c]
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsubrp st(2)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10037a3d
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 - 0x810]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f900]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fstp dword [esp]
push 0x7a7c
call eax
add dword [ebp - 0x80c], esi
fild dword [ebp - 0x80c]
add esp, 0x1c
fstp dword [ebp - 0x810]
fld dword [ebp - 0x810]
fld dword [ebx + 4]
fadd dword [ebx + 0x1c]
fsub qword [0x1013f580]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x10037982
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 - 0x808]
fld dword [ebp - 0x808]
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 - 0x808]
fld dword [ebp - 0x808]
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 - 0x808]
fld dword [ebp - 0x808]
fstp dword [esp + 4]
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f598]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fstp dword [esp]
push 0x7a7d
call ecx
fld dword [ebx + 0x18]
fadd dword [ebx]
fsub qword [0x1013f8f8]
call fcn.1012e5b0
fld dword [ebx + 4]
mov esi, eax
mov dword [ebp - 0x810], esi
call fcn.1012e5b0
mov edi, eax
mov dword [ebp - 0x808], edi
fild dword [ebp - 0x808]
add esp, 0xc
mov edx, 0x790b50
fstp dword [ebp - 0x80c]
fild dword [ebp - 0x810]
fstp dword [ebp - 0x810]
fld dword [0x1013f7f8]
fstp dword [esp + 0xc]
fld dword [0x1013f7d0]
fstp dword [esp + 8]
fld dword [ebp - 0x80c]
fstp dword [esp + 4]
fld dword [ebp - 0x810]
fstp dword [esp]
push 0x7ec5
call edx
push 0x24
push 0x24
push edi
push esi
mov eax, 0x790b10
call eax
add esp, 0x24
cmp al, 1
jne 0x10037d21
fild dword [0x879340c]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fld dword [ebp - 0x810]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x10037ca3
fld qword [0x1013fc50]
fadd st(1), st(0)
fxch st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x10037ca5
fild dword [0x8793410]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fld dword [ebp - 0x80c]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x10037ca1
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
jp 0x10037ca7
push 1
mov ecx, 0x791050
call ecx
add esp, 4
test al, al
je 0x10037ca7
mov eax, dword [ebp + 8]
xor byte [ebx + 0x29], 1
imul eax, eax, 0x54
xor byte [eax + 0x118c4f99], 1
lea eax, [eax + 0x118c4f99]
jmp 0x10037ca7
fstp st(0)
jmp 0x10037949
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 - 0x80c]
fstp dword [esp + 4]
fld dword [ebp - 0x810]
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 - 0x818]
lea eax, [ebp - 0x804]
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]
pop edi
fstp dword [ebp - 0x80c]
pop esi
fld dword [ebx + 4]
fstp dword [ebp - 0x810]
fild dword [0x879340c]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fld dword [ebx + 0x18]
fld dword [ebp - 0x80c]
fld st(0)
faddp st(2)
fxch st(1)
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x10037e04
fcompp
fnstsw ax
test ah, 0x41
jp 0x10037e08
fild dword [0x8793410]
fstp dword [ebp - 0x808]
fld dword [ebp - 0x808]
fld dword [ebp - 0x810]
fld st(0)
fadd dword [ebx + 0x1c]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x10037e04
fcompp
fnstsw ax
test ah, 0x41
jp 0x10037e08
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012db16
mov esp, ebp
pop ebp
ret
fstp st(1)
fstp st(0)
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
call fcn.1012db16
mov esp, ebp
pop ebp
ret