Function at 0x1003eef0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x10184080]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x38]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x38]
lea ecx, [ebp - 0x34]
call fcn.100289b0
add esp, 4
cmp byte [0x1018811e], 0
je 0x1003f573
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0
call fcn.10029e60
push dword [0x1018832c]
call fcn.1003b650
add esp, 4
test al, al
jne 0x1003f077
mov edx, 0x1018832c
mov byte [0x101880cb], al
mov byte [0x10187e7b], al
call fcn.1003b510
push dword [0x1018832c]
mov cl, 1
call fcn.10029db0
push dword [0x1018832c]
call fcn.1003b990
mov edx, 1
mov ecx, edx
call fcn.1003c4f0
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x38]
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003b6f0
movq xmm0, qword [ebp - 0x10]
mov eax, dword [ebp - 8]
push dword [0x1018832c]
movss xmm3, dword [ebp - 8]
movss xmm2, dword [ebp - 0xc]
movss xmm1, dword [ebp - 0x10]
movq qword [0x101880e8], xmm0
mov dword [0x101880f0], eax
call fcn.10029f00
add esp, 0x14
call fcn.100261e0
xor dl, dl
mov ecx, eax
call fcn.100263b0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1003f018
push eax
xor cl, cl
call fcn.1002bb30
push dword [ebp - 0x34]
mov cl, 1
call fcn.10028900
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x30], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x30]
xor cl, cl
call fcn.1002b9e0
mov dword [ebp - 0x30], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x30]
mov cl, 1
call fcn.10026b40
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret
push esi
push edi
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x38]
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x28]
call fcn.1003b7a0
push dword [0x1018832c]
movss xmm3, dword [ebp - 0x20]
movss xmm2, dword [ebp - 0x24]
movss xmm1, dword [ebp - 0x28]
call fcn.10029fb0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x44]
call fcn.10040d00
movss xmm0, dword [0x1017c0b8]
add esp, 0x18
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
movss dword [ebp - 0x30], xmm0
push 0xa0
call edi
test ax, ax
jns 0x1003f0f1
movss xmm0, dword [0x1017c1c4]
mov byte [0x10187fc9], 0
movss dword [ebp - 0x30], xmm0
jmp 0x1003f0f8
mov byte [0x10187fc9], 1
push 0x57
call edi
xorps xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
test ax, ax
jns 0x1003f112
mov byte [0x10187f37], 0
jmp 0x1003f12d
cmp dword [ebp - 0x44], 0
mov byte [0x10187f37], 1
jne 0x1003f230
cmp dword [ebp - 0x48], 0xffffff81
jne 0x1003f230
mov esi, dword [0x1018832c]
push esi
mov dword [0x101880f0], 0
mov dword [0x101880ec], 0
mov dword [0x101880e8], 0
call fcn.1003b850
add esp, 4
test al, al
je 0x1003f207
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003b7a0
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.1003b6f0
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.1003bf30
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x1c]
mulss xmm0, dword [ebp - 0x2c]
subss xmm1, xmm0
movss xmm0, dword [ebp - 8]
movss dword [0x101880e8], xmm1
call fcn.1003bdf0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [0x101880ec], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bf30
mulss xmm0, dword [ebp - 0x30]
addss xmm0, dword [ebp - 0x14]
movss dword [0x101880f0], xmm0
jmp 0x1003f20f
movss xmm0, dword [0x101880f0]
push dword [0x1018832c]
movss xmm2, dword [0x101880ec]
movaps xmm3, xmm0
movss xmm1, dword [0x101880e8]
call fcn.10029f00
add esp, 4
push 0x53
call edi
test ax, ax
jns 0x1003f242
mov byte [0x10187f2f], 0
jmp 0x1003f25d
cmp dword [ebp - 0x44], 0
mov byte [0x10187f2f], 1
jne 0x1003f372
cmp dword [ebp - 0x48], 0x7f
jne 0x1003f372
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x1017c28c]
mov esi, dword [0x1018832c]
push esi
mov dword [0x101880f0], 0
movss dword [ebp - 0x30], xmm0
mov dword [0x101880ec], 0
mov dword [0x101880e8], 0
call fcn.1003b850
add esp, 4
test al, al
je 0x1003f349
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003b7a0
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.1003b6f0
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.1003bf30
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x1c]
mulss xmm0, dword [ebp - 0x2c]
subss xmm1, xmm0
movss xmm0, dword [ebp - 8]
movss dword [0x101880e8], xmm1
call fcn.1003bdf0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [0x101880ec], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bf30
mulss xmm0, dword [ebp - 0x30]
addss xmm0, dword [ebp - 0x14]
movss dword [0x101880f0], xmm0
jmp 0x1003f351
movss xmm0, dword [0x101880f0]
push dword [0x1018832c]
movss xmm2, dword [0x101880ec]
movaps xmm3, xmm0
movss xmm1, dword [0x101880e8]
call fcn.10029f00
add esp, 4
cmp dword [ebp - 0x34], 0
xorps xmm0, xmm0
mov esi, dword [0x1018832c]
push esi
je 0x1003f473
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x3c], xmm0
call fcn.1003b850
add esp, 4
test al, al
je 0x1003f440
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003b7a0
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.1003b6f0
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.1003bf30
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [0x1017c204]
movss xmm1, dword [ebp - 0x1c]
mulss xmm0, dword [ebp - 0x2c]
subss xmm1, xmm0
movss xmm0, dword [ebp - 8]
movss dword [ebp - 0x3c], xmm1
call fcn.1003bdf0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
mulss xmm0, dword [0x1017c204]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bf30
mulss xmm0, dword [0x1017c204]
addss xmm0, dword [ebp - 0x14]
jmp 0x1003f443
xorps xmm0, xmm0
subss xmm0, dword [0x1017c1b4]
push dword [ebp - 0x34]
movss xmm2, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x3c]
movaps xmm3, xmm0
call fcn.10040880
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x2c], xmm0
call fcn.1003b850
add esp, 4
test al, al
je 0x1003f524
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003b7a0
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.1003b6f0
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.1003bf30
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
movss xmm1, dword [ebp - 0x1c]
addss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2c]
subss xmm1, xmm0
movss xmm0, dword [ebp - 8]
movss dword [ebp - 0x2c], xmm1
call fcn.1003bdf0
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bdf0
addss xmm0, xmm0
mulss xmm0, dword [ebp - 0x40]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.1003bf30
addss xmm0, xmm0
addss xmm0, dword [ebp - 0x14]
movss dword [ebp - 0x3c], xmm0
mov dword [ebp - 0x30], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003fc90
movss xmm3, dword [ebp - 0x3c]
subss xmm3, dword [0x1017c1b4]
push dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x40]
movss xmm1, dword [ebp - 0x2c]
call fcn.10027b50
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret
push dword [0x1018832c]
call fcn.1003b650
add esp, 4
test al, al
je 0x1003f465
push dword [0x1018832c]
call fcn.1003b5b0
add esp, 4
xor edx, edx
xor ecx, ecx
call fcn.1003c4f0
call fcn.100261e0
mov dl, 1
mov ecx, eax
call fcn.100263b0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1003f5d8
push eax
mov cl, 1
call fcn.1002bb30
push dword [ebp - 0x34]
xor cl, cl
call fcn.10028900
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x2c], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x2c]
mov cl, 1
call fcn.1002b9e0
mov dword [ebp - 0x2c], 0
call fcn.100261e0
mov ecx, eax
call fcn.1003fbf0
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.1003fc90
push dword [ebp - 0x2c]
xor cl, cl
call fcn.10026b40
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
call fcn.1004ca58
mov esp, ebp
pop ebp
ret