Function at 0x40c79b
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x41546c
call fcn.00414a90
sub esp, 0x76c
push ebx
push esi
push edi
mov esi, ecx
push 0x40b
mov dword [ebp - 0x2c], esi
push dword [esi + 0x898]
call dword [sym.imp.USER32.dll_GetDlgItem]
lea ecx, [ebp - 0x7c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x50], eax
xor edi, edi
mov dword [ebp - 4], edi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x425328
mov dword [ebp - 0x14], eax
call fcn.00402ff8
mov ecx, esi
call fcn.0040cf12
mov eax, dword [0x431d9c]
push 0x10
pop ecx
mov dword [ebp - 0x38], eax
cmp eax, ecx
jle 0x40c814
mov dword [ebp - 0x38], ecx
push edi
push 0x50
call fcn.00405b3d
pop ecx
mov ebx, dword [sym.imp.USER32.dll_AppendMenuW]
pop ecx
push eax
push 0xa
push 3
push dword [ebp - 0x14]
call ebx
push edi
push 0xb
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0x7530
push 0x800
push dword [ebp - 0x14]
call ebx
cmp dword [ebp - 0x38], edi
mov dword [ebp - 0x1c], edi
jle 0x40cb7d
jmp 0x40c858
xor edi, edi
mov eax, dword [0x419068]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
mov ecx, 0x431d90
push eax
mov byte [ebp - 4], 1
call fcn.00410d89
mov eax, dword [eax]
push 0x7c
push edi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040f604
push dword [ebp - 0x10]
call sub.MSVCRT.dll__wtoi
push edi
push 5
mov dword [ebp - 0x3c], eax
call fcn.00405b3d
add esp, 0x1c
lea ecx, [ebp - 0x24]
push eax
call fcn.00402f54
cmp dword [ebp - 0x3c], 1
mov byte [ebp - 4], 2
jne 0x40c8cf
push edi
push 6
call fcn.00405b3d
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
jne 0x40c8be
xor eax, eax
jmp 0x40c8c5
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [ebp - 0x24]
call fcn.00403080
cmp dword [ebp - 0x3c], 2
jne 0x40c8fa
push edi
push 7
call fcn.00405b3d
mov esi, eax
pop ecx
cmp esi, edi
pop ecx
jne 0x40c8e9
xor eax, eax
jmp 0x40c8f0
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [ebp - 0x24]
call fcn.00403080
push 0x425328
lea ecx, [ebp - 0x30]
call fcn.00402ff8
mov byte [ebp - 4], 3
mov dword [ebp - 0x18], 1
lea eax, [ebp - 0x1c]
mov ecx, 0x431d90
push eax
call fcn.00410d89
mov esi, dword [ebp - 0x18]
mov eax, dword [eax]
push 0x7c
push esi
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040f604
push dword [ebp - 0x10]
call sub.MSVCRT.dll__wtoi
lea ecx, [ebp - 0x6c]
push ecx
push eax
call fcn.0040df80
add esp, 0x1c
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov eax, dword [ebp - 0x1c]
push 0x6e
pop ecx
lea eax, [esi + eax*4]
lea esi, [ebp - 0x64]
shl eax, 4
lea edi, [ebp + eax - 0x778]
mov eax, dword [0x425320]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x278], eax
xor eax, eax
lea edi, [ebp - 0x274]
rep stosd dword es:[edi], eax
mov eax, dword [0x419068]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x278]
lea esi, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
sub esp, 0x10
mov byte [ebp - 4], 4
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.00408637
add esp, 0x18
lea ecx, [ebp - 0x44]
call fcn.00402f28
lea eax, [ebp - 0x278]
test eax, eax
je 0x40c9ce
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [ebp - 0x278]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00403080
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
test eax, eax
mov dword [ebp + ecx*4 - 0xbc], eax
je 0x40ca83
lea eax, [ebp - 0x278]
lea esi, [ebp - 0x64]
push eax
lea eax, [ebp - 0x4c]
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call fcn.0040ce93
add esp, 0x18
lea ecx, [ebp - 0x4c]
call fcn.00402f28
lea eax, [ebp - 0x1c]
mov ecx, 0x431d90
push eax
call fcn.00410d89
mov esi, dword [ebp - 0x18]
mov eax, dword [eax]
push 0x7c
lea ecx, [esi + 3]
push ecx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040f604
push dword [ebp - 0x10]
call sub.MSVCRT.dll__wtoi
mov ecx, dword [ebp - 0x1c]
add esp, 0x14
lea ecx, [esi + ecx*4]
mov dword [ebp + ecx*4 - 0x378], eax
lea eax, [ebp - 0x278]
push eax
push dword [ebp - 0x10]
call sub.MSVCRT.dll__wtoi
pop ecx
push eax
push 0
push 0x12
call fcn.00405b3d
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x34]
push 0x424eb0
push eax
call fcn.00404401
add esp, 0x14
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x30]
push eax
push dword [eax - 8]
call fcn.004031bc
cmp dword [ebp - 0x18], 3
jge 0x40cac4
push 0x424eac
lea ecx, [ebp - 0x40]
call fcn.00402ff8
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x30]
push eax
mov byte [ebp - 4], 5
push dword [eax - 8]
call fcn.004031bc
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.00402f28
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call fcn.00402f28
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x40c912
push 0x424ea8
lea ecx, [ebp - 0x20]
call fcn.00402ff8
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00407d51
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00407d51
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax]
add ecx, 0xbb8
push eax
push ecx
push 0
push dword [ebp - 0x14]
call ebx
lea ecx, [ebp - 0x48]
call fcn.00402f28
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.00402f28
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00402f28
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.00402f28
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00402f28
and byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00402f28
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x38]
jl 0x40c856
mov esi, dword [ebp - 0x2c]
xor edi, edi
push edi
push 0xb
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0x7530
push 0x800
push dword [ebp - 0x14]
call ebx
push edi
push 0x51
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0x190
push edi
push dword [ebp - 0x14]
call ebx
push edi
push 0x52
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0x191
push edi
push dword [ebp - 0x14]
call ebx
push edi
push 0x53
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0x7530
push 0x800
push dword [ebp - 0x14]
call ebx
push edi
push 0x53
call fcn.00405b3d
pop ecx
pop ecx
push eax
push 0xa
push 3
push dword [ebp - 0x14]
call ebx
mov eax, dword [0x431dc8]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x191
push dword [ebp - 0x14]
call dword [sym.imp.USER32.dll_CheckMenuItem]
push 0x102
mov ecx, 0x431e68
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x14]
call fcn.0041351c
mov ebx, eax
cmp ebx, 0x190
jne 0x40cc35
mov ecx, esi
call fcn.0040d0db
cmp ebx, 0x191
jne 0x40cc5a
xor eax, eax
cmp dword [0x431dc8], edi
sete al
push eax
push 0x431dcc
mov dword [0x431dc8], eax
call fcn.00405de9
pop ecx
pop ecx
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x40cc8a
add ebx, 0xfffff448
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x425328
call fcn.00402ff8
mov ecx, esi
call fcn.0040cf12
jmp 0x40ce76
cmp ebx, 0xbb8
jl 0x40ce76
lea eax, [ebx - 0xbb8]
mov ebx, dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + eax*4 - 0xbc]
cmp ecx, edi
mov dword [ebp - 0x28], ecx
jne 0x40cd15
shl eax, 6
mov dword [ebp - 0x18], eax
lea eax, [ebp + eax - 0x768]
push eax
push edi
push 0x1002
push 0xd1
push dword [esi + 0x898]
call ebx
mov eax, dword [ebp - 0x18]
lea eax, [ebp + eax - 0x758]
push eax
push edi
push 0x1002
push 0xce
push dword [esi + 0x898]
call ebx
mov eax, dword [ebp - 0x18]
lea eax, [ebp + eax - 0x748]
push eax
push edi
push 0x1002
push 0xca
push dword [esi + 0x898]
call ebx
jmp 0x40cdd3
mov ecx, dword [0x419068]
mov dword [ebp - 0x10], ecx
shl eax, 4
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 8
push dword [ebp + eax - 0x374]
lea eax, [ebp - 0x10]
push 0x42477c
push eax
call fcn.00404401
add esp, 0xc
push dword [ebp - 0x10]
push 0xbba
push dword [esi + 0x898]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [ebp - 0x20]
push dword [ebp + eax - 0x370]
lea eax, [ebp - 0x10]
push 0x42477c
push eax
call fcn.00404401
add esp, 0xc
push dword [ebp - 0x10]
push 0xbbb
push dword [esi + 0x898]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [ebp - 0x20]
push dword [ebp + eax - 0x36c]
lea eax, [ebp - 0x10]
push 0x42477c
push eax
call fcn.00404401
add esp, 0xc
push dword [ebp - 0x10]
push 0xbb9
push dword [esi + 0x898]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
and byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00402f28
mov eax, dword [ebp - 0x2c]
shl eax, 6
mov dword [ebp - 0x18], eax
lea eax, [ebp + eax - 0x768]
push eax
push edi
push 0x1002
push 0xd2
push dword [esi + 0x898]
call ebx
mov eax, dword [ebp - 0x18]
lea eax, [ebp + eax - 0x758]
push eax
push edi
push 0x1002
push 0xd0
push dword [esi + 0x898]
call ebx
mov eax, dword [ebp - 0x18]
lea eax, [ebp + eax - 0x748]
push eax
push edi
push 0x1002
push 0xcd
push dword [esi + 0x898]
call ebx
mov eax, dword [ebp - 0x28]
mov ecx, esi
add eax, 0x1068
push eax
call fcn.0040a93e
push 0x416
push dword [esi + 0x898]
call dword [sym.imp.USER32.dll_GetDlgItem]
push edi
push dword [esi + 0x870]
push 0x130c
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
mov ecx, esi
call fcn.0040dbc3
mov ecx, esi
call fcn.0040da5b
cmp dword [ebp - 0x14], edi
je 0x40ce84
push dword [ebp - 0x14]
call dword [sym.imp.USER32.dll_DestroyMenu]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret