Function at 0x478ed0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
push 1
call fcn.00401090
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
mov edi, dword [sym.imp.USER32.dll_GetKeyboardState]
fstp st(0)
push 1
push 0
push 0
lea eax, [esp + 0x1c]
push 0
push eax
call esi
test eax, eax
je 0x407509
mov eax, dword [esp + 0x14]
cmp eax, 0x12
je 0x40755d
cmp eax, 0x105
jne 0x4074f9
mov eax, dword [esp + 0x18]
cmp eax, 0x1b
je 0x4074c8
cmp eax, 9
je 0x4074c8
lea ecx, [esp + 0x10]
push ecx
call ebx
lea edx, [esp + 0x10]
push edx
call ebp
jmp 0x4074c8
mov eax, dword [0x4c8be4]
test eax, eax
je 0x407552
mov eax, dword [0x4c8be8]
test eax, eax
jne 0x407552
call fcn.00402ae0
test eax, eax
je 0x4074c8
push 0x6708e0
call edi
call fcn.0041af10
mov eax, dword [0x5eb6f8]
test eax, eax
je 0x407545
mov eax, dword [0x5eb6f0]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4074c8
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x4074c8
mov eax, dword [0x672fd0]
pop edi
pop esi
pop ebp
test eax, eax
pop ebx
jge 0x407592
push eax
call fcn.00486ab4
push eax
mov eax, dword [0x672fd0]
push 0x672ecc
push eax
push eax
call fcn.00484126
push eax
push 0x4c8e94
push 0x10
call fcn.0040cf80
add esp, 0x18
mov eax, dword [esp + 8]
add esp, 0x1c
ret
call fcn.0041c1a0
push 0
call fcn.004137b0
push 0
call fcn.004137c0
push 2
call fcn.004137c0
push str.host0:cddata_module_ioprp250.img
push 0x5dabb0
call fcn.004a393c
push str.host0:cddata_module_ioprp250.img
call fcn.004138a0
add esp, 0x18
test eax, eax
jne 0x478f1b
push str.host0:cddata_module_ioprp250.img
call fcn.004138a0
add esp, 4
test eax, eax
je 0x478f0a
call fcn.004138a0
test eax, eax
jne 0x478f2d
call fcn.004138a0
test eax, eax
je 0x478f24
push 0
call fcn.004137b0
push 0
call fcn.004137c0
push 2
call fcn.004137c0
call fcn.004137c0
call fcn.004137c0
push 0
push 0
push str.host0:cddata_module_sio2man.irx
call fcn.004137c0
add esp, 0x18
test eax, eax
jge 0x478f76
push 0
push 0
push str.host0:cddata_module_sio2man.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x478f61
push 0
push 0
push str.host0:cddata_module_sio2d.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x478fa0
push 0
push 0
push str.host0:cddata_module_sio2d.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x478f8b
push 0
push 0
push str.host0:cddata_module_dbcman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x478fca
push 0
push 0
push str.host0:cddata_module_dbcman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x478fb5
push 0
push 0
push str.host0:cddata_module_padman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x478ff4
push 0
push 0
push str.host0:cddata_module_padman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x478fdf
push 0
push 0
push str.host0:cddata_module_libsd.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x47901e
push 0
push 0
push str.host0:cddata_module_libsd.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x479009
push 0
push 0
push str.host0:cddata_module_sdrdrv.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x479048
push 0
push 0
push str.host0:cddata_module_sdrdrv.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x479033
push 0
push 0
push str.host0:cddata_module_cdvdstm.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x479072
push 0
push 0
push str.host0:cddata_module_cdvdstm.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x47905d
push 0
push 0
push str.host0:cddata_module_bgmman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x47909c
push 0
push 0
push str.host0:cddata_module_bgmman.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x479087
push 0
push 0
push str.host0:cddata_module_usbd.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x4790c6
push 0
push 0
push str.host0:cddata_module_usbd.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x4790b1
push 0
push 0
push str.host0:cddata_module_usbdenco.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x4790f0
push 0
push 0
push str.host0:cddata_module_usbdenco.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x4790db
push 0
push 0
push str.host0:cddata_module_usbshinc.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x47911a
push 0
push 0
push str.host0:cddata_module_usbshinc.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x479105
push 0
push 0
push str.host0:cddata_module_usbrjcon.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x479144
push 0
push 0
push str.host0:cddata_module_usbrjcon.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x47912f
push 0
push 0
push str.host0:cddata_module_mc2_s1.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jge 0x47916e
push 0
push 0
push str.host0:cddata_module_mc2_s1.irx
call fcn.004137c0
add esp, 0xc
test eax, eax
jl 0x479159
call fcn.0041aa30
call fcn.00477820
mov dword [0x85268c], 0x83
push 0x31
push 0
push 0xe0
push 0x280
call fcn.00419100
mov eax, dword [0x758260]
or dword [eax], 0x40
call fcn.0041acc0
push 0
push 0x2000
push 0
push 0x479200
push 0
call fcn.0041ad00
push 2
call fcn.0041a4b0
call fcn.00475950
call fcn.0041c750
push 0
push 0
call fcn.004137c0
push 0
call fcn.004138a0
add esp, 0x34
test eax, eax
jne 0x4791ed
push 0
call fcn.004138a0
add esp, 4
test eax, eax
je 0x4791df
jmp 0x4074a0