Function at 0x10032f80
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x10187080]
xor eax, ebp
mov dword [ebp - 4], eax
movups xmm0, xmmword [0x1018b190]
push ebx
push esi
push edi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
mov byte [0x1018b217], 1
mov byte [ebp - 5], 0
movups xmmword [ebp - 0x24], xmm0
call fcn.1002d610
test al, al
je 0x10032fc9
mov ecx, dword [0x1018b210]
push 0xc8
call dword [sym.imp.ScriptHook.dll_protected:_void___thiscall_ScriptThread::Wait_unsigned_int_]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x10], ecx
cmp dword [0x1018b1d0], ecx
jne 0x10033008
mov eax, dword [ebp - 0x20]
cmp dword [0x1018b1d4], eax
jne 0x10033008
cmp dword [0x1018b1d8], esi
jne 0x10033008
mov eax, dword [ebp - 0x18]
cmp dword [0x1018b1dc], eax
jne 0x10033008
xor eax, eax
mov edx, 0xff
cmp ecx, 0x7f
cmovle eax, edx
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], 0
call fcn.1002b1c0
cmp byte [0x1018b0f9], 0
je 0x1003303e
call fcn.10027530
mov edx, dword [0x1018b108]
mov ecx, eax
call fcn.10027350
call fcn.10027530
mov ecx, eax
call fcn.100273f0
call fcn.1002c5b0
push dword [ebp - 0x14]
xor cl, cl
call fcn.1002b110
add esp, 4
call fcn.10027530
xor dl, dl
mov ecx, eax
call fcn.10027700
mov cl, byte [0x1018b226]
test cl, cl
je 0x10033071
mov al, byte [0x1018b217]
test al, al
je 0x100330b0
mov dl, byte [ebp - 0x20]
mov cl, byte [ebp - 0x10]
movss xmm3, dword [0x1017e370]
movss xmm2, dword [0x1017e3a0]
movss xmm1, dword [0x1017e3b8]
movss xmm0, dword [0x1017e3c0]
push 0xff
push esi
call fcn.10034cc0
mov al, byte [0x1018b217]
add esp, 8
mov cl, byte [0x1018b226]
test cl, cl
je 0x100330b8
test al, al
je 0x100330f6
movss xmm3, dword [0x1017e35c]
xor dl, dl
movss xmm2, dword [0x1017e390]
xor cl, cl
movss xmm1, dword [0x1017e3b8]
movss xmm0, dword [0x1017e3c0]
push 0xff
push 0
call fcn.10034cc0
mov al, byte [0x1018b217]
add esp, 8
mov cl, byte [0x1018b226]
mov edx, dword [0x1018b1d4]
mov ebx, dword [0x1018b1d0]
mov esi, dword [0x1018b1d8]
mov edi, dword [0x1018b1dc]
mov dword [ebp - 0xc], edx
test cl, cl
je 0x1003311d
test al, al
je 0x100331ab
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0xc]
add esp, 0xc
mov cl, bl
push edi
push esi
call fcn.10034730
movss xmm1, dword [0x1017e438]
add esp, 8
movss xmm0, dword [0x1017e394]
call fcn.100345f0
xor cl, cl
call fcn.10034690
mov cl, 1
call fcn.10034a20
mov edx, dword [ebp - 0x2c]
movss xmm1, dword [0x1017e358]
movss xmm0, dword [0x1017e340]
call fcn.10034540
xor cl, cl
call fcn.10034a20
mov ecx, dword [0x1018b1d4]
mov al, byte [0x1018b217]
mov edi, dword [0x1018b1dc]
mov esi, dword [0x1018b1d8]
mov ebx, dword [0x1018b1d0]
mov dword [ebp - 0xc], ecx
mov cl, byte [0x1018b226]
test cl, cl
je 0x100331b3
test al, al
je 0x1003321b
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0xc]
add esp, 0xc
mov cl, bl
push edi
push esi
call fcn.10034730
movss xmm1, dword [0x1017e438]
add esp, 8
movss xmm0, dword [0x1017e394]
call fcn.100345f0
xor cl, cl
call fcn.10034690
mov cl, 1
call fcn.10034a20
mov edx, dword [ebp - 0x30]
movss xmm1, dword [0x1017e378]
movss xmm0, dword [0x1017e340]
call fcn.10034540
xor cl, cl
call fcn.10034a20
lea ecx, [ebp - 0x28]
call fcn.10034e80
mov edi, dword [0x10189a7c]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push edi
lea esi, [edi + edi]
call ebx
test ax, ax
jns 0x1003344c
cmp byte [esi + 0x1018ae68], 0
jne 0x1003344c
mov word [esi + 0x1018ae68], 1
mov ecx, dword [0x1018b178]
mov byte [ebp - 5], 1
call fcn.1002ba70
mov edi, dword [0x10189a80]
push edi
lea esi, [edi + edi]
call ebx
test ax, ax
jns 0x100334af
cmp byte [esi + 0x1018ae68], 0
jne 0x100334af
mov word [esi + 0x1018ae68], 1
mov ecx, dword [0x1018b178]
mov byte [ebp - 5], 0
call fcn.1002ba70
mov eax, dword [0x1018b1d4]
mov ebx, dword [0x1018b1d0]
mov esi, dword [0x1018b1d8]
mov edi, dword [0x1018b1dc]
mov dword [ebp - 0xc], eax
mov al, byte [0x1018b226]
test al, al
je 0x100332ca
mov cl, byte [0x1018b217]
test cl, cl
je 0x1003333d
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0xc]
add esp, 0xc
mov cl, bl
push edi
push esi
call fcn.10034730
movss xmm1, dword [0x1017e438]
add esp, 8
movss xmm0, dword [0x1017e394]
call fcn.100345f0
xor cl, cl
call fcn.10034690
mov cl, 1
call fcn.10034a20
mov edx, dword [ebp + 8]
movss xmm1, dword [0x1017e3e8]
movss xmm0, dword [0x1017e368]
call fcn.10034540
xor cl, cl
call fcn.10034a20
mov cl, byte [0x1018b217]
mov al, byte [0x1018b226]
test al, al
je 0x10033345
test cl, cl
je 0x100333b2
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0x20]
add esp, 0xc
mov cl, byte [ebp - 0x10]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.10034730
movss xmm1, dword [0x1017e438]
add esp, 8
movss xmm0, dword [0x1017e394]
call fcn.100345f0
xor cl, cl
call fcn.10034690
mov cl, 1
call fcn.10034a20
mov edx, dword [ebp + 0xc]
movss xmm1, dword [0x1017e3e8]
movss xmm0, dword [0x1017e3ec]
call fcn.10034540
xor cl, cl
call fcn.10034a20
mov edi, dword [0x10189a84]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push edi
lea esi, [edi + edi]
call ebx
test ax, ax
jns 0x100333d6
cmp byte [esi + 0x1018ae68], 0
je 0x100335e4
cmp byte [esi + 0x1018ae68], 1
jne 0x100333f0
push edi
call ebx
test ax, ax
js 0x100333f0
mov word [esi + 0x1018ae68], 0x100
mov edx, 0x10
call fcn.1002b9d0
test al, al
jne 0x100335f8
cmp byte [0x1018b18b], al
je 0x10033436
push 1
call ebx
test ax, ax
mov al, byte [0x1018ae6a]
jns 0x10033420
test al, al
je 0x100335ef
cmp al, 1
jne 0x10033436
push 1
call ebx
test ax, ax
js 0x10033436
mov word [0x1018ae6a], 0x100
mov ecx, dword [0x1018b210]
push 0
call dword [sym.imp.ScriptHook.dll_protected:_void___thiscall_ScriptThread::Wait_unsigned_int_]
mov esi, dword [ebp - 0x1c]
jmp 0x10033017
cmp byte [esi + 0x1018ae68], 1
jne 0x10033466
push edi
call ebx
test ax, ax
js 0x10033466
mov word [esi + 0x1018ae68], 0x100
mov edx, 0xa
call fcn.1002b9d0
test al, al
jne 0x10033254
cmp byte [0x1018b18b], al
je 0x10033263
push 0x10
call ebx
test ax, ax
jns 0x100334a3
cmp dword [ebp - 0x28], 0x7f
mov byte [0x1018ae89], 0
jne 0x10033263
jmp 0x10033254
mov byte [0x1018ae89], 1
jmp 0x10033263
cmp byte [esi + 0x1018ae68], 1
jne 0x100334c9
push edi
call ebx
test ax, ax
js 0x100334c9
mov word [esi + 0x1018ae68], 0x100
mov edx, 0xb
call fcn.1002b9d0
test al, al
jne 0x1003328e
cmp byte [0x1018b18b], al
je 0x10033505
push 0x10
call ebx
test ax, ax
jns 0x100334fe
cmp dword [ebp - 0x28], 0xffffff81
mov byte [0x1018ae89], 0
jne 0x10033505
jmp 0x1003328e
mov byte [0x1018ae89], 1
cmp byte [ebp - 5], 0
je 0x1003329d
mov al, byte [0x1018b226]
test al, al
je 0x10033522
mov cl, byte [0x1018b217]
test cl, cl
je 0x1003359a
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0x20]
add esp, 0xc
mov cl, byte [ebp - 0x10]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.10034730
movss xmm1, dword [0x1017e438]
add esp, 8
movss xmm0, dword [0x1017e394]
call fcn.100345f0
xor cl, cl
call fcn.10034690
mov cl, 1
call fcn.10034a20
mov edx, dword [ebp + 8]
movss xmm1, dword [0x1017e3e8]
movss xmm0, dword [0x1017e368]
call fcn.10034540
xor cl, cl
call fcn.10034a20
mov cl, byte [0x1018b217]
mov al, byte [0x1018b226]
mov edx, dword [0x1018b1d4]
mov ebx, dword [0x1018b1d0]
mov esi, dword [0x1018b1d8]
mov edi, dword [0x1018b1dc]
mov dword [ebp - 0xc], edx
test al, al
je 0x100335c1
test cl, cl
je 0x100333b2
xor ecx, ecx
call fcn.10034980
sub esp, 0xc
call fcn.10034800
call fcn.100348c0
mov dl, byte [ebp - 0xc]
add esp, 0xc
mov cl, bl
push edi
push esi
jmp 0x10033368
mov word [esi + 0x1018ae68], 1
jmp 0x100335f8
mov word [0x1018ae6a], 1
mov ecx, dword [0x1018b178]
call fcn.1002ba70
mov ecx, dword [0x1018b210]
push 0
call dword [sym.imp.ScriptHook.dll_protected:_void___thiscall_ScriptThread::Wait_unsigned_int_]
push dword [ebp - 0x14]
mov cl, 1
call fcn.1002b110
add esp, 4
call fcn.10027530
mov dl, 1
mov ecx, eax
call fcn.10027700
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 5]
xor ecx, ebp
pop edi
pop esi
mov byte [0x1018b217], 0
pop ebx
call fcn.1004ecf8
mov esp, ebp
pop ebp
ret