Function at 0x1003c740
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x1017f064]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x38]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x38]
lea ecx, [ebp - 0x34]
call fcn.10028060
add esp, 4
cmp byte [0x10182c7a], 0
je 0x1003cdc3
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0
call fcn.10029060
push dword [0x10182e64]
call fcn.100395b0
add esp, 4
test al, al
jne 0x1003c8c7
mov edx, 0x10182e64
mov byte [0x10182c32], al
mov byte [0x101829ee], al
call fcn.10039470
push dword [0x10182e64]
mov cl, 1
call fcn.10028fb0
push dword [0x10182e64]
call fcn.100398f0
mov edx, 1
mov ecx, edx
call fcn.1003a460
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x38]
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.10039650
movq xmm0, qword [ebp - 0x10]
mov eax, dword [ebp - 8]
push dword [0x10182e64]
movss xmm3, dword [ebp - 8]
movss xmm2, dword [ebp - 0xc]
movss xmm1, dword [ebp - 0x10]
movq qword [0x10182c48], xmm0
mov dword [0x10182c50], eax
call fcn.10029100
add esp, 0x14
call fcn.10025be0
xor dl, dl
mov ecx, eax
call fcn.10025db0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1003c868
push eax
xor cl, cl
call fcn.1002a970
push dword [ebp - 0x34]
mov cl, 1
call fcn.10027fb0
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
xor cl, cl
call fcn.1002a820
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
mov cl, 1
call fcn.100265e0
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
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.10039700
push dword [0x10182e64]
movss xmm3, dword [ebp - 0x20]
movss xmm2, dword [ebp - 0x24]
movss xmm1, dword [ebp - 0x28]
call fcn.100291b0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x44]
call fcn.1003e430
movss xmm0, dword [0x10176e50]
add esp, 0x18
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
movss dword [ebp - 0x30], xmm0
push 0xa0
call edi
test ax, ax
jns 0x1003c941
movss xmm0, dword [0x10176f60]
mov byte [0x10182b31], 0
movss dword [ebp - 0x30], xmm0
jmp 0x1003c948
mov byte [0x10182b31], 1
push 0x57
call edi
xorps xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
test ax, ax
jns 0x1003c962
mov byte [0x10182a9f], 0
jmp 0x1003c97d
cmp dword [ebp - 0x44], 0
mov byte [0x10182a9f], 1
jne 0x1003ca80
cmp dword [ebp - 0x48], 0xffffff81
jne 0x1003ca80
mov esi, dword [0x10182e64]
push esi
mov dword [0x10182c50], 0
mov dword [0x10182c4c], 0
mov dword [0x10182c48], 0
call fcn.100397b0
add esp, 4
test al, al
je 0x1003ca57
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.10039700
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.10039650
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.10039e00
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
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 [0x10182c48], xmm1
call fcn.10039cc0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
mulss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [0x10182c4c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039e00
mulss xmm0, dword [ebp - 0x30]
addss xmm0, dword [ebp - 0x14]
movss dword [0x10182c50], xmm0
jmp 0x1003ca5f
movss xmm0, dword [0x10182c50]
push dword [0x10182e64]
movss xmm2, dword [0x10182c4c]
movaps xmm3, xmm0
movss xmm1, dword [0x10182c48]
call fcn.10029100
add esp, 4
push 0x53
call edi
test ax, ax
jns 0x1003ca92
mov byte [0x10182a97], 0
jmp 0x1003caad
cmp dword [ebp - 0x44], 0
mov byte [0x10182a97], 1
jne 0x1003cbc2
cmp dword [ebp - 0x48], 0x7f
jne 0x1003cbc2
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x10177188]
mov esi, dword [0x10182e64]
push esi
mov dword [0x10182c50], 0
movss dword [ebp - 0x30], xmm0
mov dword [0x10182c4c], 0
mov dword [0x10182c48], 0
call fcn.100397b0
add esp, 4
test al, al
je 0x1003cb99
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.10039700
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.10039650
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.10039e00
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
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 [0x10182c48], xmm1
call fcn.10039cc0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
mulss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [0x10182c4c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039e00
mulss xmm0, dword [ebp - 0x30]
addss xmm0, dword [ebp - 0x14]
movss dword [0x10182c50], xmm0
jmp 0x1003cba1
movss xmm0, dword [0x10182c50]
push dword [0x10182e64]
movss xmm2, dword [0x10182c4c]
movaps xmm3, xmm0
movss xmm1, dword [0x10182c48]
call fcn.10029100
add esp, 4
cmp dword [ebp - 0x34], 0
xorps xmm0, xmm0
mov esi, dword [0x10182e64]
push esi
je 0x1003ccc3
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x3c], xmm0
call fcn.100397b0
add esp, 4
test al, al
je 0x1003cc90
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.10039700
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.10039650
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.10039e00
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
mulss xmm0, dword [0x10176fcc]
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.10039cc0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
mulss xmm0, dword [0x10176fcc]
mulss xmm0, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039e00
mulss xmm0, dword [0x10176fcc]
addss xmm0, dword [ebp - 0x14]
jmp 0x1003cc93
xorps xmm0, xmm0
subss xmm0, dword [0x10176f50]
push dword [ebp - 0x34]
movss xmm2, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x3c]
movaps xmm3, xmm0
call fcn.1003dfb0
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x2c], xmm0
call fcn.100397b0
add esp, 4
test al, al
je 0x1003cd74
lea eax, [ebp - 8]
push eax
push esi
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.10039700
lea eax, [ebp - 0x14]
push eax
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.10039650
movss xmm0, dword [ebp - 8]
add esp, 0x10
call fcn.10039e00
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
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.10039cc0
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x10]
call fcn.10039cc0
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.10039e00
addss xmm0, xmm0
addss xmm0, dword [ebp - 0x14]
movss dword [ebp - 0x3c], xmm0
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
movss xmm3, dword [ebp - 0x3c]
subss xmm3, dword [0x10176f50]
push dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x40]
movss xmm1, dword [ebp - 0x2c]
call fcn.100274b0
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
push dword [0x10182e64]
call fcn.100395b0
add esp, 4
test al, al
je 0x1003ccb5
push dword [0x10182e64]
call fcn.10039510
add esp, 4
xor edx, edx
xor ecx, ecx
call fcn.1003a460
call fcn.10025be0
mov dl, 1
mov ecx, eax
call fcn.10025db0
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1003ce28
push eax
mov cl, 1
call fcn.1002a970
push dword [ebp - 0x34]
xor cl, cl
call fcn.10027fb0
add esp, 8
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x2c], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x2c]
mov cl, 1
call fcn.1002a820
mov dword [ebp - 0x2c], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x2c]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x2c]
xor cl, cl
call fcn.100265e0
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret