Function at 0x45b000
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50a00d
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
call esi
sub eax, dword [0x54b068]
sbb edx, dword [0x54b06c]
mov dword [ebp - 0x24], edx
jne 0x45b04f
cmp eax, 0xc8
jb 0x45b39c
call esi
push 0x2b0c
push dword [0x5482c0]
mov dword [0x54b068], eax
mov dword [0x54b06c], edx
mov dword [ebp - 0x14], 0
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edx, eax
lea ecx, [ebp - 0x14]
call fcn.0042e7c0
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x45b0ac
mov ecx, dword [esi + 8]
xor edx, edx
mov eax, ecx
test ecx, ecx
je 0x45b0b0
cmp word [ecx], dx
je 0x45b0b0
nop dword [eax]
lea ecx, [ecx + 2]
inc edx
cmp word [ecx], 0
jne 0x45b0a0
jmp 0x45b0b0
xor eax, eax
xor edx, edx
mov ecx, 0x52b070
xor edi, edi
add ecx, 2
inc edi
cmp word [ecx], 0
jne 0x45b0b7
test eax, eax
jne 0x45b0d1
test edx, edx
jne 0x45b118
test edi, edi
je 0x45b370
cmp eax, 0x52b070
je 0x45b370
test eax, eax
je 0x45b118
mov ecx, 0x52b070
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b10b
test dx, dx
je 0x45b107
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b10b
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b0e5
xor eax, eax
jmp 0x45b110
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b370
test esi, esi
je 0x45b370
mov eax, dword [esi + 8]
test eax, eax
je 0x45b370
cmp eax, 0x51b3ac
je 0x45b370
test eax, eax
je 0x45b173
mov ecx, 0x51b3ac
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b166
test dx, dx
je 0x45b162
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b166
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b140
xor eax, eax
jmp 0x45b16b
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b370
push ecx
lea eax, [ebp - 0x14]
mov ecx, 0x549070
push eax
call fcn.00424ee0
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x45b193
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x45b19b
mov eax, 0x51b3ac
mov dword [ebp - 0x18], eax
mov ebx, eax
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x45b1a0
sub ebx, ecx
sar ebx, 1
lea edi, [ebx*4]
lea ecx, [edi + 0x11]
call fcn.00425b20
mov edx, eax
lea ecx, [edi*2 + 0x24]
shr ecx, 1
xor eax, eax
shr ecx, 1
mov edi, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
mov dword [ebp - 0x24], edx
rep stosw word es:[edi], ax
lea eax, [ebx*4 + 1]
mov dword [edx + 4], 1
mov dword [edx + 0xc], eax
xor ecx, ecx
lea eax, [edx + 0x10]
mov dword [ebp - 0x1c], ecx
xor edi, edi
mov dword [edx + 8], eax
mov dword [ebp - 0x20], eax
mov dword [edx], 0
test ebx, ebx
je 0x45b23b
mov esi, eax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + edi*2]
push eax
lea eax, [ebx*4]
sub eax, ecx
push str._04X
inc eax
push eax
push esi
call fcn.00407ae0
mov ecx, dword [ebp - 0x1c]
inc edi
add ecx, 4
add esp, 0x10
add esi, 8
mov dword [ebp - 0x1c], ecx
cmp edi, ebx
jb 0x45b206
mov esi, dword [ebp - 0x14]
mov eax, dword [0x5492d0]
test eax, eax
je 0x45b25e
mov ecx, dword [0x5492d4]
test ecx, ecx
je 0x45b25e
push eax
push dword [ebp - 0x20]
push str.findText
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 2
add dword [eax + 4], 0xffffffff
jne 0x45b274
push eax
call fcn.004eb01a
add esp, 4
mov byte [ebp - 4], 0
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call edi
push 0x10
movzx ebx, ax
call edi
shr ebx, 0xf
and bl, 1
mov byte [0x549075], bl
je 0x45b323
test esi, esi
je 0x45b2a4
mov ecx, dword [esi + 8]
jmp 0x45b2a6
xor ecx, ecx
call fcn.0043a860
push 0
push 9
push 0x110a
push dword [0x545fe0]
mov edi, eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
test ebx, ebx
jne 0x45b2dd
push eax
push eax
push 0x110a
push dword [0x545fe0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x45b2f2
push 0x52b78c
jmp 0x45b375
push 1
push 1
push ebx
push ecx
mov edx, 1
mov ecx, edi
call fcn.0045e440
add esp, 0x10
test al, al
jne 0x45b382
push edi
push 0x52b81c
call fcn.00407a60
add esp, 8
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x45b382
test esi, esi
je 0x45b32c
mov edi, dword [esi + 8]
jmp 0x45b32e
xor edi, edi
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 9
push 0x110a
push dword [0x545fe0]
call ebx
test eax, eax
jne 0x45b358
push eax
push eax
push 0x110a
push dword [0x545fe0]
call ebx
test edi, edi
je 0x45b369
cmp word [edi], 0
je 0x45b369
push 1
push 0
push eax
jmp 0x45b2f7
push 0x52b844
jmp 0x45b375
push 0x52b130
push 0x52b124
call fcn.00464a70
add esp, 8
mov dword [ebp - 4], 4
test esi, esi
je 0x45b39c
add dword [esi + 4], 0xffffffff
jne 0x45b39c
push esi
call fcn.004eb01a
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dadd7
mov esp, ebp
pop ebp
ret