Function at 0x453780
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x90]
mov edx, dword [esi + 0x88]
mov ecx, dword [esi + 0x94]
cmp edx, eax
jne 0x4537b0
cmp dword [esi + 0x8c], ecx
je 0x453ccf
mov eax, dword [esi + 0x2f0]
xor ebx, ebx
cmp eax, ebx
je 0x453ccf
mov ecx, dword [esi + 0x3c]
mov edi, dword [ebp + 0xc]
cmp eax, 1
mov dword [esp + 0xc], ecx
je 0x453a07
cmp eax, 3
je 0x453a07
cmp eax, 2
jne 0x4538cd
mov eax, 0x3ff00000
mov dword [edi], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 4], eax
mov dword [edi + 0x14], eax
fld qword [esi + 0x19c]
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
jne 0x4538af
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
jne 0x4538c2
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x94]
sub edx, ecx
mov ecx, esi
push edx
call fcn.0044cde0
fdiv qword [esi + 0x19c]
fst qword [edi + 8]
fld st(0)
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
je 0x45384d
fchs
fld qword [0x5e7c38]
fdiv qword [esi + 0x19c]
fcom qword [0x5e80d8]
fst qword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x45386c
fchs
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x453bd0
fcomp qword [0x5e80d8]
fld qword [esp + 0x10]
fnstsw ax
fcom qword [0x5e80d8]
test ah, 1
fnstsw ax
je 0x453bc4
test ah, 1
je 0x453bc9
fchs
fchs
fstp qword [edi + 8]
jmp 0x453bd2
fchs
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
je 0x45381d
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
jmp 0x453bd2
cmp eax, 4
jne 0x4539c2
mov eax, 0x3ff00000
mov dword [edi + 8], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], eax
fld qword [esi + 0x194]
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
jne 0x453997
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
jne 0x4539aa
mov eax, dword [esi + 0x90]
mov edx, dword [esi + 0x170]
sub eax, edx
mov ecx, esi
push eax
call fcn.0044cde0
fdiv qword [esi + 0x194]
fst qword [edi]
fld st(0)
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
je 0x45393e
fchs
fld qword [0x5e7c38]
fdiv qword [esi + 0x194]
fcom qword [0x5e80d8]
fst qword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x45395d
fchs
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x453bd0
fcomp qword [0x5e80d8]
fld qword [esp + 0x10]
fnstsw ax
fcom qword [0x5e80d8]
test ah, 1
fnstsw ax
je 0x4539b4
test ah, 1
je 0x45398e
fchs
fchs
fstp qword [edi]
jmp 0x453bd2
fchs
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
je 0x45390f
mov dword [edi], ebx
mov dword [edi + 4], ebx
jmp 0x453bd2
test ah, 1
je 0x4539bb
fchs
fstp qword [edi]
jmp 0x453bd2
cmp eax, 5
jne 0x453bd2
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x88]
sub ecx, edx
push ecx
mov ecx, esi
call fcn.0044cde0
mov edx, dword [ebp + 0x10]
mov ecx, esi
fstp qword [edx]
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x94]
sub eax, edx
push eax
call fcn.0044cde0
mov ecx, dword [ebp + 0x10]
fstp qword [ecx + 8]
jmp 0x453bd2
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], 0x3ff00000
fld qword [esi + 0x194]
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
jne 0x453aba
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
jne 0x453acd
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x170]
sub edx, ecx
mov ecx, esi
push edx
call fcn.0044cde0
fdiv qword [esi + 0x194]
fst qword [edi]
fld st(0)
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
je 0x453a68
fchs
fld qword [0x5e7c38]
fdiv qword [esi + 0x194]
fcom qword [0x5e80d8]
fst qword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x453a87
fchs
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x453adf
fcomp qword [0x5e80d8]
fld qword [esp + 0x10]
fnstsw ax
fcom qword [0x5e80d8]
test ah, 1
fnstsw ax
je 0x453ad4
test ah, 1
je 0x453ab4
fchs
fchs
fstp qword [edi]
jmp 0x453ae1
fchs
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
je 0x453a39
mov dword [edi], ebx
mov dword [edi + 4], ebx
jmp 0x453ae1
test ah, 1
je 0x453adb
fchs
fstp qword [edi]
jmp 0x453ae1
fstp st(0)
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jge 0x453afe
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
jmp 0x453bd2
fld qword [esi + 0x19c]
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
jne 0x453ba9
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
jne 0x453bbc
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x94]
sub edx, ecx
mov ecx, esi
push edx
call fcn.0044cde0
fdiv qword [esi + 0x19c]
fst qword [edi + 8]
fld st(0)
fcom qword [0x5e80d8]
fnstsw ax
test ah, 1
je 0x453b56
fchs
fld qword [0x5e7c38]
fdiv qword [esi + 0x19c]
fcom qword [0x5e80d8]
fst qword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x453b75
fchs
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x453bd0
fcomp qword [0x5e80d8]
fld qword [esp + 0x10]
fnstsw ax
fcom qword [0x5e80d8]
test ah, 1
fnstsw ax
je 0x453bc4
test ah, 1
je 0x453bc9
fchs
fchs
fstp qword [edi + 8]
jmp 0x453bd2
fchs
fcomp qword [0x5e80b8]
fnstsw ax
test ah, 0x41
je 0x453b26
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
jmp 0x453bd2
test ah, 1
je 0x453bcb
fchs
fstp qword [edi + 8]
jmp 0x453bd2
fstp st(0)
cmp dword [ebp + 8], ebx
jne 0x453ccf
cmp dword [esi + 0x2f0], 5
jae 0x453c72
mov eax, dword [esp + 0xc]
push 1
lea ebx, [esi + 0x178]
push 1
push edi
lea ecx, [eax + 0x58]
push ebx
push ecx
push eax
lea ecx, [eax + 0x614]
call fcn.00479f80
cmp eax, 0xc0000000
je 0x453ccf
fld qword [0x5e7c10]
fsub qword [edi + 8]
fmul qword [esi + 0x180]
fld qword [0x5e7c10]
fsub qword [edi]
fmul qword [ebx]
fld qword [esi + 0x138]
fmul qword [edi]
faddp st(1)
call fcn.00530020
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [esi + 0x138]
fld qword [esi + 0x140]
fmul qword [edi + 8]
fadd st(1)
call fcn.00530020
fstp st(0)
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [esi + 0x140]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 0x10]
push 1
push 1
lea ecx, [eax + 0x58]
push edx
push ecx
push eax
lea ecx, [eax + 0x614]
call fcn.00479ea0
cmp eax, 0xc0000000
je 0x453ccf
mov edi, dword [ebp + 0x10]
fld qword [edi]
call fcn.00530020
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fadd qword [esi + 0x138]
fstp qword [esi + 0x138]
fld qword [edi + 8]
call fcn.00530020
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fadd qword [esi + 0x140]
fstp qword [esi + 0x140]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc