Function at 0x470330
Capabilities:
Log keystrokes via polling

Disassembly:
push esi
push 0
push 0x738ac0
mov esi, ecx
mov eax, dword [esi + 0x54]
push 0x738aa8
push 0
push eax
call sub.MSVCR90.dll___RTDynamicCast
add esp, 0x14
test eax, eax
je 0x470702
mov edx, dword [eax + 0x58]
lea ecx, [eax + 0x58]
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x60]
call eax
test al, al
jne 0x47039a
mov eax, esi
call fcn.004715a0
add eax, 0x5a8
call fcn.00407bf0
test al, al
je 0x47039a
mov eax, esi
call fcn.00471570
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
test al, al
je 0x470702
push ebx
mov eax, esi
call fcn.004715a0
add eax, 0x5a8
call fcn.00407bf0
mov ebx, dword [esp + 0xc]
test al, al
je 0x4703f4
mov eax, esi
call fcn.00471570
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
test al, al
jne 0x4703f4
mov eax, dword [0x741c2c]
add eax, 0x3dc
call fcn.0044c580
test eax, eax
jne 0x4703f4
cmp dword [ebx + 4], 0x105
jne 0x4703f4
cmp dword [ebx + 8], 0x12
jne 0x4703f4
pop ebx
mov eax, 1
pop esi
ret 4
mov eax, dword [ebx + 4]
cmp eax, 0x104
je 0x470405
cmp eax, 0x100
jne 0x47040d
mov ecx, dword [ebx + 8]
cmp ecx, 0x12
jne 0x47041a
push ebx
mov ecx, esi
call sub.mfc90u.dll_CWnd::PreTranslateMessage
pop ebx
pop esi
ret 4
cmp eax, 0x100
jne 0x470436
cmp ecx, 3
jne 0x470436
mov dword [ebx + 8], 0x13
mov dword [ebx + 0xc], 0x450001
jmp 0x470477
cmp eax, 0x104
jne 0x47044b
cmp ecx, 0x75
jne 0x47044b
mov dword [ebx + 4], 0x100
jmp 0x470477
cmp eax, 0x100
jne 0x470477
cmp ecx, 0xff
jne 0x470477
mov cx, word [ebx + 0xe]
mov edx, 0x1ff
and cx, dx
mov eax, 0x14e
cmp cx, ax
jne 0x470477
mov dword [ebx + 8], 0x6b
test dword [ebx + 0xc], 0x1000000
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x10], edi
je 0x47048e
or edi, 0x100
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call ebp
mov ecx, 0x8000
test cx, ax
je 0x4704a9
or edi, 0x200
push 0x10
call ebp
mov edx, 0x8000
test dx, ax
je 0x4704bd
or edi, 0x400
push 0x12
call ebp
mov ecx, 0x8000
test cx, ax
je 0x4704d1
or edi, 0x800
mov eax, esi
call fcn.00471570
mov edx, dword [eax + 0xc]
lea ecx, [eax + 0xc]
mov eax, dword [edx]
push edi
call eax
cmp eax, 1
jne 0x47052d
mov eax, esi
call fcn.004715a0
add eax, 0x86a0
call fcn.00407bf0
test al, al
je case.0x470517.578
lea eax, [edi - 0x241]
cmp eax, 0x15
ja case.0x470517.578
movzx ecx, byte [eax + 0x47071c]
jmp dword [ecx*4 + 0x470714]
push ebx
mov ecx, esi
call sub.mfc90u.dll_CWnd::PreTranslateMessage
pop ebp
pop edi
pop ebx
pop esi
ret 4
test eax, eax
jne case.0x470517.578
mov eax, esi
call fcn.004715a0
add eax, 0x5a8
call fcn.00407bf0
test al, al
je 0x470578
mov eax, esi
call fcn.00471570
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
test al, al
jne 0x470578
cmp dword [ebx + 4], 0x104
jne 0x470578
mov eax, dword [ebx + 8]
cmp eax, 0x73
je 0x470578
cmp eax, 9
jne case.0x470517.578
mov eax, esi
call fcn.004715a0
add eax, 0x5a8
call fcn.00407bf0
test al, al
jne case.0x470517.577
push 0x12
call ebp
mov ecx, 0x8000
test cx, ax
je case.0x470517.577
push 0x11
call ebp
mov edx, 0x8000
test dx, ax
jne case.0x470517.577
push 0x10
call ebp
mov ecx, 0x8000
test cx, ax
jne case.0x470517.577
mov eax, dword [esp + 0x14]
cmp eax, 0x4e
jne 0x4705ec
mov ecx, esi
call fcn.00471550
mov edx, dword [eax + 0x20]
push 0
push 0x8030
push 0x111
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
pop ebp
pop edi
pop ebx
pop esi
ret 4
cmp eax, 0x43
jne 0x470615
mov ecx, esi
call fcn.00471550
push 0
push 0x8030
mov eax, dword [eax + 0x20]
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
pop ebp
pop edi
pop ebx
pop esi
ret 4
cmp eax, 0x51
jne 0x47063e
mov ecx, esi
call fcn.00471550
mov ecx, dword [eax + 0x20]
push 0
push 0x8081
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
pop ebp
pop edi
pop ebx
pop esi
ret 4
cmp eax, 0x42
jne 0x470667
mov ecx, esi
call fcn.00471550
mov edx, dword [eax + 0x20]
push 0
push 0x80b5
push 0x111
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
pop ebp
pop edi
pop ebx
pop esi
ret 4
cmp eax, 0x50
jne 0x47067c
mov ecx, esi
call fcn.00471550
push 0
push 0x80b6
jmp 0x4705ff
cmp eax, 0x47
jne 0x4706a5
mov ecx, esi
call fcn.00471550
mov ecx, dword [eax + 0x20]
push 0
push 0x80cd
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
pop ebp
pop edi
pop ebx
pop esi
ret 4
lea edx, [eax - 0x30]
cmp edx, 9
ja case.0x470517.577
lea edi, [eax - 0x31]
cmp eax, 0x30
jne 0x4706bc
lea edi, [eax - 0x27]
mov ecx, esi
call fcn.00471550
push 0
add edi, 0xe678
push edi
jmp 0x4705ff
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
push ecx
push edx
mov dword [ebx + 4], 0x100
mov eax, dword [esi + 0x20]
push 0x100
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
call dword [sym.imp.USER32.dll_TranslateMessage]
pop ebp
pop edi
pop ebx
mov eax, 1
pop esi
ret 4
mov ecx, dword [esp + 8]
push ecx
mov ecx, esi
call sub.mfc90u.dll_CWnd::PreTranslateMessage
pop esi
ret 4