Function at 0x455157
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x908
mov al, byte [0x460a68]
push ebx
push esi
mov dword [ebp - 4], ecx
push edi
mov byte [ebp - 0x908], al
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0x907]
push 0xcd
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.004252ac
mov esi, eax
push esi
call fcn.00423e06
mov edi, dword [ebp + 8]
pop ecx
pop ecx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4551e5
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4551cd
test cl, cl
je 0x4551c7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4551cd
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x4551a9
xor ebx, ebx
xor eax, eax
jmp 0x4551d4
sbb eax, eax
sbb eax, 0xffffffff
xor ebx, ebx
cmp eax, ebx
jne 0x4551e7
lea edx, [ebp - 0x908]
mov edi, 0x411254
jmp 0x455247
xor ebx, ebx
push 0xce
call fcn.004252ac
mov esi, eax
push esi
call fcn.00423e06
mov edi, dword [ebp + 8]
pop ecx
pop ecx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4552a5
mov eax, dword [ebp + 8]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x455233
test cl, cl
je 0x45522f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x455233
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x455211
xor eax, eax
jmp 0x455238
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4552a5
lea edx, [ebp - 0x908]
mov edi, 0x411234
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [0x474df8], ebx
rep movsb byte es:[edi], byte [esi]
je 0x455289
cmp dword [ebp + 0xc], ebx
jne 0x455289
push ebx
lea eax, [ebp - 0x908]
push ebx
push eax
mov ecx, 0x4789e8
call fcn.004165e6
jmp 0x455408
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x908]
push 2
push eax
mov ecx, 0x4789e8
call fcn.004164ab
jmp 0x455408
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x908]
push 0x800
push eax
push dword [ebp + 8]
call fcn.00455088
test eax, eax
je 0x4552d3
lea eax, [ebp - 0x908]
push 1
push eax
mov ecx, 0x49a108
call fcn.00451ad1
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x908]
push eax
call fcn.0045341f
test eax, eax
jne 0x455408
lea eax, [ebp - 0x908]
mov ecx, 0x4789c0
push eax
call fcn.0043beda
test eax, eax
jne 0x455408
lea eax, [ebp - 0x908]
push eax
call fcn.00423e06
lea eax, [ebp - 0x908]
push eax
call fcn.004262bc
pop ecx
mov ebx, 0x4789e8
test eax, eax
pop ecx
je 0x45533f
push dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x908]
push 0
push eax
call fcn.004524a2
jmp 0x4553ff
mov al, byte [0x460a68]
push 0x40
mov byte [ebp - 0x108], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x107]
rep stosd dword es:[edi], eax
and dword [ebp + 8], 0
push 0x104
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x108]
mov ecx, 0x49ac50
push eax
call fcn.0044565d
lea esi, [ebp - 0x908]
lea eax, [ebp - 0x108]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4553a4
test cl, cl
je 0x45539e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4553a4
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x455380
xor esi, esi
xor eax, eax
jmp 0x4553ab
sbb eax, eax
sbb eax, 0xffffffff
xor esi, esi
cmp eax, esi
jne 0x4553c5
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 8
test al, al
je 0x4553c5
mov dword [ebp + 8], 1
cmp dword [0x474df8], esi
je 0x4553ea
cmp dword [ebp + 0xc], esi
jne 0x4553ea
cmp dword [ebp + 8], esi
jne 0x4553ea
push 1
lea eax, [ebp - 0x908]
push esi
push eax
mov ecx, ebx
call fcn.004165e6
jmp 0x4553ff
push 1
push esi
push esi
push esi
lea eax, [ebp - 0x908]
push 2
push eax
mov ecx, ebx
call fcn.004164ab
push 0
mov ecx, ebx
call fcn.00418903
pop edi
pop esi
pop ebx
leave
ret 0x10