Function at 0x4306b3
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x64
mov eax, 0x4b673f
call fcn.00469c08
mov ebx, ecx
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x40], edx
mov byte [ecx], 1
cmp eax, 0x37
jg 0x430933
je 0x4308f1
cmp eax, 0x14
jg 0x4307bb
je 0x4307aa
add eax, 0xfffffff8
cmp eax, 0xb
ja case.0x430708.10
jmp dword [eax*4 + 0x430c47]
mov edi, dword [ebx + 0x3c]
test edi, edi
je case.0x430708.11
mov edi, dword [edi + 0xc]
test edi, edi
je case.0x430708.11
push 0xff
push dword [ebx + 0x20]
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.0042e3bc
push eax
push ecx
mov ecx, esp
push esi
call fcn.00414064
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 4]
jmp 0x430a16
mov edi, dword [ebx + 0x3c]
test edi, edi
je case.0x430708.11
mov edi, dword [edi]
jmp 0x43071d
push edx
push esi
push edi
push 0x13
mov ecx, ebx
call fcn.0042f4ce
jmp 0x430a28
push edx
push esi
push edi
push 0x14
jmp 0x430763
mov ecx, ebx
call fcn.00416162
test eax, eax
je 0x430a64
mov ecx, ebx
call fcn.00416162
mov esi, eax
cmp dword [esi + 0x84], 0
jne 0x4307a2
call fcn.0042db70
mov dword [esi + 0x84], eax
mov esi, dword [esi + 0x84]
jmp 0x4307dc
push str.UIObject_Window
mov ecx, edi
call fcn.00416cc5
jmp 0x430a64
cmp eax, 0x23
jg 0x43081c
je 0x4307f2
sub eax, 0x16
je case.0x430708.11
sub eax, 3
je case.0x430708.11
sub eax, 1
je 0x4307e6
sub eax, 1
jne case.0x430708.10
mov esi, edx
mov eax, esi
call fcn.00469bb2
ret 0x10
mov ecx, edi
call fcn.0041d23a
jmp 0x430a16
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], edx
push eax
mov dword [ebp - 0x4c], edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp - 0x48]
movzx ecx, word [ebp - 0x4c]
push eax
movzx eax, word [ebp - 0x50]
shl ecx, 0x10
or ecx, eax
push ecx
push ebx
push 0x37
jmp 0x430763
sub eax, 0x29
je 0x430870
sub eax, 3
je case.0x430708.10
sub eax, 1
je 0x430841
sub eax, 6
jne case.0x430708.10
xor esi, esi
inc esi
call fcn.0042d664
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4307dc
cmp edi, 0x5d
je 0x430864
cmp edi, 0x79
jne case.0x430708.11
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x430a16
mov ecx, dword [ebp - 0x48]
push ecx
push 0xffffffffffffffff
jmp 0x430814
mov byte [ecx], dl
jmp case.0x430708.11
push 1
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.0042dcb6
mov esi, dword [ebx + 0x40]
lea edi, [ebp - 0x6c]
xor eax, eax
mov dword [ebp - 0x70], edx
stosd dword es:[edi], eax
push 5
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea edi, [ebp - 0x24]
test esi, esi
jne 0x430899
lea esi, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x24], esi
jne 0x4308b5
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x34]
jne 0x4308b5
mov eax, dword [ebp - 0x48]
mov byte [eax], dl
jmp case.0x430708.11
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp dword [ebp - 0x24], esi
push edx
sete cl
shr eax, 0x10
test ax, ax
cwde
jle 0x4308d4
push eax
push dword [ecx*4 + 0x4d4ac0]
jmp 0x4308de
neg eax
push eax
push dword [ecx*4 + str._t_tUT_b_b]
push dword [ecx*4 + 0x4d4ab8]
mov ecx, ebx
call fcn.0042f4ce
jmp 0x430a16
cmp dword [ebx + 0x2c], edx
je case.0x430708.10
push 0x4000
mov ecx, ebx
call fcn.00417042
test al, al
je 0x430926
mov ecx, dword [ebx + 0x2c]
push 0x4000
call fcn.00417042
test al, al
jne 0x430926
mov eax, dword [ebp - 0x48]
mov byte [eax], 1
jmp 0x430a16
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebx + 0x2c]
push eax
push esi
push edi
push 0x37
jmp 0x4308e7
cmp eax, 0x64
jg 0x430a8d
je 0x430a81
sub eax, 0x54
je 0x430a76
sub eax, 1
je 0x430a6b
sub eax, 9
je 0x430a5d
dec eax
sub eax, 1
je 0x430a2f
dec eax
sub eax, 1
je 0x430a1e
sub eax, 1
jne case.0x430708.10
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x44], eax
test eax, eax
je case.0x430708.11
mov ecx, eax
call fcn.00418fe8
mov ecx, edi
mov ebx, eax
call fcn.0040c940
mov ecx, edi
lea esi, [eax + 8]
call fcn.0040c92d
mov ecx, dword [esi]
sub ecx, dword [eax]
sar ecx, 2
cmp ecx, ebx
jae 0x4309c7
cmp ebx, 0x3fffffff
jbe 0x4309bf
push str.vector_T__too_long
call fcn.00465a68
push ebx
mov ecx, edi
call fcn.004312ca
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
call fcn.00431034
mov ecx, dword [ebp - 0x44]
mov ebx, dword [eax]
lea eax, [ebp - 0x5c]
push eax
call fcn.00430fd9
mov ecx, dword [ebp - 0x44]
mov edi, dword [eax]
lea eax, [ebp - 0x4c]
push eax
call fcn.00431034
mov ecx, dword [ebp - 0x54]
mov esi, dword [eax]
call fcn.0040c92d
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 0x44], 0
push dword [ebp - 0x44]
push edi
push esi
push ebx
call fcn.00431571
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00431034
mov esi, dword [ebp - 0x40]
jmp 0x4307dc
push esi
push edi
push ecx
mov ecx, ebx
call fcn.0043047f
mov esi, eax
jmp 0x4307dc
mov ecx, ebx
call fcn.00415616
test al, al
je 0x430a16
push 0x200
mov ecx, ebx
call fcn.00417042
test al, al
je 0x430a16
push esi
push edi
push ebx
mov ecx, ebx
call fcn.00416162
mov ecx, eax
call fcn.0043bb01
jmp 0x430a16
mov ecx, ebx
call fcn.0042edef
xor esi, esi
jmp 0x4307dc
push esi
push edi
mov ecx, ebx
call fcn.0042ed27
jmp 0x430a16
push esi
push edi
mov ecx, ebx
call fcn.0042ed8b
jmp 0x430a16
push ecx
push edi
push ecx
mov ecx, ebx
call fcn.00430542
jmp 0x430a28
sub eax, 0x65
je 0x430c13
sub eax, 1
je 0x430bfc
dec eax
sub eax, 1
je 0x430b4d
sub eax, 1
je 0x430b24
sub eax, 8
je 0x430ad2
dec eax
sub eax, 1
jne case.0x430708.10
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je case.0x430708.11
push edx
push esi
push edi
push 0x73
jmp 0x430765
mov byte [ecx], dl
mov ecx, ebx
push 0x400
call fcn.00417042
test al, al
je 0x430afd
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x430afd
mov eax, dword [ebp - 0x48]
push eax
push esi
push 0
push 0x71
call fcn.0042f4ce
mov esi, eax
jmp 0x430b00
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
cmp byte [eax], 0
jne 0x4307dc
test edi, edi
je 0x4307dc
mov ecx, dword [ebp - 0x44]
push eax
push ecx
push 0
push 0x72
mov ecx, edi
jmp 0x430765
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je case.0x430708.11
test esi, esi
je 0x430b38
mov ecx, dword [ecx + 4]
jmp 0x430b3b
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x430b46
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
mov eax, edx
jmp 0x4307de
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je 0x430b74
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x430b74
mov eax, dword [ecx]
lea edx, [ebp - 0x50]
push ebx
push edx
call dword [eax + 4]
mov ecx, dword [eax]
mov dword [esi], ecx
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
jmp 0x430bf4
push edx
push edx
push edx
push 0x1b
mov ecx, ebx
call fcn.0042f4ce
test eax, eax
je 0x430a16
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004156bb
mov esi, eax
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 0xf
mov dword [ebp - 4], eax
call fcn.0042f4ce
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.00412374
push eax
xor edx, edx
lea ecx, [ebp - 0x20]
call fcn.0045a3d0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
add esp, 0x1c
call fcn.004123b1
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x50]
sub eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push eax
call fcn.00410fd6
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x50]
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 4], eax
xor esi, esi
inc esi
jmp 0x4307dc
push esi
push edi
lea ecx, [ebp - 0x58]
call fcn.00410fd6
push eax
mov ecx, ebx
call fcn.0042eb56
jmp 0x430a28
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
je case.0x430708.11
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je case.0x430708.11
mov eax, dword [ecx]
lea edx, [ebp - 0x3c]
push ebx
push edx
call dword [eax + 4]
push eax
mov ecx, edi
call fcn.0040c768
lea ecx, [ebp - 0x3c]
call fcn.004123b1
jmp 0x430bf4