Function at 0x10057496
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x1015c858]
sub esp, 0xbc
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp dword [eax + 0x105], ebx
je 0x10057a8d
cmp dword [eax + 0x3e], ebx
je 0x10057a8d
cmp dword [eax + 0x4a], 0xffffffff
je 0x10057a8d
cmp dword [eax + 0x2649b], ebx
jne 0x10057a8d
call fcn.1002b13b
test eax, eax
jne 0x10057a8d
cmp dword [0x101b9788], ebx
je 0x10057a8d
cmp dword [0x101a5538], ebx
je 0x10057a8d
cmp dword [0x101a553c], ebx
je 0x10057a8d
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1005751e
cmp dword [0x10188da7], ebx
jne 0x10057a8d
mov eax, dword [0x101a5550]
cmp dword [eax], ebx
jne 0x10057a8d
push 0x79
call esi
test ax, ax
js 0x10057a8d
cmp dword [0x101b979c], ebx
je 0x10057a8d
push dword [0x101b97a4]
call fcn.1002b3df
pop ecx
test eax, eax
jne 0x10057a8d
mov eax, dword [0x1015c858]
push dword [eax + 0x4a]
call fcn.100410d0
push ebx
push 0xffffffffffffffff
mov esi, eax
call fcn.1002ad9c
add esp, 0xc
test esi, esi
je 0x10057a8d
cmp eax, esi
je 0x10057a8d
mov ecx, dword [0x101b979c]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebp, eax
test ebp, ebp
je 0x10057a8d
mov ecx, dword [0x101228a0]
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov esi, eax
mov ecx, esi
mov edi, dword [esi]
call dword [edi + 0x28]
movzx ecx, al
push ecx
mov ecx, esi
call dword [edi + 0x2c]
xor ebx, ebx
inc ebx
cmp ebx, 1
jl 0x100575c8
cmp ebx, 8
jle 0x100575f2
cmp ebx, 0x15
jl 0x100575d2
cmp ebx, 0x1a
jle 0x100575f2
cmp ebx, 0x1f
jl 0x100575dc
cmp ebx, 0x24
jle 0x100575f2
cmp ebx, 0x29
jl 0x100575e6
cmp ebx, 0x2c
jle 0x100575f2
lea eax, [ebx - 0x33]
cmp eax, 3
ja 0x10057a83
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
and dword [esp + 0x10], 0
and dword [esp + 0x14], 0
and dword [esp + 0x18], 0
and dword [esp + 0x1c], 0
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
push ecx
push 8
mov ecx, ebp
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
push 0x2c
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x10]
lea eax, [esp + 0x30]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x20]
push eax
movss dword [esp + 0x68], xmm0
lea eax, [esp + 0x58]
movss xmm0, dword [esp + 0x28]
push eax
movss dword [esp + 0x70], xmm0
call fcn.10043dfe
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10043dfe
movss xmm0, dword [0x1008334c]
add esp, 0x10
comiss xmm0, dword [esp + 0x38]
ja 0x10057a8d
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x74]
ja 0x10057a8d
movss xmm0, dword [esp + 0x34]
lea edx, [esp + 0x48]
subss xmm0, dword [esp + 0x70]
mov ecx, dword [0x101b97a4]
and dword [esp + 0x48], 0
and dword [esp + 0x4c], 0
and dword [esp + 0x50], 0
cvtps2pd xmm2, xmm0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
mov eax, dword [ecx]
push edx
movss xmm0, dword [esp + 0x34]
subss xmm0, dword [esp + 0x70]
mulsd xmm2, xmm2
push 1
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x1009485c]
movss dword [esp + 0x30], xmm0
mulss xmm0, dword [0x10083378]
movss dword [esp + 0x34], xmm0
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x3c]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x28]
movss xmm1, dword [esp + 0x34]
mov ecx, dword [0x101ad30c]
push 0
push 0xff009bff
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esp + 8], xmm0
mulss xmm0, dword [0x10083378]
movss dword [esp + 4], xmm1
movss xmm1, dword [esp + 0x48]
subss xmm1, xmm0
movss dword [esp], xmm1
call fcn.1004228b
mov ecx, dword [0x1015c858]
cmp dword [ecx + 0x101], 0
je 0x100577fb
push 0xff009bff
sub esp, 0xc
lea esi, [esp + 0x4c]
mov edi, esp
lea eax, [esp + 0xc4]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002a6b9
add esp, 0x10
lea esi, [esp + 0x4c]
push eax
sub esp, 0xc
lea eax, [esp + 0xd4]
mov edi, esp
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002a6b9
mov ecx, dword [0x101ad30c]
add esp, 0x10
push eax
call fcn.100427fb
mov ecx, dword [0x1015c858]
cmp byte [ecx + 0x253f2], 0
je 0x1005797c
mov eax, dword [0x101a553c]
mov eax, dword [eax + 0x1e]
cmp byte [eax + 0x18d], 0x22
mov eax, dword [0x101ad2c0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
je 0x1005786d
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100833d0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008337c]
movss dword [ecx + 0x111], xmm0
mov eax, dword [0x101ad2c4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100833d0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1008336c]
jmp 0x100578b2
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100833d0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10083378]
movss dword [ecx + 0x111], xmm0
mov eax, dword [0x101ad2c4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100833d0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10083378]
mov eax, dword [0x1015c858]
movss dword [eax + 0x115], xmm0
mov edx, dword [0x1015c858]
mov eax, dword [edx + 0x253e5]
mov dword [edx + 0x25402], eax
mov esi, dword [0x1015c858]
mov eax, dword [esi + 0x253e9]
mov dword [esi + 0x25406], eax
mov ecx, dword [0x1015c858]
cmp byte [ecx + 0x253f1], 1
jne 0x1005797c
movss xmm0, dword [edx + 0x253e5]
lea eax, [esp + 0xa8]
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esi + 0x253e9]
push eax
movss dword [esp + 0x80], xmm0
lea eax, [esp + 0x7c]
movss xmm0, dword [ecx + 0x253ed]
push eax
movss dword [esp + 0x88], xmm0
call fcn.10043dfe
cvttss2si eax, dword [esp + 0xb4]
pop ecx
pop ecx
mov ecx, dword [0x1015c858]
push 0xffff0000
push eax
cvttss2si eax, dword [esp + 0xb0]
push eax
cvttss2si eax, dword [ecx + 0x115]
push eax
cvttss2si eax, dword [ecx + 0x111]
mov ecx, dword [0x101ad30c]
push eax
call fcn.100424a8
mov ecx, dword [0x1015c858]
cmp byte [ecx + 0x253fd], 0
je 0x10057a83
mov eax, dword [0x101ad2c4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
xor esi, esi
addsd xmm0, qword [eax*8 + 0x100833d0]
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [ecx + 0x253fe], eax
mov eax, dword [0x1015c858]
cmp dword [eax + esi*4 + 0x1605], 1
jne 0x10057a76
push esi
call fcn.100087e3
pop ecx
test al, al
je 0x10057a76
lea eax, [esp + 0x84]
push eax
push esi
call fcn.10041218
movss xmm0, dword [esp + 0x8c]
lea eax, [esp + 0xa4]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [esp + 0x90]
push eax
movss dword [esp + 0xa0], xmm0
lea eax, [esp + 0x9c]
movss xmm0, dword [esp + 0x98]
push eax
movss dword [esp + 0xa8], xmm0
call fcn.10043dfe
movss xmm0, dword [0x1008334c]
add esp, 0x10
comiss xmm0, dword [esp + 0xa4]
ja 0x10057a76
cvttss2si eax, dword [esp + 0xa0]
push 0xffff0000
mov ecx, dword [0x101ad30c]
push eax
cvttss2si eax, dword [esp + 0xa4]
push eax
mov eax, dword [0x1015c858]
push 0
cvttss2si eax, dword [eax + 0x111]
push eax
call fcn.100424a8
inc esi
cmp esi, 0x3ec
jl 0x100579b2
inc ebx
cmp ebx, 0x36
jle 0x100575be
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret