Function at 0x507a30
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 0xc]
push dword [ebp + 8]
call sub.USER32.dll_GetParent
mov ebx, eax
push 0x461
push ebx
call sub.USER32.dll_GetDlgItem
mov edi, eax
call sub.USER32.dll_GetFocus
cmp edi, eax
jne 0x507a60
xor eax, eax
jmp 0x507d3b
push 0x57cddf
push 0x3e7
push 0xd
push 0x480
push ebx
call sub.USER32.dll_SendDlgItemMessageA
cmp byte [0x57cddf], 0
je 0x507aa6
push 0x2a
push 0x57cddf
call fcn.0054e1ec
add esp, 8
test eax, eax
jne 0x507aa6
push 0x3f
push 0x57cddf
call fcn.0054e1ec
add esp, 8
test eax, eax
je 0x507aad
xor eax, eax
jmp 0x507d3b
push 0x587aa8
push 0x64
push 0xd
push 0x98
push dword [ebp + 8]
call sub.USER32.dll_SendDlgItemMessageA
mov byte [0x587aa8], 0
push 0x57c9f8
push 0x64
push 0xd
push 0x98
push dword [ebp + 8]
call sub.USER32.dll_SendDlgItemMessageA
mov ebx, 0x57c9f8
jmp 0x507ae8
inc ebx
cmp byte [ebx], 0x20
je 0x507ae7
cmp byte [ebx], 0
je 0x507b3c
push esi
mov esi, 0x587aa8
mov edi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push 0x587aa8
call fcn.0054e28c
pop ecx
mov edi, eax
dec edi
lea eax, [edi + 0x587aa8]
jmp 0x507b33
mov byte [eax], 0
dec edi
dec eax
test edi, edi
jle 0x507b3c
cmp byte [eax], 0x20
je 0x507b2e
cmp byte [0x587aa8], 0
jne 0x507b69
push 0x98
push dword [ebp + 8]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SetFocus
push 0
call fcn.0042c6cc
mov eax, 1
jmp 0x507d3b
mov ebx, 1
push 0x90
push dword [ebp + 8]
call sub.USER32.dll_IsDlgButtonChecked
cmp eax, 1
je 0x507b81
dec ebx
mov dword [0x56d9d4], ebx
mov ebx, 1
push 0x97
push dword [ebp + 8]
call sub.USER32.dll_IsDlgButtonChecked
cmp eax, 1
je 0x507b9f
dec ebx
mov dword [0x56d9d0], ebx
mov ebx, 1
push 0x92
push dword [ebp + 8]
call sub.USER32.dll_IsDlgButtonChecked
cmp eax, 1
je 0x507bbd
dec ebx
mov dword [0x56d9e4], ebx
push 0x3e7
push 0x587c8c
call fcn.0042e6b1
test esi, esi
je 0x507c4d
xor edi, edi
mov ebx, dword [esi + 0x1c]
jmp 0x507c44
push ebx
call fcn.0054e28c
pop ecx
mov esi, eax
add esi, ebx
inc esi
test edi, edi
jne 0x507bfb
cmp byte [esi], 0
je 0x507bfb
mov edi, 1
mov ebx, esi
jmp 0x507c44
push 0x587c8c
call fcn.0054e28c
pop ecx
push eax
push ebx
call fcn.0054e28c
pop ecx
pop edx
add edx, eax
cmp edx, 0x3b5
ja 0x507c4d
cmp byte [0x587c8c], 0
je 0x507c34
push 0x56dd50
push 0x587c8c
call fcn.0054e1b0
add esp, 8
push ebx
push 0x587c8c
call fcn.0054e1b0
add esp, 8
mov ebx, esi
test ebx, ebx
je 0x507c4d
cmp byte [ebx], 0
jne 0x507bdd
cmp byte [0x587c8c], 0
jne 0x507c73
push 0x460
push dword [ebp + 8]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_SetFocus
mov eax, 1
jmp 0x507d3b
push 0x12
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x507ccf
push 0x53
call sub.USER32.dll_GetKeyState
movsx ecx, ax
and ecx, 0x8000
cmp ecx, 0x8000
je 0x507ccf
push 9
push 0x587c8c
call fcn.0054e1ec
add esp, 8
test eax, eax
jne 0x507cc8
call fcn.00412691
push eax
push 0
push 0x587c8c
call fcn.0050d13a
mov eax, 1
jmp 0x507d3b
push 0
push 0
push 0x147
push 0x9a
push dword [ebp + 8]
call sub.USER32.dll_SendDlgItemMessageA
cmp eax, 0xffffffff
jne 0x507cec
xor eax, eax
mov dword [0x56d9d8], 0x200
test eax, eax
jle 0x507d0d
mov edx, dword [0x56d9d8]
add edx, edx
mov dword [0x56d9d8], edx
dec eax
test eax, eax
jg 0x507cfa
cmp dword [0x56d9d8], 0x200
jge 0x507d23
mov dword [0x56d9d8], 0x200
cmp dword [0x56d9d8], 0x2000
jle 0x507d39
mov dword [0x56d9d8], 0x2000
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 8