Function at 0x56fa10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x5f300c]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, ecx
mov dword [esp + 8], ebx
push edi
mov edi, dword [ebp + 8]
cmp esi, 0x110
je 0x56fa4c
cmp esi, 0x10
je 0x56fa4c
cmp esi, 0x111
jne 0x56fccf
push 0
lea ecx, [ebx + 0xb0c]
mov dword [esp + 0x18], edi
push 0x5d2460
call fcn.00528190
test eax, eax
mov ecx, ebx
lea eax, [ebx + 4]
setne byte [esp + 0x1c]
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [esp + 0x18], ecx
sub esi, 0x10
je 0x56fcbf
sub esi, 0x100
je 0x56fbce
sub esi, 1
jne 0x56fccf
movzx esi, word [ebp + 0x10]
cmp esi, 2
jne 0x56fac7
push esi
push edi
call dword [sym.imp.USER32.dll_EndDialog]
mov eax, dword [ebx + 0x1334]
test eax, eax
je 0x56fab8
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [ebx + 0x1334], 0
jmp 0x56fccf
cmp esi, 1
je 0x56fb28
cmp esi, 0xf5
je 0x56fb28
cmp esi, 0xfa
jne 0x56fccf
mov ecx, ebx
call fcn.00530e80
test al, al
je 0x56fb03
push esi
lea ecx, [esp + 0x18]
call fcn.0056f080
push eax
push ecx
lea ecx, [esp + 0x1c]
mov byte [ebx + 0x47], al
call fcn.0056ee10
lea eax, [esp + 0x14]
mov ecx, ebx
push eax
call fcn.00570a80
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0xc
lea ecx, [esp + 0x14]
call fcn.0056f540
cmp esi, 0xf5
jne 0x56fb44
mov eax, dword [ebx + 4]
lea ecx, [ebx + 4]
push 0
call dword [eax + 0x24]
mov eax, dword [ebx + 4]
push 0x10
mov esi, dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
lea ecx, [ebx + 4]
shr eax, 0x1f
cmp byte [ebx + 0x3d], al
push 1
setne al
push 1
push eax
call esi
test eax, eax
mov eax, dword [ebx + 0x4c]
setns cl
cmp eax, 1
je 0x56fba1
test cl, cl
je 0x56fb7c
cmp eax, 2
je 0x56fba1
lea eax, [esp + 0x14]
mov ecx, ebx
push eax
call fcn.00570a80
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0xc
push 1
push edi
call dword [sym.imp.USER32.dll_EndDialog]
lea ecx, [ebx + 0x1330]
call fcn.00560ae0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0xc
push edi
mov ecx, ebx
call fcn.0056b180
lea ecx, [esp + 0x14]
call fcn.0056f840
push 0
push 0x5d2460
lea ecx, [ebx + 0xb0c]
call fcn.00528190
test eax, eax
je 0x56fca6
mov bl, byte [ebx + 0x47]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0xfb
push dword [esp + 0x18]
call edi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
push 0
test bl, bl
setne cl
push ecx
push 0xf1
push eax
call esi
mov eax, dword [esp + 0xc]
push 0xfb
push dword [esp + 0x18]
mov bl, byte [eax + 0x47]
call edi
movzx ecx, bl
push ecx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov ebx, dword [esp + 0x14]
push 0xfb
push ebx
call edi
push 0
push 3
push 0xc5
push eax
call esi
mov esi, dword [esp + 0xc]
lea ecx, [esi + 0x7c4]
call fcn.0052a2c0
push 0
push eax
push 0x7da
lea ecx, [esi + 0x7c4]
call fcn.00529e10
movzx edx, al
lea ecx, [esp + 0x14]
call fcn.00560820
cmp dword [eax + 0x14], 8
jb 0x56fc90
mov eax, dword [eax]
push eax
push 0xfb
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
lea ecx, [esp + 0x14]
call fcn.0040ab30
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0xc
push 0
push 2
push 0x111
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x2c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0xc