Function at 0x43d7d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x62271c]
sub esp, 8
mov ecx, dword fs:[0x2c]
push ebp
lea ebp, [eax*4]
mov eax, dword [ecx + ebp]
cmp byte [eax + 0x2198], 0
jne 0x43d7ff
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + ebp]
cmp dword [eax + 0x1f4], 0
je 0x43d835
cmp byte [esp + 0x10], 0
jne 0x43d835
cmp byte [eax + 0x2198], 0
jne 0x43d827
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + ebp]
pop ebp
mov al, byte [eax + 0x147]
add esp, 8
ret
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push edi
push 0xa0
call esi
mov bx, ax
shr bx, 0xb
push 0xa1
and bl, 0x10
call esi
mov cl, bl
mov edi, 0x8000
or cl, 0x20
and ax, di
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
push 0xa2
mov dword [esp + 0x14], edx
call esi
mov edx, dword [esp + 0x10]
mov cl, dl
or cl, 1
and ax, di
movzx ebx, cl
movzx ecx, dl
push 0xa3
cmove ebx, ecx
call esi
mov cl, bl
or cl, 2
and ax, di
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
push 0xa4
mov dword [esp + 0x14], edx
call esi
mov edx, dword [esp + 0x10]
mov cl, dl
or cl, 4
and ax, di
movzx ebx, cl
movzx ecx, dl
push 0xa5
cmove ebx, ecx
call esi
mov cl, bl
or cl, 8
and ax, di
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
push 0x5b
mov dword [esp + 0x14], edx
call esi
mov edx, dword [esp + 0x10]
mov cl, dl
or cl, 0x40
and ax, di
movzx ebx, cl
movzx ecx, dl
push 0x5c
cmove ebx, ecx
call esi
mov cl, bl
or cl, 0x80
and ax, di
mov edi, dword fs:[0x2c]
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
mov eax, dword [edi + ebp]
mov dword [esp + 0x10], edx
cmp byte [eax + 0x2198], 0
jne 0x43d931
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
cmp dword [eax + 0x1f4], 0
je 0x43da7d
cmp byte [eax + 0x2198], 0
jne 0x43d956
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
mov bl, byte [esp + 0x10]
not bl
and bl, byte [eax + 0x147]
je 0x43da7d
cmp byte [eax + 0x2198], 0
jne 0x43d980
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
mov bh, bl
not bh
and byte [eax + 0x145], bh
cmp byte [eax + 0x2198], 0
jne 0x43d9a2
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
and byte [eax + 0x147], bh
cmp byte [eax + 0x2198], 0
jne 0x43d9c0
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
and byte [eax + 0x146], bh
cmp byte [eax + 0x2198], 0
jne 0x43d9de
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
cmp byte [eax + 0x2198], 0
mov cl, byte [eax + 0x145]
mov dword [esp + 0x14], ecx
jne 0x43da04
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + ebp]
push ecx
lea eax, [esi + 0x570]
push eax
call fcn.0043ce40
add esp, 8
cmp byte [esi + 0x2198], 0
jne 0x43da2c
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov eax, dword [edi + ebp]
cmp dword [eax + 0x810], 0
je 0x43da7d
cmp byte [eax + 0x2198], 0
jne 0x43da4d
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov ecx, dword [edi + ebp]
mov eax, dword [ecx + 0x810]
test byte [eax + 8], bl
je 0x43da7d
cmp byte [ecx + 0x2198], 0
jne 0x43da70
call fcn.004ebad3
mov edi, dword fs:[0x2c]
mov ecx, dword [edi + ebp]
mov dword [ecx + 0x810], 0
mov al, byte [esp + 0x10]
pop edi
pop esi
pop ebx
pop ebp
add esp, 8
ret