Function at 0x43bd40
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x49f014]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, ecx
push 0xa2
call edi
bt ax, 0xf
jb 0x43bd83
push 0xa3
call edi
bt ax, 0xf
mov dword [esp + 0x10], 0
jae 0x43bd8b
mov dword [esp + 0x10], 1
push 0x10
call edi
movsx ebx, ax
lea eax, [esp + 0x18]
push eax
push 0
push dword [esi + 0x38]
mov dword [esp + 0x24], 0x1c
mov dword [esp + 0x28], 2
call dword [sym.imp.USER32.dll_GetScrollInfo]
mov eax, dword [ebp + 8]
lea ecx, [eax - 0x21]
cmp ecx, 7
ja case.0x43bdc1.35
jmp dword [ecx*4 + 0x43bff8]
cmp dword [esp + 0x10], 0
jne 0x43be05
movsd xmm0, qword [0x493da0]
divsd xmm0, qword [esi + 0x190]
cvttsd2si edi, xmm0
jmp 0x43be10
test ebx, 0x8000
je case.0x43bdc1.35
mov edi, dword [esi + 0x198]
jmp 0x43be10
test ebx, 0x8000
je case.0x43bdc1.35
mov edi, dword [esi + 0x198]
imul edi, dword [esp + 0x28]
cmp eax, 0x25
je 0x43be1f
cmp eax, 0x26
je 0x43be1f
cmp eax, 0x21
jne 0x43be21
neg edi
test ebx, 0x8000
jne 0x43be89
cmp dword [esi + 0x268], 4
je 0x43be89
cmp dword [0x4a18cc], 0
mov dword [esi + 0x264], 0xffffffff
jne 0x43be55
push 0x4924a8
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x4a18cc], eax
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
je 0x43be9e
push 0xfffffffffffffff4
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_GetWindowLongW]
push dword [esi + 0x38]
movzx eax, ax
or eax, 0x1000000
push eax
push 0x111
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x43be9e
cmp dword [esi + 0x264], 0xffffffff
jne 0x43be9e
mov eax, dword [esi + 0x260]
mov dword [esi + 0x264], eax
lea eax, [esp + 0x34]
mov ecx, esi
push eax
push 0x82
push 0
call fcn.00439cd0
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x19c]
imul ecx, dword [esi + 0x198]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, ecx
mov dword [esp + 0x10], ecx
shr eax, 0x1f
movd xmm1, ecx
divsd xmm0, qword [esi + 0x190]
cvtdq2pd xmm1, xmm1
addsd xmm1, qword [eax*8 + 0x494040]
addsd xmm0, xmm1
call fcn.00477130
mov ebx, eax
mov eax, dword [esi + 0x260]
cmp eax, dword [esp + 0x10]
jb 0x43bf0b
cmp eax, ebx
jbe 0x43bf77
mov edx, dword [esi + 0x198]
imul edx, dword [esp + 0x28]
push 0
mov dword [esi + 0x2d0], 1
mov dword [esp + 0x20], 4
mov dword [esp + 0x1c], 0x1c
mov dword [esp + 0x18], edx
xor edx, edx
div dword [esp + 0x18]
imul eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1c]
push eax
push 0
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_SetScrollInfo]
push 0
push 0
push 0x114
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esi + 0x2d0], 0
mov eax, dword [esi + 0x260]
add eax, edi
mov ecx, esi
push eax
push 0
call fcn.0043bab0
mov eax, dword [esi + 0x260]
cmp eax, dword [esp + 0x10]
jae 0x43bf93
xor eax, eax
jmp 0x43bf9c
cmp eax, ebx
jbe 0x43bfc1
mov eax, 1
push 0
push eax
push 0x114
push dword [esi + 0x38]
mov dword [esi + 0x2d0], 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esi + 0x2d0], 0
mov ecx, esi
call fcn.0043bb50
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.0045f9ee
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esp + 0x44]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045f9ee
mov esp, ebp
pop ebp
ret 8