Function at 0x46d9f8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
test edi, edi
jl 0x46da1a
cmp edi, 3
je 0x46da1a
call sub.USER32.dll_GetCapture
test eax, eax
je 0x46da2d
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, esi
sar edx, 0x1f
test dl, 1
je 0x46db37
cmp ebx, 0x12
jne 0x46da51
mov ecx, esi
sar ecx, 0x18
test cl, 1
je 0x46da51
xor eax, eax
mov dword [0x4d0c3c], eax
cmp dword [0x4d0c38], 0
je 0x46db0c
call sub.USER32.dll_GetFocus
mov dword [0x4e4674], eax
cmp dword [0x4e4674], 0
je 0x46dae6
mov edx, dword [0x4e4674]
cmp edx, dword [0x4d42a0]
jne 0x46da8b
mov ecx, dword [0x4d42ac]
mov dword [0x4e4674], ecx
mov eax, dword [0x4e4674]
push eax
call fcn.004b7934
mov dword [0x4e4670], eax
cmp dword [0x4e4670], 0
je 0x46dab2
mov edx, dword [0x4e4674]
mov dword [0x4e467c], edx
jmp 0x46daf5
mov ecx, dword [0x4e4674]
push ecx
call sub.USER32.dll_GetParent
mov dword [0x4e467c], eax
mov eax, dword [0x4e467c]
push eax
call fcn.004b7934
mov dword [0x4e4670], eax
cmp dword [0x4e4670], 0
jne 0x46daf5
xor edx, edx
mov dword [0x4e467c], edx
jmp 0x46daf5
xor ecx, ecx
mov dword [0x4e4670], ecx
xor eax, eax
mov dword [0x4e467c], eax
mov eax, dword [0x4e467c]
test eax, eax
je 0x46db0c
push 0
push ebx
push 0x440
push eax
call sub.USER32.dll_PostMessageA
xor edx, edx
mov dword [0x4e4680], edx
xor ecx, ecx
mov dword [0x4d0c40], ecx
xor eax, eax
mov dword [0x4d0c38], eax
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp ebx, 0x12
jne 0x46db63
mov ecx, esi
sar ecx, 0x18
test cl, 1
je 0x46db63
mov dword [0x4d0c3c], 1
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, esi
shr edx, 0x10
and dx, 0xffff
movzx ecx, dx
sar ecx, 8
and cl, 0xff
xor eax, eax
mov al, cl
cmp eax, 0x28
jg 0x46db95
je 0x46dba7
sub eax, 2
jb 0x46dba7
add eax, 0xfffffffa
sub eax, 2
jb 0x46dba7
sub eax, 0x16
je 0x46dba7
jmp 0x46dbc9
add eax, 0xffffffc0
sub eax, 2
jb 0x46dba7
add eax, 0xfffffffa
sub eax, 2
jb 0x46dba7
jmp 0x46dbc9
cmp ebx, dword [0x4d0c40]
sete dl
and edx, 1
mov dword [0x4e4680], edx
mov dword [0x4d0c40], ebx
xor ecx, ecx
mov dword [0x4d0c38], ecx
jmp 0x46dbf3
xor eax, eax
mov dword [0x4e4680], eax
xor edx, edx
mov dword [0x4d0c40], edx
xor ecx, ecx
mov dword [0x4d0c38], ecx
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4cb0a8], 0
je 0x46dc42
cmp ebx, 0x30
jb 0x46dc06
cmp ebx, 0x39
jbe 0x46dc42
cmp ebx, 0x4b
jne 0x46dc17
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x46dc42
cmp ebx, 0xbc
je 0x46dc42
call fcn.0041678c
cmp ebx, 0x1b
jne 0x46dc42
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
call sub.USER32.dll_GetFocus
mov dword [0x4e4674], eax
cmp dword [0x4e4674], 0
je 0x46dcca
mov edx, dword [0x4e4674]
cmp edx, dword [0x4d42a0]
jne 0x46dc6f
mov ecx, dword [0x4d42ac]
mov dword [0x4e4674], ecx
mov eax, dword [0x4e4674]
push eax
call fcn.004b7934
mov dword [0x4e4670], eax
cmp dword [0x4e4670], 0
je 0x46dc96
mov edx, dword [0x4e4674]
mov dword [0x4e467c], edx
jmp 0x46dcd9
mov ecx, dword [0x4e4674]
push ecx
call sub.USER32.dll_GetParent
mov dword [0x4e467c], eax
mov eax, dword [0x4e467c]
push eax
call fcn.004b7934
mov dword [0x4e4670], eax
cmp dword [0x4e4670], 0
jne 0x46dcd9
xor edx, edx
mov dword [0x4e467c], edx
jmp 0x46dcd9
xor ecx, ecx
mov dword [0x4e4670], ecx
xor eax, eax
mov dword [0x4e467c], eax
mov edx, esi
sar edx, 0x1d
test dl, 1
jne 0x46edeb
mov ecx, ebx
add ecx, 0xfffffff7
cmp ecx, 0x4c
ja case.0x46dcfb.9
mov cl, byte [ecx + 0x46dd02]
jmp dword [ecx*4 + 0x46dd4f]
cmp dword [0x4e4670], 0
jne 0x46ddb7
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
cmp ecx, dword [0x4e4674]
jne 0x46de04
cmp dword [0x4e4680], 0
jne 0x46ddeb
push 0
push 0x20425
push 0x111
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x518]
cmp ecx, dword [0x4e4674]
jne 0x46de22
mov dword [0x4cd188], 1
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46de52
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov ecx, dword [0x4e467c]
cmp ecx, dword [0x4d42b4]
jne 0x46deb6
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
cmp edx, dword [0x4e4674]
jne 0x46deb6
cmp dword [0x4e4680], 0
jne 0x46de9e
mov dword [0x4d0f4c], 6
push 0
push 0x4c8
push 0x111
mov ecx, dword [0x4d429c]
push ecx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x518]
cmp ecx, dword [0x4e4674]
jne 0x46df0b
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46df0b
cmp dword [0x4e4680], 0
jne 0x46def2
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
je 0x46df8c
mov ecx, dword [0x4e467c]
cmp ecx, dword [0x4d42b4]
jne 0x46df8c
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
cmp edx, dword [0x4e4674]
jne 0x46df8c
cmp dword [0x4e4680], 0
jne 0x46df74
mov dword [0x4d0f4c], 6
push 0
push 0x4cb
push 0x111
mov ecx, dword [0x4d429c]
push ecx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
je 0x46dfb2
cmp dword [0x4d1c50], 0
jne 0x46dfc6
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov dword [0x4d0c38], 1
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
je 0x46e039
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
cmp ecx, dword [0x4e4674]
jne 0x46e039
cmp dword [0x4e4680], 0
jne 0x46e020
push 0
push 0x204
push 0x210
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp dword [0x4e5360], 0
jne 0x46e0d9
cmp dword [0x4d16e4], 0
je 0x46e0d9
push 0x68
mov edx, dword [0x4d16e4]
push edx
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetFocus
pop ecx
cmp ecx, eax
jne 0x46e0d9
push 0
push 0
push 0x188
push 0x68
mov eax, dword [0x4d16e4]
push eax
call sub.USER32.dll_SendDlgItemMessageA
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x46e0d9
mov edx, dword [ebp - 4]
shl edx, 6
test byte [edx + 0x4e633c], 4
jne 0x46e0a9
mov ecx, dword [ebp - 4]
shl ecx, 6
test byte [ecx + 0x4e633c], 8
je 0x46e0d9
push 0
mov eax, dword [ebp - 4]
push eax
push 0x4c8
mov edx, dword [0x4d16e4]
push edx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46e10a
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
cmp edx, dword [0x4e4674]
jne 0x46e131
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x518]
cmp edx, dword [0x4e4674]
jne 0x46e18b
mov ecx, dword [0x4e4670]
cmp byte [ecx + 0x4e3], 0
je 0x46e15f
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e18b
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x46e1bf
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46e1db
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
cmp ecx, dword [0x4e4674]
jne 0x46e218
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
push edx
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x46e218
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e25f
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46e27b
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
cmp ecx, dword [0x4e4674]
jne 0x46e2b8
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
push edx
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x46e2b8
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4d16e4], 0
je 0x46e4a9
push 0x68
mov ecx, dword [0x4d16e4]
push ecx
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetFocus
pop edx
cmp edx, eax
jne 0x46e4a9
push 0
push 0
push 0x188
push 0x68
mov eax, dword [0x4d16e4]
push eax
call sub.USER32.dll_SendDlgItemMessageA
cmp eax, 0xffffffff
je 0x46e4a9
cmp ebx, 0x25
jne 0x46e46f
mov ecx, eax
shl ecx, 6
test byte [ecx + 0x4e633c], 4
je 0x46e36b
push 0
push eax
push 0x4c8
mov eax, dword [0x4d16e4]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, eax
shl edx, 6
test byte [edx + 0x4e633c], 8
je 0x46e3fe
dec eax
mov ecx, eax
shl ecx, 3
lea edx, [ecx*8 + 0x4e633c]
test eax, eax
jl 0x46e3e5
test byte [edx], 4
jne 0x46e398
test byte [edx], 8
je 0x46e3dd
push 0
push eax
push 0x186
push 0x68
mov eax, dword [0x4d16e4]
push eax
call sub.USER32.dll_SendDlgItemMessageA
push 0x4d1cb4
push 0x4e630c
push 0
mov ecx, dword [0x4d16e4]
push ecx
call fcn.004aa45c
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
dec eax
add edx, 0xffffffc0
test eax, eax
jge 0x46e38e
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, eax
shl edx, 3
lea edx, [edx*8 + 0x4e633c]
test eax, eax
jl 0x46e4a9
test byte [edx], 0x10
jne 0x46e465
test byte [edx], 4
je 0x46e4a9
push 0
push eax
push 0x186
push 0x68
mov eax, dword [0x4d16e4]
push eax
call sub.USER32.dll_SendDlgItemMessageA
push 0x4d1cb4
push 0x4e630c
push 0
mov ecx, dword [0x4d16e4]
push ecx
call fcn.004aa45c
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
dec eax
add edx, 0xffffffc0
test eax, eax
jge 0x46e412
jmp 0x46e4a9
mov edx, eax
shl edx, 6
test byte [edx + 0x4e633c], 8
je 0x46e4a9
push 0
push eax
push 0x4c8
mov ecx, dword [0x4d16e4]
push ecx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e5f9
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
push 0x68
mov ecx, dword [0x4e4678]
push ecx
call sub.USER32.dll_GetDlgItem
mov dword [0x4e4674], eax
cmp dword [0x4e4678], 0
je 0x46e769
cmp dword [0x4e4674], 0
je 0x46e769
cmp dword [0x4e4680], 0
je 0x46e525
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push 0
push 0
push 0x188
mov edx, dword [0x4e4674]
push edx
call sub.USER32.dll_SendMessageA
mov dword [0x4e4684], eax
cmp dword [0x4e4684], 0xffffffff
jne 0x46e550
xor ecx, ecx
mov dword [0x4e4684], ecx
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e5a4
dec dword [0x4e4684]
cmp dword [0x4e4684], 0
jge 0x46e5ce
mov dword [0x4e4684], 0x14
jmp 0x46e586
dec dword [0x4e4684]
cmp dword [0x4e4684], 0
jle 0x46e5ce
push 0
mov eax, dword [0x4e4684]
push eax
push 0x187
mov edx, dword [0x4e4674]
push edx
call sub.USER32.dll_SendMessageA
inc eax
je 0x46e577
jmp 0x46e5ce
inc dword [0x4e4684]
push 0
mov ecx, dword [0x4e4684]
push ecx
push 0x187
mov eax, dword [0x4e4674]
push eax
call sub.USER32.dll_SendMessageA
inc eax
jne 0x46e5ce
xor edx, edx
mov dword [0x4e4684], edx
mov ecx, dword [0x4e4684]
push ecx
mov eax, dword [0x4e4674]
push eax
call fcn.004aa7d4
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46e616
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e71f
mov ecx, dword [0x4e4670]
cmp byte [ecx + 0x4cc], 1
jne 0x46e686
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
cmp edx, dword [0x4e4674]
jne 0x46e65c
mov ecx, dword [0x4e4670]
mov eax, dword [ecx + 0x518]
push eax
call sub.USER32.dll_SetFocus
jmp 0x46e66e
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
push ecx
call sub.USER32.dll_SetFocus
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, dword [0x4e4670]
cmp byte [edx + 0x4cc], 9
jne 0x46e769
mov ecx, dword [0x4e4670]
cmp dword [ecx + 0x51c], 0
je 0x46e769
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x51c]
cmp edx, dword [0x4e4674]
jne 0x46e6f5
mov ecx, dword [0x4e4670]
cmp dword [ecx + 0x518], 0
je 0x46e6e1
mov eax, dword [0x4e4670]
mov edx, dword [eax + 0x518]
push edx
call sub.USER32.dll_SetFocus
jmp 0x46e707
mov ecx, dword [0x4e4670]
mov eax, dword [ecx + 0x51c]
push eax
call sub.USER32.dll_SetFocus
jmp 0x46e707
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x51c]
push ecx
call sub.USER32.dll_SetFocus
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp dword [0x4e467c], 0
je 0x46e769
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x518]
cmp ecx, dword [0x4e4674]
jne 0x46e769
push 0
push 9
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
je 0x46e855
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e855
mov ecx, dword [0x4e4670]
mov dword [0x4e4688], ecx
mov eax, dword [0x4e4688]
mov eax, dword [eax + 0x744]
mov dword [0x4e4688], eax
test eax, eax
jne 0x46e7c6
mov edx, dword [0x4d4294]
mov dword [0x4e4688], edx
mov eax, dword [0x4e4688]
cmp eax, dword [0x4e4670]
je 0x46e835
cmp byte [eax + 0x4cc], 1
jne 0x46e7a6
mov edx, dword [0x4e4688]
mov ecx, dword [edx]
push ecx
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x46e7ff
mov eax, dword [0x4e4688]
mov edx, dword [eax]
push edx
call sub.USER32.dll_IsWindowVisible
test eax, eax
jne 0x46e80f
push 1
mov ecx, dword [0x4e4688]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_ShowWindow
mov edx, dword [0x4e4688]
mov ecx, dword [edx]
push ecx
call sub.USER32.dll_SetFocus
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push 0
call sub.USER32.dll_MessageBeep
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46e8a2
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e8a2
push 2
call fcn.0043d8a4
test eax, eax
je 0x46e8a2
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46e8ef
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e8ef
push 3
call fcn.0043d8a4
test eax, eax
je 0x46e8ef
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46e93c
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e93c
push 0xf
call fcn.0043d8a4
test eax, eax
je 0x46e93c
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46e989
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e989
push 0x1f
call fcn.0043d8a4
test eax, eax
je 0x46e989
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46e9d6
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46e9d6
push 0x16
call fcn.0043d8a4
test eax, eax
je 0x46e9d6
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46eb32
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46eb32
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
cmp dword [0x4d2c6c], 0
je 0x46ea58
mov ecx, dword [0x4d2c6c]
cmp ecx, dword [0x4e4678]
jne 0x46ea58
push 0
push 0x418
push 0x111
mov eax, dword [0x4d2c6c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46ea75
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov ecx, dword [0x4e467c]
cmp ecx, dword [0x4d42bc]
jne 0x46ea9f
cmp dword [0x4d0c9c], 0
je 0x46ea9f
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov edx, dword [0x4e467c]
cmp edx, dword [0x4d42b4]
jne 0x46eb05
mov ecx, dword [0x4e4670]
mov eax, dword [ecx + 0x51c]
cmp eax, dword [0x4e4674]
jne 0x46eb05
cmp dword [0x4e4680], 0
jne 0x46eaec
mov dword [0x4d0f4c], 6
push 0
push 0x4cc
push 0x111
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push 0
push ebx
push 0x440
mov edx, dword [0x4e467c]
push edx
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
jne 0x46ebac
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46ebac
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
cmp dword [0x4d2c6c], 0
je 0x46ebac
mov ecx, dword [0x4d2c6c]
cmp ecx, dword [0x4e4678]
jne 0x46ebac
push 0
push 0x417
push 0x111
mov eax, dword [0x4d2c6c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp ebx, 0x70
jb 0x46edd7
cmp ebx, 0x7b
ja 0x46edd7
cmp ebx, 0x70
jne 0x46ecb7
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x46ecf6
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jl 0x46ec84
push 0x4d832f
push 0x4d0c44
call fcn.00406d38
test eax, eax
jne 0x46ecf6
cmp dword [0x4e4680], 0
jne 0x46ec6b
push 0x4e23ec
push str._smirc.hlp
push 0x4d832f
call sub.USER32.dll_wsprintfA
add esp, 0xc
cmp dword [0x4d0c34], 0
jne 0x46ec52
push 0
push 3
push 0x4d832f
mov ecx, dword [0x4d429c]
push ecx
call sub.USER32.dll_WinHelpA
jmp 0x46ec6b
mov eax, dword [0x4d0c34]
push eax
push 1
push 0x4d832f
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_WinHelpA
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push 0x4d832f
push str.sF1
call fcn.00406d38
test eax, eax
jne 0x46ecf6
push 0
call fcn.0040ad18
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp ebx, 0x72
jne 0x46ecf6
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
mov eax, dword [0x4d2c6c]
test eax, eax
je 0x46ecf6
cmp eax, dword [0x4e4678]
jne 0x46ecf6
push eax
call fcn.00446628
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
cmp dword [0x4e4670], 0
jne 0x46ed13
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov ecx, ebx
sub ecx, 0x6f
mov dword [0x4e4684], ecx
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46ed44
mov eax, dword [0x4e4684]
push eax
push 0x4d0c5b
push 0x4e468c
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x46ed84
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46ed6b
mov edx, dword [0x4e4684]
push edx
push 0x4d0c62
push 0x4e468c
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x46ed84
mov ecx, dword [0x4e4684]
push ecx
push 0x4d0c69
push 0x4e468c
call sub.USER32.dll_wsprintfA
add esp, 0xc
push 0x4e4b90
push 0x4e468c
call fcn.00406d38
test eax, eax
je 0x46edc3
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp ebx, 0xd
jne 0x46ee63
mov eax, dword [0x4e4670]
test eax, eax
je 0x46ee4f
mov edx, dword [eax + 0x518]
cmp edx, dword [0x4e4674]
jne 0x46ee4f
push 3
mov ecx, dword [0x4e467c]
push ecx
call fcn.0043dcac
mov dword [0x4e4684], eax
cmp dword [0x4e4684], 1
jne 0x46ee4f
push 0
push ebx
push 0x440
mov eax, dword [0x4e467c]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4d0c3c], 0
je 0x46ee80
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4680], 0
je 0x46ee9c
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x46eebc
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
mov ecx, ebx
cmp ecx, 0x50
jg 0x46eee9
je 0x46f23a
sub ecx, 0x30
je 0x46f21c
dec ecx
sub ecx, 9
jb 0x46ef09
add ecx, 0xfffffff9
sub ecx, 2
jb 0x46f23a
jmp 0x46f371
sub ecx, 0x52
je 0x46f23a
sub ecx, 3
je 0x46f23a
sub ecx, 5
je 0x46f324
jmp 0x46f371
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
mov eax, dword [0x4d2c6c]
test eax, eax
je 0x46ef56
cmp eax, dword [0x4e4678]
jne 0x46ef56
push 0
mov edx, ebx
sub edx, 0x31
add edx, 0x464
push edx
push 0x111
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov eax, dword [0x4e4670]
test eax, eax
je 0x46ef69
mov edx, dword [eax]
mov dword [0x4e4674], edx
jmp 0x46ef71
xor ecx, ecx
mov dword [0x4e4674], ecx
cmp dword [0x4d3774], 0
je 0x46f034
mov eax, dword [0x4d4294]
mov dword [0x4e4670], eax
mov edx, ebx
sub edx, 0x31
mov dword [0x4e4684], edx
jmp 0x46efce
mov eax, dword [0x4e4670]
cmp byte [eax + 0x4e0], 0
je 0x46efbc
push eax
call fcn.004a74a4
test eax, eax
je 0x46efbc
dec dword [0x4e4684]
cmp dword [0x4e4684], 0
jl 0x46efd7
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x744]
mov dword [0x4e4670], ecx
cmp dword [0x4e4670], 0
jne 0x46ef95
cmp dword [0x4e4684], 0
jl 0x46f06f
mov eax, dword [0x4d4294]
mov dword [0x4e4670], eax
jmp 0x46f029
mov eax, dword [0x4e4670]
cmp byte [eax + 0x4e0], 0
je 0x46f008
push eax
call fcn.004a74a4
test eax, eax
jne 0x46f017
dec dword [0x4e4684]
cmp dword [0x4e4684], 0
jl 0x46f06f
mov edx, dword [0x4e4670]
mov ecx, dword [edx + 0x744]
mov dword [0x4e4670], ecx
cmp dword [0x4e4670], 0
jne 0x46eff0
jmp 0x46f06f
mov eax, dword [0x4d4294]
mov dword [0x4e4670], eax
mov edx, ebx
sub edx, 0x31
mov dword [0x4e4684], edx
jmp 0x46f066
dec dword [0x4e4684]
cmp dword [0x4e4684], 0
jl 0x46f06f
mov ecx, dword [eax + 0x744]
mov dword [0x4e4670], ecx
mov eax, dword [0x4e4670]
test eax, eax
jne 0x46f04b
cmp dword [0x4e4670], 0
je 0x46f208
mov edx, dword [0x4e4670]
mov ecx, dword [edx]
cmp ecx, dword [0x4e4674]
jne 0x46f0e1
mov eax, dword [0x4e4670]
mov edx, dword [eax]
push edx
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x46f0e1
mov ecx, dword [0x4e4670]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x46f0e1
push 0
push 0xf020
push 0x112
mov edx, dword [0x4e4670]
mov ecx, dword [edx]
push ecx
call sub.USER32.dll_SendMessageA
push esi
push ebx
push edi
mov eax, dword [0x4d0c30]
push eax
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
mov edx, dword [0x4e4670]
mov ecx, dword [edx]
push ecx
call fcn.004b5f6c
test eax, eax
je 0x46f170
cmp dword [0x4d3dd0], 0
je 0x46f110
push 2
call fcn.004b0d5c
push 5
mov eax, dword [0x4d429c]
push eax
call sub.USER32.dll_ShowWindow
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_IsIconic
test eax, eax
je 0x46f130
push 9
mov ecx, dword [0x4d429c]
push ecx
call sub.USER32.dll_ShowWindow
jmp 0x46f14d
mov eax, dword [0x4d429c]
push eax
call sub.USER32.dll_IsWindowVisible
test eax, eax
jne 0x46f14d
push 5
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_ShowWindow
mov ecx, dword [0x4d429c]
push ecx
call sub.USER32.dll_BringWindowToTop
mov eax, dword [0x4d429c]
push eax
call sub.USER32.dll_SetActiveWindow
mov edx, dword [0x4d429c]
push edx
call sub.USER32.dll_SetForegroundWindow
mov ecx, dword [0x4e4670]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x46f194
mov edx, dword [0x4e4670]
mov ecx, dword [edx]
push ecx
call sub.USER32.dll_IsWindowVisible
test eax, eax
jne 0x46f1a3
push 4
mov eax, dword [0x4e4670]
mov edx, dword [eax]
push edx
call sub.USER32.dll_ShowWindow
mov ecx, dword [0x4e4670]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_BringWindowToTop
mov edx, dword [0x4e4670]
mov ecx, dword [edx]
push ecx
call sub.USER32.dll_SetActiveWindow
mov eax, dword [0x4e4670]
mov edx, dword [eax]
push edx
call sub.USER32.dll_SetForegroundWindow
mov ecx, dword [0x4e4670]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_UpdateWindow
cmp dword [0x4d3774], 0
je 0x46f1ef
mov edx, dword [0x4e4670]
push edx
call fcn.004a78e4
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
call fcn.004b0694
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
call sub.USER32.dll_GetActiveWindow
mov dword [0x4e4678], eax
cmp dword [0x4d2c6c], 0
je 0x46f313
mov edx, dword [0x4d2c6c]
cmp edx, dword [0x4e4678]
jne 0x46f313
push 0x68
mov ecx, dword [0x4d2c6c]
push ecx
call sub.USER32.dll_GetDlgItem
mov dword [0x4e4674], eax
cmp dword [0x4e4674], 0
je 0x46f313
cmp ebx, 0x41
jne 0x46f291
xor eax, eax
mov dword [0x4e4684], eax
jmp 0x46f2ce
cmp ebx, 0x50
jne 0x46f2a2
mov dword [0x4e4684], 1
jmp 0x46f2ce
cmp ebx, 0x52
jne 0x46f2b3
mov dword [0x4e4684], 2
jmp 0x46f2ce
cmp ebx, 0x55
jne 0x46f2c4
mov dword [0x4e4684], 3
jmp 0x46f2ce
mov dword [0x4e4684], 4
push 0
push 0
push 0x188
mov edx, dword [0x4e4674]
push edx
call sub.USER32.dll_SendMessageA
cmp eax, dword [0x4e4684]
je 0x46f313
mov ecx, dword [0x4e4684]
push ecx
mov eax, dword [0x4e4674]
push eax
call fcn.004aa7d4
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
cmp dword [0x4e4670], 0
je 0x46f360
cmp dword [0x4e4680], 0
jne 0x46f360
push 0
push 0
push 0x10
mov ecx, dword [0x4e4670]
mov eax, dword [ecx]
push eax
call sub.USER32.dll_PostMessageA
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
mov eax, 1
jmp 0x46f380
push esi
push ebx
push edi
mov edx, dword [0x4d0c30]
push edx
call sub.USER32.dll_CallNextHookEx
jmp 0x46f380
push esi
push ebx
push edi
mov ecx, dword [0x4d0c30]
push ecx
call sub.USER32.dll_CallNextHookEx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0xc