Function at 0x10037240
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc0
mov eax, dword [0x1017f064]
xor eax, esp
mov dword [esp + 0xbc], eax
cmp byte [0x10182c23], 0
push dword [0x10182e60]
je 0x100375e6
call fcn.100395b0
add esp, 4
test al, al
jne 0x100372c9
mov edx, 0x10182e60
mov byte [0x10182c32], al
mov byte [0x101829ee], al
call fcn.10039470
push dword [0x10182e60]
mov cl, 1
call fcn.10028fb0
add esp, 4
push dword [0x10182e60]
call fcn.100398f0
add esp, 4
mov edx, 1
mov ecx, edx
call fcn.1003a460
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
push dword [0x10182e60]
movss xmm1, dword [0x10180a88]
call fcn.10039850
add esp, 4
mov dword [esp + 8], 0
lea ecx, [esp + 8]
call fcn.10029060
lea eax, [esp + 0x14]
push eax
push dword [esp + 0xc]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
call fcn.10039700
xor dl, dl
xor ecx, ecx
call fcn.10034fe0
xor dl, dl
mov ecx, 7
call fcn.10034fe0
xor dl, dl
mov ecx, 9
call fcn.10034fe0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [esp + 0xc]
mov ecx, eax
call fcn.1003d4f0
push dword [esp + 0xc]
lea ecx, [esp + 0xc]
call fcn.10028060
add esp, 0xc
cmp dword [esp], 0
mov dword [esp], 0
je 0x100373d2
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [esp]
mov ecx, eax
call fcn.1003d4f0
movss xmm3, dword [0x10176e28]
mov edx, 0x10182c08
movss xmm2, dword [0x10176da0]
push ecx
mov dword [esp], 0
push dword [esp + 4]
call fcn.10039030
push dword [0x10182e60]
movss xmm3, dword [0x10182c10]
movss xmm2, dword [0x10182c0c]
movss xmm1, dword [0x10182c08]
call fcn.10029100
add esp, 0xc
jmp 0x100375b4
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [esp]
mov ecx, eax
call fcn.1003d4f0
movss xmm3, dword [0x10176dc0]
mov edx, 0x10182c08
movss xmm2, dword [0x10176da0]
push ecx
mov dword [esp], 0
push dword [esp + 4]
call fcn.10039030
add esp, 8
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x10037473
mov edx, 5
call fcn.1002eef0
test al, al
jne 0x10037473
cmp byte [0x1017fad3], al
je 0x10037473
movss xmm0, dword [esp + 0x14]
movss dword [esp + 4], xmm0
mov dword [esp], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [esp]
mov ecx, eax
call fcn.1003d4f0
push dword [esp]
movss xmm1, dword [esp + 8]
call fcn.10027600
add esp, 4
jmp 0x1003758e
mov dword [esp], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [esp]
mov ecx, eax
call fcn.1003d4f0
push dword [esp]
lea ecx, [esp + 8]
call fcn.10026c40
mov eax, dword [esp + 8]
add esp, 4
cmp eax, 0x10
je 0x1003752e
cmp eax, 0x11
je 0x1003752e
cmp byte [0x10182db1], 0
jne 0x1003758e
xor ecx, ecx
call fcn.10030e20
sub esp, 0xc
call fcn.10030ca0
call fcn.10030d60
add esp, 0xc
or dl, 0xff
or cl, 0xff
push 0xff
push 0xff
call fcn.10030bd0
movss xmm1, dword [0x10176e38]
add esp, 8
movss xmm0, dword [0x10176ddc]
call fcn.10030a90
xor cl, cl
call fcn.10030b30
mov cl, 1
call fcn.10030ec0
movss xmm0, dword [0x10176e98]
mov edx, 0x1016b954
movaps xmm1, xmm0
call fcn.100309e0
xor cl, cl
call fcn.10030ec0
jmp 0x1003758e
lea eax, [esp + 0x78]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 0xbc6c73cb
push eax
mov dword [esp + 0x2c], 0
call dword [sym.imp.ScriptHook.dll_private:_static_void___cdecl_NativeInvoke::SpeedyInvoke_class_NativeContext___unsigned_int_]
mov eax, dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x1003758e
lea edx, [eax - 1]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + edx*4 + 0x28]
add edx, edx
mov eax, dword [esp + edx*8 + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + edx*8 + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [esp + edx*8 + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x10037565
push dword [0x10182e60]
movss xmm3, dword [0x10182c10]
movss xmm2, dword [0x10182c0c]
movss xmm1, dword [0x10182c08]
call fcn.10029100
add esp, 4
push dword [0x10182e60]
movss xmm3, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x10]
call fcn.100291b0
add esp, 4
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
call fcn.100395b0
add esp, 4
test al, al
je 0x1003762a
push dword [0x10182e60]
call fcn.10039510
add esp, 4
xor edx, edx
xor ecx, ecx
call fcn.1003a460
mov dl, 1
xor ecx, ecx
call fcn.10034fe0
mov dl, 1
mov ecx, 7
call fcn.10034fe0
mov dl, 1
mov ecx, 9
call fcn.10034fe0
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.1004955b
mov esp, ebp
pop ebp
ret