Function at 0x1007fa70
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
cmp dword [0x1147845c], 0
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x20], ebx
je 0x100804c4
push 0x39
mov esi, 0x861110
call esi
mov edi, 0x85ec20
mov ecx, eax
call edi
test al, al
jne 0x100804c4
push 0x41
call esi
mov ecx, eax
call edi
test al, al
jne 0x100804c4
push 2
call esi
mov ecx, eax
call edi
test al, al
jne 0x100804c4
cmp dword [ebx + 0x8368], 0
mov edx, 0x637c60
jle 0x1007fd8b
mov eax, dword [0xe61e18]
cmp eax, dword [ebx + 0x83e8]
jne 0x1007fd8b
mov ecx, dword [0x102e0960]
mov esi, dword [0x102e0964]
mov edi, dword [0x11478280]
push ecx
mov dword [esp], 0
add edi, ecx
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [ebp - 4], esi
mov dword [esp + 0x1c], 0x3f547ae1
mov dword [esp + 0x18], 0x3f6b851f
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x42700000
mov dword [esp + 8], 0x42f00000
movss dword [esp + 4], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0xf091
call edx
add esp, 0x30
add esi, 5
mov ecx, 0x101c4a28
mov dword [ebp - 0xc], esi
add edi, 0xa
push 0x17a
call fcn.10043140
push eax
push 1
push 0x50
push esi
push edi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov eax, dword [ebx + 0x83ec]
lea esi, [edi + 0x50]
add esp, 0x1c
test eax, eax
jle 0x1007fbbf
push eax
push str._d__
push 1
push 0x28
push dword [ebp - 0xc]
push esi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
mov eax, dword [ebp - 4]
mov ecx, 0x101c4a28
add eax, 0xf
push 0x17c
mov dword [ebp - 8], eax
call fcn.10043140
push eax
push 1
push 0x78
push dword [ebp - 8]
push edi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov eax, dword [ebx + 0x83f0]
add esp, 0x1c
test eax, eax
jle 0x1007fc1c
push eax
push str._d__
push 1
push 0x28
push dword [ebp - 8]
push esi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
mov eax, dword [ebp - 4]
mov ecx, 0x101c4a28
add eax, 0x19
push 0x17b
mov dword [ebp - 8], eax
call fcn.10043140
push eax
push 1
push 0x50
push dword [ebp - 8]
push edi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov eax, dword [ebx + 0x83f4]
add esp, 0x1c
test eax, eax
jle 0x1007fc7b
push eax
push str.1__d
push 1
push 0x28
push dword [ebp - 8]
push esi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
jmp 0x1007fc9a
push 0x101011b8
push 1
push 0x28
push dword [ebp - 8]
push esi
push 0xff2d5fe1
push 0x102bb6b0
call fcn.100798d0
add esp, 0x1c
mov eax, dword [ebp - 4]
mov ecx, 0x101c4a28
add eax, 0x23
push 0x17d
mov dword [ebp - 8], eax
call fcn.10043140
push eax
push 1
push 0x50
push dword [ebp - 8]
push edi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov eax, dword [ebx + 0x83f8]
add esp, 0x1c
test eax, eax
jle 0x1007fcf9
push eax
push str.1__d
push 1
push 0x28
push dword [ebp - 8]
push esi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
jmp 0x1007fd18
push 0x101011b8
push 1
push 0x28
push dword [ebp - 8]
push esi
push 0xff2d5fe1
push 0x102bb6b0
call fcn.100798d0
add esp, 0x1c
mov esi, dword [ebp - 4]
mov ecx, 0x101c4a28
push 0x182
add esi, 0x2d
call fcn.10043140
push eax
push 1
push 0x50
push esi
push edi
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov ecx, dword [ebx + 0x83fc]
add esp, 0x1c
test ecx, ecx
mov edx, 0x101011bc
mov eax, 0x101011b8
cmovg eax, edx
mov edx, 0xff2d5fe1
push eax
push 1
push 0x28
push esi
lea eax, [edi + 0x50]
push eax
mov eax, 0xff77df01
cmovle eax, edx
push eax
push 0x102bb6b0
call fcn.100798d0
add esp, 0x1c
mov edx, 0x637c60
dec dword [ebx + 0x8368]
mov eax, dword [ebx + 0x836c]
test eax, eax
js 0x100804c4
cmp eax, dword [0xe61e18]
jne 0x100804c4
mov esi, dword [0x102e0948]
mov edi, dword [0x102e0944]
push ecx
mov dword [esp], 0
push 1
push 1
sub esp, 0x20
mov dword [ebp - 8], edi
lea eax, [esi - 0x24]
mov dword [ebp - 0xc], esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f400000
mov dword [esp + 0x18], 0x3f6b851f
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x42200000
mov dword [esp + 8], 0x42480000
movss dword [esp + 4], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x10], eax
movss dword [esp], xmm0
push 0xf091
call edx
mov dword [esp + 0x2c], 0
add esp, 0x2c
add esi, 0xffffffd8
add edi, 0x26
mov eax, 0x637c60
push 1
push 1
sub esp, 0x20
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f000000
mov dword [esp + 0x18], 0x3f000000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x41800000
movss dword [esp + 4], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0x7ec5
call eax
push 0x10
push 0x10
push esi
push edi
mov eax, 0x790b10
call eax
add esp, 0x40
cmp al, 1
jne 0x1007feb4
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1007feb4
mov dword [ebx + 0x836c], 0xffffffff
mov ecx, ebx
call fcn.1007f870
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
push ecx
mov dword [esp], 0
push 1
push 1
sub esp, 0x20
lea eax, [edi - 0x1e]
movd xmm0, eax
lea eax, [esi + 0xa]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41f00000
mov dword [esp + 8], 0x41f00000
movss dword [esp + 4], xmm0
movd xmm0, eax
mov eax, 0x637c60
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0xf092
call eax
mov dword [esp + 0x2c], 0
lea eax, [edi + 4]
add esp, 0x2c
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lea eax, [esi - 3]
push 1
push 1
sub esp, 0x20
mov dword [esp + 0x1c], 0x3f666666
mov dword [esp + 0x18], 0x3f800000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x41500000
mov dword [esp + 8], 0x42600000
movss dword [esp + 4], xmm0
movd xmm0, eax
mov eax, 0x637c60
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push 0x7a0c
call eax
add esp, 0x30
mov eax, 0x41fe10
push dword [0xe8c58c]
call eax
mov edx, 0x420120
mov ecx, eax
call edx
push 0xff
push 0xff
push 0
push 0xd9
mov eax, 0x41fe10
call eax
mov edx, 0x420040
mov ecx, eax
call edx
push 0
push 3
push 0
lea eax, [ebx + 0x8370]
push 0x32
push eax
mov dword [ebp - 0x1c], eax
lea eax, [edi + 7]
push eax
lea eax, [esi + 1]
push eax
mov eax, 0x41fe10
call eax
mov edx, 0x420150
mov ecx, eax
call edx
xor eax, eax
cmp dword [ebx + 0x83d0], eax
mov esi, dword [0x102e0950]
setg al
mov edi, dword [0x102e094c]
add eax, 7
mov dword [ebp - 0xc], edi
cmp dword [ebx + 0x83d8], 0
push 0x32
push 0x32
push dword [ebp - 0x10]
lea ecx, [eax + 1]
mov dword [ebp - 4], esi
push dword [ebp - 8]
cmovle ecx, eax
mov dword [ebp - 0x24], esi
cmp dword [ebx + 0x83d4], 0
lea eax, [ecx + 1]
cmovle eax, ecx
cmp dword [ebx + 0x83dc], 0
lea ecx, [eax + 1]
cmovle ecx, eax
mov eax, dword [ebx + 0x83e0]
mov dword [ebp - 0x18], eax
mov eax, 0x790b10
mov dword [ebp - 0x14], ecx
call eax
add esp, 0x10
cmp al, 1
jne 0x100804c4
push 1
mov eax, 0x635fd0
call eax
mov ebx, dword [sym.imp.OPENGL32.dll_glColor4f]
mov dword [esp], 0x3f4ccccd
sub esp, 0xc
mov dword [esp + 8], 0x3f000000
mov dword [esp + 4], 0x3f000000
mov dword [esp], 0x3f000000
call ebx
movd xmm1, edi
add esi, 0xfffffffd
cvtdq2ps xmm1, xmm1
push 0
sub esp, 0x14
mov eax, 0x6378a0
movd xmm0, esi
subss xmm1, dword [0x101026dc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x430d0000
movss dword [ebp - 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call eax
mov ecx, dword [ebp - 0x14]
add esp, 0x18
cmp dword [ebp - 0x18], 0
lea eax, [ecx + 1]
cmovle eax, ecx
imul edi, eax, 0xb
mov eax, 0x6378a0
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm0, dword [0x10102a58]
movss dword [esp + 0xc], xmm0
movss dword [ebp - 0x18], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 8]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x18]
add esp, 0x18
mov esi, dword [ebp - 4]
mov eax, 0x6378a0
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x3f800000
subss xmm0, dword [0x10102a58]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 8]
addss xmm0, dword [0x101030a8]
addss xmm0, dword [0x101026dc]
movss dword [esp], xmm0
call eax
add esp, 0x18
lea eax, [edi + esi]
movd xmm0, eax
mov esi, 0x6378a0
cvtdq2ps xmm0, xmm0
push 0
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x430e0000
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 8]
movss dword [esp], xmm0
call esi
add esp, 8
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call ebx
movd xmm0, edi
mov edi, dword [ebp - 4]
cvtdq2ps xmm0, xmm0
push 0
sub esp, 0x14
lea eax, [edi - 2]
addss xmm0, dword [0x10102918]
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], 0x430c0000
movss dword [esp + 4], xmm0
movd xmm0, dword [ebp - 0xc]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call esi
mov eax, 0x636070
call eax
add esp, 8
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
push 0
mov eax, 0x635fd0
call eax
mov dword [esp], 0x3f800000
sub esp, 0xc
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call ebx
push dword [ebp - 0x1c]
mov ecx, 0x101c4a28
push 0x17f
call fcn.10043140
mov ebx, dword [ebp - 0xc]
push eax
push 3
push 0x8c
lea eax, [edi + 2]
push eax
push ebx
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
mov ecx, 0x101c4a28
push 0x179
call fcn.10043140
push eax
push 3
push 0x8c
lea eax, [edi + 0x16]
push eax
push ebx
push 0xff19bdff
push 0x102bb6b0
call fcn.100798d0
mov esi, dword [ebp - 0x20]
add esp, 0x1c
add edi, 0x28
mov eax, dword [esi + 0x83d0]
test eax, eax
jle 0x1008035d
push eax
push 0x17a
mov ecx, 0x101c4a28
call fcn.10043140
mov edi, dword [ebp - 0x24]
push eax
push str._s__d__
push 3
push 0x8c
lea eax, [edi + 0x2a]
push eax
push ebx
push 0xff8be100
push 0x102bb6b0
call fcn.100798d0
add esp, 0x24
add edi, 0x32
mov eax, dword [esi + 0x83d8]
test eax, eax
jle 0x1008039e
push eax
push 0x17b
mov ecx, 0x101c4a28
call fcn.10043140
push eax
push str._s__d__
push 3
push 0x8c
lea eax, [edi + 2]
push eax
push ebx
push 0xff8be100
push 0x102bb6b0
call fcn.100798d0
add esp, 0x24
add edi, 0xa
mov eax, dword [esi + 0x83d4]
test eax, eax
jle 0x100803df
push eax
push 0x17c
mov ecx, 0x101c4a28
call fcn.10043140
push eax
push str._s__d__
push 3
push 0x8c
lea eax, [edi + 2]
push eax
push ebx
push 0xff8be100
push 0x102bb6b0
call fcn.100798d0
add esp, 0x24
add edi, 0xa
mov eax, dword [esi + 0x83dc]
test eax, eax
jle 0x10080420
push eax
push 0x17d
mov ecx, 0x101c4a28
call fcn.10043140
push eax
push str._s__d__
push 3
push 0x8c
lea eax, [edi + 2]
push eax
push ebx
push 0xff8be100
push 0x102bb6b0
call fcn.100798d0
add esp, 0x24
add edi, 0xa
mov eax, dword [esi + 0x83e0]
test eax, eax
jle 0x10080461
push eax
push 0x17e
mov ecx, 0x101c4a28
call fcn.10043140
push eax
push str._s__d__
push 3
push 0x8c
lea eax, [edi + 2]
push eax
push ebx
push 0xff8be100
push 0x102bb6b0
call fcn.100798d0
add esp, 0x24
add edi, 0xa
lea eax, [esi + 0x83b9]
mov ecx, 0x101c4a28
push eax
push 0x180
call fcn.10043140
push eax
push 3
push 0x8c
lea eax, [edi + 0xc]
push eax
push ebx
push 0xffffffffffffffff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
mov ecx, 0x101c4a28
push dword [esi + 0x83e4]
push 0x181
call fcn.10043140
push eax
push 3
push 0x8c
lea eax, [edi + 0x16]
push eax
push ebx
push 0xffffffffffffffff
push 0x102bb6b0
call fcn.100798d0
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret