Function at 0x10045339
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
sub esp, 0x38
mov eax, 0x10070a4d
call fcn.1004a31c
sub esp, 0x37c
call fcn.10029a0a
test eax, eax
jne 0x100456cf
cmp dword [0x101898a0], eax
je 0x100456cf
cmp dword [0x1017571c], eax
je 0x100456cf
cmp dword [0x10175720], eax
je 0x100456cf
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1004539b
cmp dword [0x10158f8f], 0
jne 0x100456ce
mov eax, dword [0x10175734]
push edi
xor edi, edi
cmp dword [eax], edi
jne 0x100456cd
push 0x79
call esi
test ax, ax
js 0x100456cd
cmp dword [0x101898b4], edi
je 0x100456cd
push dword [0x101898bc]
call fcn.10029cae
pop ecx
test eax, eax
jne 0x100456cd
call fcn.10029a0a
test eax, eax
jne 0x100456cd
cmp dword [0x101898a0], edi
je 0x100456cd
cmp dword [0x1017571c], edi
je 0x100456cd
cmp dword [0x10175720], edi
je 0x100456cd
push 9
call esi
test ax, ax
jns 0x1004541e
cmp dword [0x10158f8f], edi
jne 0x100456cd
mov eax, dword [0x10175734]
cmp dword [eax], edi
jne 0x100456cd
push 0x79
call esi
test ax, ax
js 0x100456cd
cmp dword [0x101898b4], edi
je 0x100456cd
push dword [0x101898bc]
call fcn.10029cae
pop ecx
test eax, eax
jne 0x100456cd
lea ecx, [ebp - 0x388]
call fcn.1000170d
mov eax, dword [0x10154014]
mov dword [ebp - 4], edi
cmp dword [eax + 0xdc], edi
je 0x100456c2
push ebx
xor ebx, ebx
inc ebx
push ebx
call fcn.1003cfc9
pop ecx
test eax, eax
je 0x100456c1
call fcn.100418cd
mov eax, dword [0x10154014]
cmp dword [eax + 0x8981], 0x7d0
jl 0x100454ab
mov dword [eax + 0x8981], edi
mov eax, dword [0x10154014]
push edi
push dword [eax + 0x8981]
call fcn.1002bd24
push 0x3f
lea eax, [ebp - 0x4c]
push edi
push eax
call fcn.1004c720
mov ecx, dword [0x10175720]
mov eax, dword [ecx + 0x1e]
movss xmm0, dword [eax + 0xc6]
movss dword [ebp - 0x1c], xmm0
mov eax, dword [ecx + 0x1e]
mov ax, word [eax + 0x96]
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
call fcn.1003d7aa
mov ecx, dword [0x10175720]
add esp, 0x1c
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
cvttss2si eax, dword [eax + 0x540]
mov byte [ebp - 0x18], al
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
cvttss2si eax, dword [eax + 0x548]
mov byte [ebp - 0x17], al
mov eax, dword [0x10154014]
mov ax, word [eax + 0x8981]
mov word [ebp - 0x13], ax
mov eax, dword [ecx + 0x1e]
movss xmm0, dword [eax + 0xba]
movss dword [ebp - 0x28], xmm0
mov eax, dword [ecx + 0x1e]
lea ecx, [ebp - 0x274]
movss xmm0, dword [eax + 0xbe]
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0x20], 0x3dcccccd
call fcn.1000170d
push ebx
push 8
lea eax, [ebp + 0x38]
mov byte [ebp - 4], bl
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp + 0x38], 0xc8
call fcn.10001930
push 0x3f
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x274]
call fcn.100018df
mov ecx, dword [0x10175700]
lea eax, [ebp - 0x274]
push edi
push 7
push ebx
push eax
call fcn.1003dd79
mov eax, dword [0x10154014]
xorps xmm0, xmm0
movlpd qword [ebp + 0xe], xmm0
movlpd qword [ebp + 0x2a], xmm0
mov dword [ebp + 0x16], edi
mov ax, word [eax + 0x8981]
mov word [ebp], ax
mov eax, dword [0x100c9e18]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x1007c488]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp + 2], xmm0
movss xmm0, dword [eax + 0x14]
lea ecx, [ebp - 0x160]
mulss xmm0, dword [0x100829b0]
movss xmm1, dword [0x100829b4]
addss xmm0, dword [ebp - 0x30]
movss dword [ebp + 6], xmm0
movss xmm0, dword [eax + 0x18]
addss xmm0, xmm0
mov dword [ebp + 0x1a], 0x3f800000
mov dword [ebp + 0x32], 0x3c23d70a
addss xmm0, dword [ebp - 0x2c]
movss dword [ebp + 0xa], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, xmm1
movss dword [ebp + 0x1e], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, xmm1
movss dword [ebp + 0x22], xmm0
movss xmm0, dword [eax + 0x18]
mulss xmm0, xmm1
movss dword [ebp + 0x26], xmm0
call fcn.1000170d
push ebx
push 8
lea eax, [ebp + 0x38]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x160]
mov byte [ebp + 0x38], 0xd2
call fcn.10001930
push 0x36
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x160]
call fcn.100018df
mov ecx, dword [0x10175700]
lea eax, [ebp - 0x160]
push edi
push 7
push ebx
push eax
call fcn.1003dd79
lea ecx, [ebp - 0x160]
call fcn.10001728
lea ecx, [ebp - 0x274]
call fcn.10001728
pop ebx
lea ecx, [ebp - 0x388]
call fcn.10001728
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
add ebp, 0x3c
leave
ret