Function at 0x4094a0
Capabilities:
Log keystrokes via polling
Reference sql statements

Disassembly:
push ebx
push edi
mov edx, 0xd
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x4094a7
call fcn.0048d6d0
push dword [esp + 0x44]
call fcn.0042e610
mov edx, 0x5cf064
lea ecx, [esp]
call fcn.0042e008
mov dword [esp + 4], 0
call fcn.0047a474
push edx
push eax
pop dword [esp + 0xc]
pop dword [esp + 0xc]
mov eax, str.Begin_Transaction
push eax
push dword [0x8f9c3c]
call fcn.0047f005
mov ebx, eax
and ebx, ebx
jne 0x409540
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov edx, str.Add_link_error
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
call fcn.0047f041
pop eax
call fcn.0042e5e2
add dword [esp], edx
call fcn.00420059
call fcn.0042e610
mov dword [esp + 0x10], 0
jmp 0x40954a
push 0x4d
call fcn.00478744
cmp eax, dword [esp + 0x10]
jl 0x40a132
push dword [esp + 0x10]
push 0x4d
call fcn.00473779
mov ebx, eax
and ebx, 1
and ebx, ebx
je 0x40a0bc
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
call fcn.0042e5e2
add dword [esp], edx
call fcn.00413fd1
call fcn.0042e610
and eax, eax
je 0x409ae0
mov ebx, dword [esp + 0x40]
and ebx, ebx
jle 0x409a18
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0x4e
call fcn.00473529
call fcn.0042e5e2
add dword [esp], edx
call fcn.0041a15d
call fcn.0048d660
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d1a70
push edx
call fcn.0048d570
mov edx, dword [0x8f9d0c]
push edx
call fcn.0048d570
call fcn.0042e600
mov edx, eax
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
jne 0x4097bb
mov ebx, dword [esp + 4]
and ebx, ebx
jne 0x4097bb
push edx
call fcn.0048d530
pop edx
push eax
mov edx, str.SELECT_Description_FROM_keys_WHERE_key
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
pop eax
mov edx, 0x5cf830
push edx
call fcn.0048d570
lea eax, [esp + 0x18]
push eax
call fcn.0048d5d0
push dword [esp + 0x14]
push dword [0x8f9c3c]
call fcn.0047f11d
mov ebx, eax
and ebx, ebx
je 0x4097b3
push dword [0x8f9c3c]
call fcn.0047f12f
and eax, eax
je 0x4096e6
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [0x8f9c3c]
call fcn.0047f157
lea eax, [esp + 0x1c]
push eax
call fcn.0048d5d0
jmp 0x4096e6
push dword [0x8f9c3c]
call fcn.0047f184
push dword [esp + 0x18]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x4097b3
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [esp + 0xc]
call fcn.0048b5a0
call fcn.0048d660
mov edx, 0x5dbb02
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
jne 0x409755
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x409755
mov eax, 1
jmp 0x409757
xor eax, eax
and eax, eax
je 0x409781
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d8fde
push edx
call fcn.0048d570
mov edx, dword [esp + 0x1c]
push edx
call fcn.0048d570
mov edx, 0x5d2272
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
mov dword [esp + 4], 1
mov edx, 0x5cf064
lea ecx, [esp + 0x1c]
call fcn.0042e008
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [esp + 0x1c]
push 0x4d
call fcn.00478771
call fcn.0048d660
mov edx, 0x5cf064
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
jne 0x409847
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5cf7bc
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
pop eax
lea eax, [esp + 0x20]
push eax
call fcn.0048d5d0
mov edx, 0x5cf064
lea ecx, [esp + 0x20]
call fcn.0042e008
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 2
push dword [esp + 0x1c]
push 0x4d
call fcn.00478771
call fcn.0048d660
mov edx, 0x5cf064
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
jne 0x4098d3
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5cf7bc
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 2
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
pop eax
lea eax, [esp + 0x24]
push eax
call fcn.0048d5d0
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
je 0x409971
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x24]
push 0x4d
call fcn.00478771
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push dword [esp + 0x30]
call fcn.0048abc0
mov ebx, eax
neg ebx
add ebx, 0x1d
push ebx
call fcn.0048ad40
pop eax
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x409a13
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x28]
push 0x4d
call fcn.00478771
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push dword [esp + 0x34]
call fcn.0048abc0
mov ebx, eax
neg ebx
add ebx, 0x1d
push ebx
call fcn.0048ad40
pop eax
mov edx, dword [esp + 0x30]
push edx
call fcn.0048d570
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
pop eax
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x409adb
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
je 0x409a74
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x24]
push 0x4d
call fcn.00478771
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x409adb
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x28]
push 0x4d
call fcn.00478771
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
pop eax
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x40a0bc
mov edx, str._ORDER_BY_ActivVal
lea ecx, [esp + 0x24]
call fcn.0042e008
push dword [0x8f9a9c]
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x409b0b
mov edx, str._ORDER_BY_key
lea ecx, [esp + 0x28]
call fcn.0042e008
jmp 0x409b3d
mov ebx, 1
cmp ebx, dword [esp]
jne 0x409b25
mov edx, str._ORDER_BY_ActivVal
lea ecx, [esp + 0x28]
call fcn.0042e008
jmp 0x409b3d
mov ebx, 2
cmp ebx, dword [esp]
jne 0x409b3d
mov edx, str._ORDER_BY_Comment
lea ecx, [esp + 0x28]
call fcn.0042e008
pop eax
push dword [0x8f9b20]
xor ebx, ebx
cmp ebx, dword [esp]
je 0x409b55
mov ebx, 2
cmp ebx, dword [esp]
jne 0x409b7e
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, str._DESC
push edx
call fcn.0048d570
lea eax, [esp + 0x2c]
push eax
call fcn.0048d5d0
jmp 0x409baf
mov ebx, 1
cmp ebx, dword [esp]
jne 0x409baf
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, str._ASC
push edx
call fcn.0048d570
lea eax, [esp + 0x2c]
push eax
call fcn.0048d5d0
pop eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
call fcn.0042e5e2
add dword [esp], edx
call fcn.0041a15d
lea eax, [esp + 0x2c]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0x4e
call fcn.00473529
call fcn.0042e5e2
add dword [esp], edx
call fcn.0041a15d
call fcn.0048d660
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d1a70
push edx
call fcn.0048d570
mov edx, dword [0x8f9b58]
push edx
call fcn.0048d570
call fcn.0042e600
mov edx, eax
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
je 0x409c9a
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d313c
push edx
call fcn.0048d570
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
mov edx, str._And_NOT_Blocked
push edx
call fcn.0048d570
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d570
lea eax, [esp + 0x18]
push eax
call fcn.0048d5d0
jmp 0x409cd6
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5d313c
push edx
call fcn.0048d570
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
mov edx, str._And_Blocked
push edx
call fcn.0048d570
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d570
lea eax, [esp + 0x18]
push eax
call fcn.0048d5d0
push dword [esp + 0x14]
push dword [0x8f9c3c]
call fcn.0047f11d
mov ebx, eax
and ebx, ebx
je 0x40a0bc
mov ebx, dword [esp + 0x40]
and ebx, ebx
jne 0x409dcb
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [esp + 0xc]
call fcn.0048b5a0
call fcn.0048d660
mov edx, 0x5dbb02
pop ecx
push ecx
call fcn.0042e600
mov ecx, eax
call fcn.0042e590
jne 0x409d4a
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x409d4a
mov eax, 1
jmp 0x409d4c
xor eax, eax
and eax, eax
je 0x409d76
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5d8fde
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [esp + 0x20]
push 0x4d
call fcn.00478771
pop eax
mov edx, 0x5d2272
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
push dword [0x8f9c3c]
call fcn.0047f12f
and eax, eax
je 0x40a08b
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 0
push dword [0x8f9c3c]
call fcn.0047f157
lea eax, [esp + 0x30]
push eax
call fcn.0048d5d0
push dword [esp + 0x2c]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x40a086
mov ebx, dword [esp + 0x40]
and ebx, ebx
jne 0x40a028
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 1
push dword [0x8f9c3c]
call fcn.0047f157
lea eax, [esp + 0x34]
push eax
call fcn.0048d5d0
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push 3
push dword [0x8f9c3c]
call fcn.0047f157
lea eax, [esp + 0x24]
push eax
call fcn.0048d5d0
push dword [esp + 0x30]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x409ec6
push dword [esp + 0x30]
mov edx, str.Key_Blocked_
pop ecx
call fcn.0042e590
jne 0x409ec6
push edx
call fcn.0048d530
pop edx
push eax
mov edx, str._tActiv._Count:
push edx
call fcn.0048d570
mov edx, dword [esp + 0x34]
push edx
call fcn.0048d570
lea eax, [esp + 0x34]
push eax
call fcn.0048d5d0
mov edx, 0x5cf064
lea ecx, [esp + 0x1c]
call fcn.0042e008
push dword [esp + 0x30]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
jne 0x409f0c
push edx
call fcn.0048d530
pop edx
push eax
mov edx, 0x5cf7bc
push edx
call fcn.0048d570
mov edx, dword [esp + 0x34]
push edx
call fcn.0048d570
lea eax, [esp + 0x20]
push eax
call fcn.0048d5d0
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
je 0x409f95
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov edx, dword [esp + 0x34]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, dword [esp + 0x28]
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push dword [esp + 0x30]
call fcn.0048abc0
mov ebx, eax
neg ebx
add ebx, 0x1d
push ebx
call fcn.0048ad40
pop eax
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x40a026
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov edx, dword [esp + 0x38]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
push dword [esp + 0x34]
call fcn.0048abc0
mov ebx, eax
neg ebx
add ebx, 0x1d
push ebx
call fcn.0048ad40
pop eax
mov edx, dword [esp + 0x30]
push edx
call fcn.0048d570
call fcn.0042e5e2
add dword [esp], edx
call fcn.0048b760
pop eax
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x40a086
push dword [esp]
mov edx, 0x5cf064
pop ecx
call fcn.0042e590
je 0x40a056
mov edx, dword [esp + 0x2c]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x40a086
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
mov edx, dword [esp + 0x30]
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
jmp 0x409dcb
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
mov edx, 0x5dbb02
push edx
call fcn.0048d570
lea eax, [esp + 4]
push eax
call fcn.0048d5d0
push dword [0x8f9c3c]
call fcn.0047f184
push 0x1b
call sub.USER32.dll_GetKeyState
mov ebx, eax
cmp ebx, 1
jle 0x40a0df
call fcn.0047af05
mov ebx, eax
and ebx, ebx
jne 0x40a0df
call fcn.0041a818
jmp 0x40a132
call fcn.0047a474
push edx
push eax
lea eax, [esp + 0x10]
mov edx, dword [eax]
sub dword [esp], edx
mov edx, dword [eax + 4]
sbb dword [esp + 4], edx
pop ebx
pop edi
cmp edi, 0
jg 0x40a10b
jl 0x40a107
cmp ebx, 0x96
ja 0x40a10b
xor eax, eax
jmp 0x40a110
mov eax, 1
or eax, eax
je 0x40a128
call fcn.0047a474
push edx
push eax
pop dword [esp + 0xc]
pop dword [esp + 0xc]
call fcn.0041a818
inc dword [esp + 0x10]
jno 0x40954a
mov eax, str.Commit
push eax
push dword [0x8f9c3c]
call fcn.0047f005
mov ebx, eax
and ebx, ebx
jne 0x40a18c
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
mov edx, str.Add_link_error
push edx
call fcn.0048d570
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d530
pop edx
push eax
call fcn.0047f041
pop eax
call fcn.0042e5e2
add dword [esp], edx
call fcn.00420059
call fcn.0042e610
mov edx, dword [esp]
push edx
call fcn.0048d530
pop edx
push eax
push edx
call fcn.0048d570
pop eax
push eax
call fcn.0042e5d0
pop edx
add eax, edx
jmp 0x40a1b3
push dword [esp + 0x2c]
call fcn.0048d760
push dword [esp + 0x30]
call fcn.0048d760
push dword [esp + 0x28]
call fcn.0048d760
push dword [esp]
call fcn.0048d760
push dword [esp + 0x14]
call fcn.0048d760
push dword [esp + 0x1c]
call fcn.0048d760
push dword [esp + 0x24]
call fcn.0048d760
push dword [esp + 0x20]
call fcn.0048d760
push dword [esp + 0x18]
call fcn.0048d760
add esp, 0x34
pop edi
pop ebx
ret 4