Function at 0x43f1d5
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x68], 0
je 0x43f1fc
mov ecx, dword [ebp - 0x90]
cmp dword [ecx + 4], 0
jne 0x43f201
jmp 0x43f51a
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 4]
call fcn.004185d0
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x43f286
call dword [sym.imp.USER32.dll_GetCapture]
mov edx, dword [ebp - 0x90]
mov ecx, dword [edx + 4]
cmp eax, dword [ecx + 0x20]
jne 0x43f24d
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, dword [ebp - 0x90]
mov dword [edx + 0x74], 0
mov eax, dword [ebp - 0x90]
mov dword [eax + 0x7c], 0
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 0x78], 0xffffffff
push 0
mov ecx, dword [ebp - 0x90]
call fcn.0043f5af
jmp 0x43f51a
mov edx, dword [ebp - 0x90]
cmp dword [edx + 0x78], 0xffffffff
jle 0x43f51a
lea ecx, [ebp - 0x1c]
call fcn.004044c0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [ebp - 0x14]
call fcn.004044d0
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x90]
mov ecx, dword [edx + 4]
call fcn.004052c0
lea ecx, [ebp - 0x14]
call fcn.00405250
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0041cf80
mov ecx, dword [ebp - 0x90]
add ecx, 0x48
call fcn.00405250
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x1c]
call fcn.0041cf80
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x78], 2
je 0x43f32a
mov ecx, dword [ebp - 0x90]
cmp dword [ecx + 0x78], 3
jne 0x43f442
lea edx, [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x90]
call fcn.0043e4b4
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x90]
call fcn.0043e397
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x74]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004044f0
test eax, eax
je 0x43f36d
jmp 0x43f51a
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
push ecx
mov edx, dword [ebp - 0x7c]
push edx
lea ecx, [ebp - 0x3c]
call fcn.004044f0
test eax, eax
je 0x43f427
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x28], 0
jne 0x43f3e4
push 0
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x78]
and edx, 0xffff
and edx, 0xffff
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x20]
and ecx, 0xffff
and ecx, 0xffff
shl ecx, 0x10
or edx, ecx
push edx
push 0x114
mov edx, dword [ebp - 0x90]
mov ecx, dword [edx + 4]
call fcn.004049a0
jmp 0x43f427
push 0
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x78]
and ecx, 0xffff
and ecx, 0xffff
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 0x20]
and eax, 0xffff
and eax, 0xffff
shl eax, 0x10
or ecx, eax
push ecx
push 0x115
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 4]
call fcn.004049a0
push 0
push 0x32
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 4]
call fcn.004185a0
jmp 0x43f51a
mov ecx, dword [ebp - 0x90]
cmp dword [ecx + 0x78], 0
jne 0x43f4ac
push 0
lea edx, [ebp - 0x4c]
push edx
mov ecx, dword [ebp - 0x90]
call fcn.0043e5bf
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 0x80]
push edx
mov eax, dword [ebp - 0x84]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004044f0
test eax, eax
je 0x43f494
push 0x14
mov ecx, dword [ebp - 0x90]
call fcn.0043ee20
jmp 0x43f4aa
push 0
push 0x14
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x90]
mov ecx, dword [edx + 4]
call fcn.004185a0
jmp 0x43f51a
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x78], 1
jne 0x43f51a
push 1
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x90]
call fcn.0043e5bf
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
push ecx
mov edx, dword [ebp - 0x8c]
push edx
lea ecx, [ebp - 0x5c]
call fcn.004044f0
test eax, eax
je 0x43f504
push 0x14
mov ecx, dword [ebp - 0x90]
call fcn.0043ef23
jmp 0x43f51a
push 0
push 0x14
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx + 4]
call fcn.004185a0
mov esp, ebp
pop ebp
ret 4