Function at 0x40b760
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push esi
push edi
mov edi, eax
mov esi, dword [edi + 0x70]
cmp esi, 0xff
jge 0x40b7a7
push esi
call ebx
shr eax, 0xf
and al, 1
mov byte [esi + 0x450700], al
je 0x40b7a1
cmp byte [esi + 0x450600], 0
jne 0x40b7a1
mov byte [esi + 0x450600], 1
mov eax, 1
jmp 0x40b7a9
mov byte [esi + 0x450600], al
xor eax, eax
test eax, eax
je 0x40b7ef
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push esi
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.123456780.
mov byte [ecx], 0
call fcn.00407a40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x74]
cmp esi, 0xff
jge 0x40b827
push esi
call ebx
shr eax, 0xf
and al, 1
mov byte [esi + 0x450700], al
je 0x40b821
cmp byte [esi + 0x450600], 0
jne 0x40b821
mov byte [esi + 0x450600], 1
mov eax, 1
jmp 0x40b829
mov byte [esi + 0x450600], al
xor eax, eax
test eax, eax
je 0x40b86f
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push esi
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push 0x445ec4
mov byte [ecx], 0
call fcn.00407a40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x78]
cmp esi, 0xff
jge 0x40b8a7
push esi
call ebx
shr eax, 0xf
and al, 1
mov byte [esi + 0x450700], al
je 0x40b8a1
cmp byte [esi + 0x450600], 0
jne 0x40b8a1
mov byte [esi + 0x450600], 1
mov eax, 1
jmp 0x40b8a9
mov byte [esi + 0x450600], al
xor eax, eax
test eax, eax
je 0x40b8ea
call fcn.00410690
test eax, eax
je 0x40bb24
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ec8
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x7c]
call fcn.0040ccf0
test eax, eax
je 0x40b933
call fcn.00410690
test eax, eax
je 0x40bb24
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ecc
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x80]
call fcn.0040ccf0
test eax, eax
je 0x40b972
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ed0
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x84]
call fcn.0040ccf0
test eax, eax
je 0x40b9b1
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ed4
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x88]
call fcn.0040ccf0
test eax, eax
je 0x40b9f0
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ed8
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x8c]
call fcn.0040ccf0
test eax, eax
je 0x40ba3e
mov ecx, edi
call fcn.004103f0
test eax, eax
je 0x40bb24
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445edc
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x6c]
call fcn.0040ccf0
test eax, eax
je 0x40ba7a
push 0
push 0
push 0
push 1
mov esi, 1
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 4], esp
push 0x445ee0
call fcn.00407b40
mov edx, esi
mov ecx, edi
call fcn.0040bd70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x98]
call fcn.0040ccf0
test eax, eax
je 0x40ba9a
lea eax, [edi + 0x3c]
mov dl, 2
call fcn.0040b0a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x9c]
call fcn.0040ccf0
test eax, eax
je 0x40baba
lea eax, [edi + 0x3c]
mov dl, 3
call fcn.0040b0a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x94]
call fcn.0040ccf0
test eax, eax
je 0x40bae3
call fcn.004109d0
test eax, eax
je 0x40bb24
lea eax, [edi + 0x3c]
mov dl, 1
call fcn.0040b0a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x24
call ebx
shr eax, 0xf
and al, 1
mov byte [0x450724], al
je 0x40bb0a
cmp byte [0x450624], 0
jne 0x40bb0a
mov byte [0x450624], 1
mov eax, 1
jmp 0x40bb11
mov byte [0x450624], al
xor eax, eax
test eax, eax
je 0x40bb1d
push 0
push edi
call fcn.0040cdb0
mov esi, edi
call fcn.0040bb30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret