Function at 0x10017a40
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
cmp byte [0x1012bf55], 0
je 0x10017ff7
mov eax, dword [0x879340c]
fld dword [0x1073c504]
xor ecx, ecx
fstp dword [ebp - 4]
fld dword [0x1073c508]
cmp eax, 0x280
setge cl
fstp dword [ebp - 8]
xor edx, edx
push ebx
push esi
push edi
dec ecx
and ecx, eax
mov eax, dword [0x8793410]
cmp eax, 0x1e0
setge dl
mov dword [ebp - 0x14], ecx
fild dword [ebp - 0x14]
fstp dword [ebp - 0xc]
dec edx
and edx, eax
mov eax, dword [0xe61e5c]
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
fstp dword [ebp - 0x10]
fild dword [0xe61e5c]
test eax, eax
jns 0x10017ab3
fadd dword [0x100b7030]
fld qword [0x100b7568]
mov ecx, dword [0xe61e58]
fmul st(1), st(0)
sub esp, 0x10
fxch st(1)
fdiv qword [0x100b7560]
fdivr qword [0x100b7558]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 0xc]
fild dword [0xe61e58]
test ecx, ecx
jns 0x10017aec
fadd dword [0x100b7030]
fmulp st(1)
fdiv qword [0x100b7550]
fdivr qword [0x100b7548]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 8]
fld dword [ebp - 8]
fstp dword [esp + 4]
fld dword [ebp - 4]
fstp dword [esp]
call fcn.10050ee0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
test al, al
je 0x10017b5e
mov bl, byte [0x1073c500]
test bl, bl
jne 0x10017b6c
push 1
call esi
mov edx, 0x8000
test dx, ax
je 0x10017b5e
fld dword [ebp - 0xc]
mov bl, 1
mov byte [0x1073c500], bl
call fcn.100ac0e0
fld dword [ebp - 0x10]
mov word [0x1073c50c], ax
call fcn.100ac0e0
mov word [0x1073c50e], ax
jmp 0x10017b6c
mov bl, byte [0x1073c500]
test bl, bl
je 0x10017c30
movsx eax, word [0x1073c50c]
fld dword [ebp - 0xc]
movsx ecx, word [0x1073c50e]
mov dword [ebp - 0x14], eax
fild dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
fsubp st(1)
fadd dword [0x1073c504]
fstp dword [ebp - 4]
fld dword [ebp - 0x10]
fild dword [ebp - 0x14]
fsubp st(1)
fadd dword [0x1073c508]
fstp dword [ebp - 8]
fld dword [0x100b7540]
fcom dword [ebp - 4]
fnstsw ax
test ah, 0x41
jne 0x10017bb7
fstp dword [ebp - 4]
jmp 0x10017bb9
fstp st(0)
fld dword [ebp - 4]
fcomp qword [0x100b7538]
fnstsw ax
test ah, 0x41
jne 0x10017bd2
fld dword [0x100b7534]
fstp dword [ebp - 4]
fld dword [0x100b71f4]
fld dword [ebp - 8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10017beb
fstp st(0)
fstp dword [ebp - 8]
jmp 0x10017c05
fstp st(1)
fld dword [0x100b7530]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10017c03
fstp dword [ebp - 8]
jmp 0x10017c05
fstp st(0)
test bl, bl
je 0x10017c30
push 1
call esi
mov edx, 0x8000
test dx, ax
jne 0x10017c30
fld dword [ebp - 4]
mov byte [0x1073c500], 0
fstp dword [0x1073c504]
fld dword [ebp - 8]
fstp dword [0x1073c508]
mov eax, 0x206
mov ecx, 0x10123c90
call fcn.10051040
fldz
xor ecx, ecx
test al, al
setne cl
mov edx, 0x637c60
push ecx
fst dword [esp]
push 1
fld1
push 1
sub esp, 0x20
fst dword [esp + 0x1c]
fstp dword [esp + 0x18]
mov dword [0xe8cb3c], ecx
fst dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x100b752c]
fstp dword [esp + 0xc]
fld dword [0x100b7528]
fstp dword [esp + 8]
fld dword [ebp - 8]
fsub qword [0x100b7298]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 4]
fld dword [ebp - 4]
fsub qword [0x100b70f0]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
push 0x7a121
call edx
fld dword [0x1012bf44]
fadd qword [0x100b7520]
add esp, 0x28
mov eax, 0x20b
mov ecx, 0x10123c90
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp + 4]
fld dword [ebp - 4]
fadd qword [0x100b74c8]
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
call fcn.1004eed0
mov eax, 0x20b
mov ecx, 0x10123c90
call fcn.10051040
test al, al
je 0x10017d27
fld dword [0x1012c084]
sub esp, 8
fstp dword [esp + 4]
mov edx, 0x96323232
fld dword [0x1012c080]
mov eax, 0x20b
mov ecx, 0x10123c90
fstp dword [esp]
call fcn.10051300
fld dword [ebp - 8]
call fcn.100ac0e0
fld dword [ebp - 4]
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.100ac0e0
push str.TNG_HP_LNH_TRONG_GAME
mov dword [ebp - 0x10], eax
push 0xd2
add eax, 0xa
push eax
lea ecx, [edi + 0xa]
push 0xff19bdff
mov ebx, 3
call fcn.10050e40
fld dword [ebp - 4]
fadd qword [0x100b7518]
mov eax, 0x790b50
fsub qword [0x100b6f18]
fstp dword [ebp - 0x14]
fld1
fstp dword [esp + 0xc]
fld dword [0x100b7510]
fstp dword [esp + 8]
fld dword [ebp - 8]
fadd qword [0x100b7508]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fld dword [ebp - 0x14]
fstp dword [esp]
push 0x11760
call eax
fld dword [0x100b6fd0]
mov eax, dword [0x1073e770]
add esp, 0x14
test eax, eax
jne 0x10017e11
cmp dword [0x1073e774], 0x19
jg 0x10017e2d
fst dword [0x10125100]
fst dword [0x10125104]
fst dword [0x10125108]
fst dword [0x1012510c]
cmp eax, 1
je 0x10017e7c
cmp eax, 2
je 0x10017e7c
cmp eax, 3
je 0x10017e7c
fst dword [0x10125140]
fst dword [0x10125144]
fst dword [0x10125148]
fstp dword [0x1012514c]
jmp 0x10017eba
cmp eax, 1
jne 0x10017e1f
cmp dword [0x1073e774], 0x32
jmp 0x10017dbf
cmp eax, 2
jne 0x10017dc1
cmp dword [0x1073e774], 0x4b
jle 0x10017dc1
fstp st(0)
sub esp, 8
fld dword [ebp - 8]
mov eax, 0x4d
fadd qword [0x100b74b0]
mov ecx, 0x10123c90
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fld dword [ebp - 4]
fadd qword [0x100b7500]
fsub qword [0x100b6f88]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp]
call fcn.10059c10
mov eax, dword [0x1073e770]
fld dword [0x100b6fd0]
jmp 0x10017dd9
fstp st(0)
sub esp, 8
fld dword [ebp - 8]
mov eax, 0x4e
fadd qword [0x100b74b0]
mov ecx, 0x10123c90
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp + 4]
fld dword [ebp - 4]
fsub qword [0x100b7280]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fstp dword [esp]
call fcn.10059c10
mov eax, dword [0x1073e770]
mov edx, eax
imul edx, edx, 0x19
mov ebx, edx
lea ecx, [edx + 0x19]
mov dword [ebp - 0xc], ebx
cmp ebx, ecx
jge 0x10017fb9
mov ecx, ebx
imul ecx, ecx, 0x58
add ecx, 0x1073c514
mov dword [ebp - 4], ecx
lea ecx, [ecx]
or esi, 0xffffffff
cmp dword [ecx - 4], esi
je 0x10017f9f
mov eax, dword [ecx]
cmp eax, 1
jne 0x10017efa
mov esi, 0xff19bdff
jmp 0x10017f42
cmp eax, 2
je 0x10017f42
cmp eax, 3
jne 0x10017f0b
mov esi, 0xff1969ff
jmp 0x10017f42
cmp eax, 4
jne 0x10017f17
mov esi, 0xff2d5fe1
jmp 0x10017f42
cmp eax, 5
jne 0x10017f23
mov esi, 0xff8be100
jmp 0x10017f42
cmp eax, 6
jne 0x10017f2f
mov esi, 0xff00ffff
jmp 0x10017f42
sub eax, 7
neg eax
sbb eax, eax
and eax, 0xff4d5766
add eax, 0xffcc6699
mov esi, eax
cmp dword [0x1073e770], 0
mov eax, ebx
jle 0x10017f4f
sub eax, edx
lea edx, [eax + eax*4 + 0x19]
mov eax, dword [ebp - 0x10]
add ecx, 4
push ecx
push 0x64
add eax, 0x12
lea edi, [edi + edx*2]
push eax
push esi
mov ebx, 1
mov ecx, edi
call fcn.10050e40
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 4]
push ebx
push 0
push esi
push 0
push 0x64
push edi
add ecx, 0x70
push ecx
add edx, 0x2c
push edx
mov eax, 0x7d04d0
call eax
mov eax, dword [0x1073e770]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add esp, 0x30
mov edx, eax
imul edx, edx, 0x19
inc ebx
add ecx, 0x58
lea esi, [edx + 0x19]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ecx
cmp ebx, esi
jl 0x10017ee0
fld1
sub esp, 0x10
fstp dword [esp + 0xc]
mov ecx, 0x790b50
fld dword [0x100b7510]
fstp dword [esp + 8]
fld dword [ebp - 8]
fadd qword [0x100b74f8]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
fstp dword [esp + 4]
fld dword [ebp - 0x14]
fstp dword [esp]
push 0x11760
call ecx
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret