Function at 0x42e445
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
mov esi, ecx
mov ecx, dword [eax]
xor ebx, ebx
sub ecx, 1
je 0x42e6ae
sub ecx, 1
je 0x42e5a7
sub ecx, 1
jne case.default.0x42e6c8
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0x18]
add ecx, 0xfffffa85
cmp ecx, 0x32
ja case.default.0x42e6c8
movzx ecx, byte [ecx + 0x42e8d0]
jmp dword [ecx*4 + 0x42e8bc]
cmp dword [eax + 0x14], ebx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
jne 0x42e4b2
fld dword [esi + 0xa8]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
ret 4
mov eax, dword [edx + 0x3f0]
call eax
fstp dword [esp + 0xc]
mov ecx, dword [esi + 0xac]
fld dword [esp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [eax + 0x14], ebx
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
jne 0x42e507
fld dword [esi + 0xa8]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
ret 4
mov eax, dword [edx + 0x3f4]
call eax
fstp dword [esp + 0xc]
mov ecx, dword [esi + 0xac]
fld dword [esp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
xor ebx, ebx
pop esi
mov eax, ebx
pop ebx
ret 4
mov eax, dword [esi + 0xac]
test eax, eax
je case.default.0x42e6c8
test edx, edx
je 0x42e575
test eax, eax
je case.default.0x42e6c8
mov ecx, eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 0xffffffffffffffff
call eax
pop esi
mov eax, ebx
pop ebx
ret 4
mov eax, dword [esi + 0xac]
test eax, eax
je case.default.0x42e6c8
test edx, edx
jne 0x42e58a
mov ecx, eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 0
call eax
pop esi
mov eax, ebx
pop ebx
ret 4
test eax, eax
je case.default.0x42e6c8
mov ecx, eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 1
call eax
pop esi
mov eax, ebx
pop ebx
ret 4
mov eax, dword [eax + 4]
add eax, 0xfffffa85
cmp eax, 0x32
ja case.default.0x42e6c8
movzx ecx, byte [eax + 0x42e918]
jmp dword [ecx*4 + 0x42e904]
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x238]
lea eax, [esi + 0xa8]
push eax
call edx
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x3f0]
call edx
fstp dword [esp + 0xc]
mov ecx, dword [esi + 0xac]
fld dword [esp + 0xc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x23c]
push ecx
fstp dword [esp]
call edx
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
ret 4
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x238]
lea edx, [esi + 0xa8]
push edx
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3f4]
call eax
fstp dword [esp + 0xc]
mov ecx, dword [esi + 0xac]
fld dword [esp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.default.0x42e6c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 0xffffffffffffffff
call eax
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.default.0x42e6c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 1
call eax
pop esi
mov eax, ebx
pop ebx
ret 4
mov ecx, dword [eax + 4]
add ecx, 0xfffffa86
cmp ecx, 0x34
ja case.default.0x42e6c8
movzx ecx, byte [ecx + 0x42e970]
push edi
jmp dword [ecx*4 + 0x42e94c]
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x388]
call eax
test eax, eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
je 0x42e732
mov eax, dword [edx + 0x384]
push 0
call eax
mov edi, eax
cmp edi, 1
jle 0x42e71f
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x42e71f
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x300]
add edi, 0xffffffff
push edi
call eax
jmp 0x42e794
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x300]
push edi
call eax
jmp 0x42e794
mov eax, dword [edx + 0x208]
jmp 0x42e792
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x388]
call eax
test eax, eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
je 0x42e78c
mov eax, dword [edx + 0x384]
push 0
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edi, eax
mov eax, dword [edx + 0x2fc]
call eax
cmp edi, eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
jge 0x42e78c
mov eax, dword [edx + 0x300]
add edi, 1
push edi
call eax
jmp 0x42e794
mov eax, dword [edx + 0x20c]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x198]
mov ebx, 1
push ebx
push 0x582
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x198]
push ebx
push 0x583
mov ecx, esi
call eax
pop edi
pop esi
mov eax, ebx
pop ebx
ret 4
mov ecx, dword [esi + 0xac]
fld dword [esi + 0xa8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x23c]
push ecx
fstp dword [esp]
call eax
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
ret 4
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x204]
call eax
pop edi
mov ebx, 1
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.0x42e6c8.1410
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3fc]
call eax
pop edi
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.0x42e6c8.1410
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x400]
push 0
call eax
pop edi
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.0x42e6c8.1410
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edi, dword [eax + 0x18]
mov eax, dword [edx + 0x404]
call eax
mov edx, dword [edi]
test eax, eax
mov eax, dword [edx + 0x204]
mov ecx, edi
je 0x42e87c
push 2
jmp 0x42e87e
push 1
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x138]
push 0
mov ecx, edi
call eax
pop edi
pop esi
mov eax, ebx
pop ebx
ret 4
cmp dword [esi + 0xac], ebx
je case.0x42e6c8.1410
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3f8]
call eax
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebx
ret 4