Function at 0x59b9d0
Capabilities:
Log keystrokes via input method manager

Disassembly:
sub esp, 8
push ebp
push esi
push edi
mov ebp, 1
mov edi, eax
mov esi, ecx
mov dword [0x8ee914], ebp
call dword [sym.imp.WINMM.dll_timeGetTime]
and eax, 0x7fffffff
cmp esi, 0x10f
mov dword [0x8ee958], eax
mov dword [0x8ee960], ebp
ja 0x59bb95
je 0x59ba57
sub esi, 0x10d
je 0x59ba3e
sub esi, ebp
jne 0x59bd36
mov dword [esp + 0xc], 0x400
cld
mov al, 0
mov ecx, dword [esp + 0xc]
mov edi, 0x8ed0e8
rep stosb byte es:[edi], al
pop edi
mov dword [0x8ed0e0], esi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
pop edi
pop esi
mov dword [0x8ed0e0], ebp
mov dword [0x8ed0e4], 0
xor eax, eax
pop ebp
add esp, 8
ret
push ebx
call fcn.0057e3b7
test byte [esp + 0x18], 8
mov ebp, eax
je 0x59ba8e
mov dword [esp + 0xc], 0x400
cld
mov al, 0
mov ecx, dword [esp + 0xc]
mov edi, 0x8ed0e8
rep stosb byte es:[edi], al
push 0x400
push 0x8ed0e8
push 8
push ebp
call fcn.0057dedf
test dword [esp + 0x18], 0x800
je 0x59bb1f
mov dword [esp + 0xc], 0x400
cld
mov al, 0
mov ecx, dword [esp + 0xc]
mov edi, 0x8ed0e8
rep stosb byte es:[edi], al
push 0x400
push 0x8ed0e8
push 0x800
push ebp
call fcn.0057dedf
push 0x8ed0e8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
xor esi, esi
test edi, edi
jle 0x59baf7
lea ebx, [ebx]
movzx eax, byte [esi + 0x8ed0e8]
push eax
call fcn.0057e060
add esi, 1
add esp, 4
cmp esi, edi
jl 0x59bae0
mov dword [esp + 0xc], 0x401
cld
mov al, 0
mov ecx, dword [esp + 0xc]
mov edi, 0x8ed0e8
rep stosb byte es:[edi], al
push 0x400
push 0x8ed0e8
push 8
push ebp
call fcn.0057dedf
test byte [esp + 0x18], 0x80
je 0x59bb48
push 0
push 0
push 0x80
push ebp
call fcn.0057dedf
push eax
push 0x8ed0e8
call fcn.0057cd7d
add esp, 8
mov dword [0x8ed0e4], eax
test byte [esp + 0x18], 0x20
je 0x59bb85
mov dword [esp + 0xc], 0x400
cld
mov al, 0
mov ecx, dword [esp + 0xc]
mov edi, 0x8ed910
rep stosb byte es:[edi], al
push 0x400
push 0x8ed910
push 0x20
push ebp
call fcn.0057dedf
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [0x8ee910], eax
push ebp
push ebx
call fcn.0057fca3
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
sub esi, 0x281
je 0x59bd58
sub esi, ebp
jne 0x59bd36
lea eax, [edi - 3]
cmp eax, 6
ja case.0x59bbb5.6
jmp dword [eax*4 + 0x59bd70]
cmp dword [0x90d9a0], 0
jne 0x59bd36
mov ecx, dword [esp + 0x18]
push ecx
push edi
push 0x282
push ebx
mov dword [0x90d9a0], ebp
call dword [sym.imp.USER32.dll_DefWindowProcA]
push 0
call fcn.0057bd2e
add esp, 4
mov esi, eax
mov edi, edx
nop
call fcn.0057b270
test eax, eax
jne 0x59bc15
push eax
call fcn.0057bd2e
add esp, 4
sub eax, esi
sbb edx, edi
mov dword [esp + 0x10], edx
js 0x59bbf0
jg 0x59bc15
cmp eax, 0x7d0
jb 0x59bbf0
push ebx
mov dword [0x90d9a0], 0
call fcn.0057e3b7
mov esi, eax
push esi
call fcn.0057c396
push esi
push ebx
mov dword [0x8ed8f8], eax
call fcn.0057fca3
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
push ebx
call fcn.0057e3b7
push 0
push 0
mov edi, eax
push 0
push edi
call fcn.0057aa9b
mov esi, eax
test esi, esi
mov dword [0x8ed8f0], esi
jne 0x59bc81
push edi
push ebx
call fcn.0057fca3
push edi
push ebx
push 0x87b558
call fcn.0057a2e9
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
mov eax, dword [0x8ed8ec]
test eax, eax
je 0x59bc93
push eax
call fcn.0057cf76
add esp, 4
push 0x3b58
push str...DxLibDxWin.cpp
push esi
call fcn.0057e8b2
add esp, 0xc
test eax, eax
mov dword [0x8ed8ec], eax
jne 0x59bcc1
push edi
push ebx
call fcn.0057fca3
push esi
push 0x87b4f0
call fcn.0057ac21
push esi
push eax
push 0
push edi
call fcn.0057aa9b
test eax, eax
jne 0x59bd06
mov edx, dword [0x8ed8ec]
push edx
call fcn.0057cf76
add esp, 4
push edi
push ebx
mov dword [0x8ed8ec], 0
call fcn.0057fca3
push esi
push 0x87b4b8
call fcn.0057a2e9
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
push edi
push ebx
call fcn.0057fca3
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
mov eax, dword [0x8ed8ec]
xor esi, esi
cmp eax, esi
je 0x59bd2a
push eax
call fcn.0057cf76
add esp, 4
mov dword [0x8ed8ec], esi
mov dword [0x8ed8f0], esi
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 8
ret
mov eax, dword [esp + 0x18]
push eax
push edi
push 0x282
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
add esp, 8
ret
push 0
push edi
push 0x281
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
add esp, 8
ret