Function at 0x477c78
Capabilities:
Log keystrokes via polling
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x19
push 0
push 0
dec ecx
jne 0x477c80
push ebx
push esi
push edi
mov ecx, 0x15
lea eax, [ebp - 0x58]
mov edx, dword [0x401094]
call fcn.00404b4c
mov ebx, dword [0x481190]
xor eax, eax
push ebp
push 0x4782f1
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4782b1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x478300
push 0
call sub.user32.dll_FindWindowA
mov dword [ebx], eax
push 0
push 0x478308
push 0
mov eax, dword [ebx]
push eax
call sub.user32.dll_FindWindowExA
mov edx, dword [0x4811ac]
mov dword [edx], eax
push 0
push 0x478310
push 0
mov eax, dword [0x4811ac]
mov eax, dword [eax]
push eax
call sub.user32.dll_FindWindowExA
mov edx, dword [0x4814a4]
mov dword [edx], eax
lea edx, [ebp - 4]
mov eax, dword [0x4811ac]
mov eax, dword [eax]
call fcn.00477c00
mov eax, dword [ebx]
push eax
mov eax, dword [0x4814a4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SetParent
push 0
push 0x478310
push 0
mov eax, dword [ebx]
push eax
call sub.user32.dll_FindWindowExA
mov edx, dword [0x4813ac]
mov dword [edx], eax
push 0
push 0x478318
push 0
mov eax, dword [ebx]
push eax
call sub.user32.dll_FindWindowExA
mov edx, dword [0x481110]
mov dword [edx], eax
mov eax, dword [ebx]
push eax
call sub.user32.dll_SetForegroundWindow
push 0xffffffffffffffff
mov eax, dword [0x4813ac]
mov eax, dword [eax]
push eax
call sub.user32.dll_EnableWindow
lea edx, [ebp - 0x5c]
mov eax, dword [0x481110]
mov eax, dword [eax]
call fcn.00477c00
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x481178]
call fcn.00404120
push 2
push 2
push 7
mov eax, dword [0x4813ac]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov edx, dword [0x481128]
mov edx, dword [edx]
mov eax, dword [0x481178]
mov eax, dword [eax]
call fcn.004046d0
test eax, eax
je 0x477dcb
push 0
push 0
push 0x10
mov eax, dword [ebx]
push eax
call sub.user32.dll_SendMessageA
call fcn.00403bb4
jmp 0x4782b8
mov ebx, 0x12
mov eax, 0x478320
xor edx, edx
call fcn.00476610
dec ebx
jne 0x477dd0
push 0x14
call sub.user32.dll_GetKeyState
cmp ax, 1
jne 0x477df8
mov eax, 0x47832c
xor edx, edx
call fcn.00476610
mov eax, dword [ebp - 4]
call fcn.0040438c
mov esi, eax
test esi, esi
jle 0x478272
mov edi, 1
lea ebx, [ebp - 0x54]
mov eax, ebx
mov edx, dword [ebp - 4]
mov dl, byte [edx + edi - 1]
call fcn.004042b4
mov eax, dword [ebx]
call fcn.00477b70
test al, al
je 0x478259
lea eax, [ebp - 0x60]
mov edx, 0x41
call fcn.004042c4
mov edx, dword [ebp - 0x60]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477e54
mov eax, 0x478338
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x64]
mov edx, 0x42
call fcn.004042c4
mov edx, dword [ebp - 0x64]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477e79
mov eax, 0x478340
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x68]
mov edx, 0x43
call fcn.004042c4
mov edx, dword [ebp - 0x68]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477e9e
mov eax, 0x478348
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x6c]
mov edx, 0x44
call fcn.004042c4
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477ec3
mov eax, 0x478350
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x70]
mov edx, 0x45
call fcn.004042c4
mov edx, dword [ebp - 0x70]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477ee8
mov eax, 0x478358
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x74]
mov edx, 0x46
call fcn.004042c4
mov edx, dword [ebp - 0x74]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477f0d
mov eax, 0x478360
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x78]
mov edx, 0x47
call fcn.004042c4
mov edx, dword [ebp - 0x78]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477f32
mov eax, 0x478368
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x7c]
mov edx, 0x48
call fcn.004042c4
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477f57
mov eax, 0x478370
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x80]
mov edx, 0x49
call fcn.004042c4
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477f7c
mov eax, 0x478378
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x84]
mov edx, 0x4a
call fcn.004042c4
mov edx, dword [ebp - 0x84]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477fa7
mov eax, 0x478380
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x88]
mov edx, 0x4b
call fcn.004042c4
mov edx, dword [ebp - 0x88]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477fd2
mov eax, 0x478388
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x8c]
mov edx, 0x4c
call fcn.004042c4
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x477ffd
mov eax, 0x478390
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x90]
mov edx, 0x4d
call fcn.004042c4
mov edx, dword [ebp - 0x90]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478028
mov eax, 0x478398
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x94]
mov edx, 0x4e
call fcn.004042c4
mov edx, dword [ebp - 0x94]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478053
mov eax, 0x4783a0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x98]
mov edx, 0x4f
call fcn.004042c4
mov edx, dword [ebp - 0x98]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x47807e
mov eax, 0x4783a8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0x9c]
mov edx, 0x50
call fcn.004042c4
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x4780a9
mov eax, 0x4783b0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xa0]
mov edx, 0x51
call fcn.004042c4
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x4780d4
mov eax, 0x4783b8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xa4]
mov edx, 0x52
call fcn.004042c4
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x4780ff
mov eax, 0x4783c0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xa8]
mov edx, 0x53
call fcn.004042c4
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x47812a
mov eax, 0x4783c8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xac]
mov edx, 0x54
call fcn.004042c4
mov edx, dword [ebp - 0xac]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478155
mov eax, 0x4783d0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xb0]
mov edx, 0x55
call fcn.004042c4
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478180
mov eax, 0x4783d8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xb4]
mov edx, 0x56
call fcn.004042c4
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x4781ab
mov eax, 0x4783e0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xb8]
mov edx, 0x57
call fcn.004042c4
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x4781d6
mov eax, 0x4783e8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xbc]
mov edx, 0x58
call fcn.004042c4
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478201
mov eax, 0x4783f0
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xc0]
mov edx, 0x59
call fcn.004042c4
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x47822c
mov eax, 0x4783f8
xor edx, edx
call fcn.00476610
lea eax, [ebp - 0xc4]
mov edx, 0x5a
call fcn.004042c4
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebx]
call fcn.004044d8
jne 0x478267
mov eax, 0x478400
xor edx, edx
call fcn.00476610
jmp 0x478267
mov eax, dword [ebx]
call fcn.0040458c
xor edx, edx
call fcn.00476610
inc edi
add ebx, 4
dec esi
jne 0x477e12
mov eax, 0x478408
xor edx, edx
call fcn.00476610
push 0x3e8
call sub.kernel32.dll_Sleep_1
cmp dword [ebp - 4], 0
je 0x4782a3
lea ecx, [ebp - 0xc8]
mov eax, dword [0x481178]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.004778d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4782b8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4782f8
lea eax, [ebp - 0xc8]
mov edx, 0x1c
call fcn.004040f0
lea eax, [ebp - 0x58]
mov ecx, 0x15
mov edx, dword [0x401094]
call fcn.00404c2c
lea eax, [ebp - 4]
call fcn.004040cc
ret