Function at 0x4389b0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 8
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x72de4], 1
je 0x438d69
mov edi, dword [esp + 0x14]
mov ecx, 0xfff8cb66
push ebx
mov ebx, dword [esp + 0x1c]
lea eax, [esi + 0x7349a]
sub ecx, esi
push ebp
mov ebp, dword [esp + 0x28]
mov word [esi + 0x38124], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov al, byte [eax]
test al, al
je case.0x438a07.39
movsx eax, al
dec eax
cmp eax, 0x2d
ja case.0x438a07.39
jmp dword [eax*4 + 0x438d74]
push ebx
push edi
mov ecx, esi
call fcn.00468d50
jmp case.0x438a07.39
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.00440790
jmp case.0x438a07.39
mov edx, dword [esp + 0x24]
mov ecx, esi
push edx
push ebx
push edi
call fcn.00475590
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043e590
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043e050
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043e200
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.00472b20
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.004749f0
jmp case.0x438a07.39
push ebp
push ebx
push edi
mov ecx, esi
call fcn.00437bc0
jmp case.0x438a07.39
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.0043ef20
jmp case.0x438a07.39
mov ecx, dword [esp + 0x24]
push ebp
push ecx
push ebx
push edi
mov ecx, esi
call fcn.0047b990
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0046d5d0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0046ec60
jmp case.0x438a07.39
mov edx, dword [esp + 0x24]
push ebp
push edx
push ebx
push edi
mov ecx, esi
call fcn.00468260
jmp case.0x438a07.39
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.0047d710
jmp case.0x438a07.39
mov ecx, dword [esp + 0x24]
push ecx
push ebx
push edi
mov ecx, esi
call fcn.004761b0
jmp case.0x438a07.39
mov ecx, esi
call fcn.004795d0
jmp case.0x438a07.39
mov edx, dword [esp + 0x24]
push ebp
push edx
push ebx
push edi
mov ecx, esi
call fcn.0043d830
jmp case.0x438a07.39
push ebp
push ebx
push edi
mov ecx, esi
call fcn.00480100
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.00476e30
jmp case.0x438a07.39
push ebp
push ebx
push edi
mov ecx, esi
call fcn.0043e9b0
jmp case.0x438a07.39
mov ecx, esi
call fcn.0044b0d0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0047aed0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.00472930
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.004768a0
jmp case.0x438a07.39
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
push edi
mov ecx, esi
call fcn.0047dcb0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.004711f0
jmp case.0x438a07.39
movsx ecx, bx
movsx edx, di
push ecx
push edx
mov ecx, esi
call fcn.004798b0
jmp case.0x438a07.39
mov ecx, esi
call fcn.0043d600
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043d1f0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0047a2f0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.004781c0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.00487310
jmp case.0x438a07.39
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.00490160
jmp case.0x438a07.39
movsx edx, bx
movsx eax, di
push edx
push eax
mov ecx, esi
call fcn.0048f800
jmp case.0x438a07.39
movsx ecx, bx
movsx edx, di
push ecx
push edx
mov ecx, esi
call fcn.00489130
jmp case.0x438a07.39
movsx eax, bx
movsx ecx, di
push eax
push ecx
mov ecx, esi
call fcn.0048bb40
jmp case.0x438a07.39
movsx edx, bx
movsx eax, di
push edx
push eax
mov ecx, esi
call fcn.0048cfb0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043e3d0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0046cd10
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0043dcc0
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.00476c90
jmp case.0x438a07.39
push ebx
push edi
mov ecx, esi
call fcn.0046de00
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
add ecx, eax
mov dword [esp + 0x10], eax
cmp ecx, 0x3c
jl 0x4389f0
mov ecx, esi
call fcn.004495a0
mov cl, byte [eax + esi + 0x7353a]
mov eax, dword [esi + 0x72f10]
pop ebp
cmp cl, 0x64
pop ebx
jne 0x438d37
test eax, eax
jle 0x438d69
push 0x12
call dword [sym.imp.user32.dll_GetAsyncKeyState]
and eax, 0xffff8000
test ax, ax
je 0x438d0a
mov edx, dword [esi + 0x72588]
mov ecx, dword [esi + 0x3822c]
push 0x1e
push edx
push 3
push 0x1b7
push 0x170
call fcn.0049f230
mov eax, dword [esi + 0x72f10]
lea edi, [esi + 0x730ed]
push eax
push 0x4bda88
push edi
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push 0xc8
push 0xc8
push 0xdc
jmp 0x438d57
test eax, eax
jle 0x438d69
lea edi, [esi + 0x730ed]
push eax
push 0x4bda88
push edi
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push 0xa
push 0xa
push 0xa
push edi
push 0x1c6
push 0x17c
mov ecx, esi
call fcn.00417220
pop edi
pop esi
add esp, 8
ret 0x10