Function at 0x408923
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, eax
xor eax, eax
push edi
push esi
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 2], al
mov byte [ebp - 1], al
mov byte [ebp - 3], al
mov byte [ebp - 4], al
call fcn.0044d7f0
pop ecx
inc eax
push eax
call fcn.0044b6ac
pop ecx
mov ebx, eax
push esi
mov dword [ebp - 0xc], ebx
call fcn.0044d7f0
pop ecx
lea eax, [eax + eax + 1]
push eax
call fcn.0044b6ac
xor edi, edi
mov dword [ebp - 0x10], eax
inc edi
pop ecx
lea edx, [ebp - 8]
mov al, 0x20
mov dword [ebp - 0x14], edi
call fcn.00408d73
test eax, eax
jne 0x4089b6
mov eax, dword [ebp - 8]
mov al, byte [eax + esi]
cmp al, 0x20
je 0x40898d
cmp al, 9
jne 0x408992
inc dword [ebp - 8]
jmp 0x40897f
mov ebx, dword [ebp - 0x10]
lea edx, [ebp - 8]
xor al, al
call fcn.00408d73
push 0x468bf8
mov esi, ebx
push esi
call fcn.004601c1
test eax, eax
pop ecx
pop ecx
jne 0x408a07
mov byte [ebp - 2], 1
xor ebx, ebx
push dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
push dword [esi*4 + 0x473ab0]
call fcn.004601c1
test eax, eax
pop ecx
pop ecx
je 0x4089d9
inc esi
cmp esi, 0x62
mov dword [ebp - 0x18], esi
jl 0x4089b8
cmp esi, 0x62
jne 0x408ac6
cmp byte [ebp - 1], 0
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
je 0x408a9c
push ebx
push eax
call dword [sym.imp.USER32.dll_VkKeyScanA]
and eax, 0xff
mov ecx, dword [ebp + 8]
jmp 0x408cae
push str.down
push esi
call fcn.004601c1
test eax, eax
pop ecx
pop ecx
jne 0x408a1e
mov byte [ebp - 1], 1
jmp 0x4089b6
push 0x468c04
push esi
call fcn.004601c1
test eax, eax
pop ecx
pop ecx
jne 0x408a35
mov byte [ebp - 3], 1
jmp 0x4089b6
push 0x468c08
push esi
call fcn.004601c1
test eax, eax
pop ecx
pop ecx
jne 0x408a4f
mov byte [ebp - 4], 1
jmp 0x4089b6
cmp byte [esi], 0x30
jne 0x408a81
mov al, byte [esi + 1]
cmp al, 0x78
je 0x408a5f
cmp al, 0x58
jne 0x408a81
lea edi, [esi + 2]
lea esi, [ebp - 0x14]
call fcn.00408f8d
mov edi, dword [ebp - 0x14]
push edi
push 0x468c0c
push ebx
call fcn.0044e31f
add esp, 0xc
jmp 0x4089b6
push esi
call fcn.0044e3ab
mov edi, eax
xor ebx, ebx
cmp edi, ebx
pop ecx
jg 0x4089b8
xor edi, edi
inc edi
jmp 0x4089b8
cmp byte [ebp - 2], 0
je 0x408ab7
push ebx
push eax
call dword [sym.imp.USER32.dll_VkKeyScanA]
and eax, 0xff
mov ecx, dword [ebp + 8]
jmp 0x408d1e
mov ecx, dword [ebp + 8]
push edi
push eax
call fcn.00407c9e
jmp case.default.0x408b3c
cmp byte [esi + 0x473c38], 0
jne 0x408b2c
cmp byte [ebp - 1], 0
je 0x408ae2
mov eax, dword [esi*4 + str._f_b_b..__reepqrstuvwxyz________t___]
push ebx
jmp 0x4089ff
cmp byte [ebp - 2], 0
je 0x408af2
mov eax, dword [esi*4 + str._f_b_b..__reepqrstuvwxyz________t___]
push ebx
jmp 0x408aaf
cmp byte [ebp - 3], 0
je 0x408afc
push 1
jmp 0x408b03
cmp byte [ebp - 4], 0
je 0x408b17
push ebx
push dword [esi*4 + str._f_b_b..__reepqrstuvwxyz________t___]
mov esi, dword [ebp + 8]
call fcn.00407c3a
jmp case.default.0x408b3c
mov eax, dword [ebp + 8]
push edi
push dword [esi*4 + str._f_b_b..__reepqrstuvwxyz________t___]
call fcn.00407d04
jmp case.default.0x408b3c
mov eax, dword [esi*4 + str._f_b_b..__reepqrstuvwxyz________t___]
cmp eax, 0xc
ja case.default.0x408b3c
jmp dword [eax*4 + 0x408d3f]
cmp byte [ebp - 1], 0
jne case.0x408b3c.2
cmp byte [ebp - 2], 0
je 0x408b70
mov ecx, dword [ebp + 8]
lea edx, [ecx + 0x244]
mov eax, dword [edx]
mov esi, 0x100
test esi, eax
je case.default.0x408b3c
xor eax, esi
mov dword [edx], eax
jmp 0x408d1a
push ebx
push 0x12
jmp 0x408b9b
cmp byte [ebp - 1], 0
je 0x408b86
mov ecx, dword [ebp + 8]
push ebx
push 0xd
jmp 0x408cad
cmp byte [ebp - 2], 0
je 0x408b97
mov ecx, dword [ebp + 8]
push ebx
push 0xd
jmp 0x408d1d
push 1
push 0xd
push dword [ebp + 8]
call fcn.004086d7
jmp case.default.0x408b3c
mov ecx, dword [ebp + 8]
lea edx, [ecx + 0x244]
mov eax, dword [edx]
mov esi, 0x100
test esi, eax
jne case.default.0x408b3c
or eax, esi
push ebx
mov dword [edx], eax
push 0x12
jmp 0x408cad
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x200
test eax, edx
jne case.default.0x408b3c
push ebx
push 0x10
jmp 0x408ca9
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x200
test eax, edx
je case.default.0x408b3c
xor edx, eax
push ebx
mov dword [esi], edx
push 0x10
jmp 0x408d1d
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x800
test eax, edx
jne case.default.0x408b3c
push ebx
push 0x11
jmp 0x408ca9
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x800
test eax, edx
je case.default.0x408b3c
xor edx, eax
push ebx
mov dword [esi], edx
push 0x11
jmp 0x408d1d
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x1000
test eax, edx
jne case.default.0x408b3c
push ebx
push 0x5b
jmp 0x408ca9
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x1000
test eax, edx
je case.default.0x408b3c
xor edx, eax
push ebx
mov dword [esi], edx
push 0x5b
jmp 0x408d1d
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x2000
test eax, edx
jne case.default.0x408b3c
push ebx
push 0x5c
or edx, eax
mov dword [esi], edx
pop eax
call fcn.004086fc
jmp case.default.0x408b3c
mov ecx, dword [ebp + 8]
lea esi, [ecx + 0x244]
mov edx, dword [esi]
mov eax, 0x2000
test eax, edx
je case.default.0x408b3c
xor edx, eax
push ebx
mov dword [esi], edx
push 0x5c
jmp 0x408d1d
mov edi, dword [ebp + 8]
mov esi, 0x100
test dword [edi + 0x244], esi
jne 0x408ced
push ebx
push 0x12
pop eax
mov ecx, edi
call fcn.004086fc
mov ecx, dword [ebp - 0x10]
mov al, byte [ecx]
test al, al
je 0x408d10
mov ebx, ecx
movsx eax, al
push 0
add eax, 0x30
push eax
push edi
call fcn.004086d7
inc ebx
mov al, byte [ebx]
test al, al
jne 0x408cf8
xor ebx, ebx
test dword [edi + 0x244], esi
jne case.default.0x408b3c
mov ecx, edi
push ebx
push 0x12
pop eax
call fcn.0040880f
push dword [ebp - 0xc]
call fcn.0044b716
pop ecx
push dword [ebp - 0x10]
call fcn.0044b716
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4