Function at 0x42a420
Capabilities:
Log keystrokes

Disassembly:
mov ecx, dword [0x45de54]
sub esp, 0x10
push ebx
push esi
push edi
push 0
push 0xffffffffffffffff
push 0x452c78
call fcn.0043e8a0
mov ecx, dword [esp + 0x30]
mov al, byte [ecx]
cmp al, 0x41
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
je 0x42a454
cmp al, 0x61
jne 0x42a494
mov bl, byte [ecx + 1]
test bl, bl
jne 0x42a494
cmp byte [edi], 0
jne 0x42a494
cmp byte [esi], 0
jne 0x42a494
cmp byte [edx], 0
jne 0x42a494
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
mov dword [esp + 0x30], esi
je 0x42a502
mov al, byte [0x45d5fd]
test al, al
jne 0x42a4fe
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x42a502
jmp 0x42a4fe
test al, al
jne 0x42a4e0
cmp byte [edi], 0
jne 0x42a4e0
cmp byte [esi], 0
jne 0x42a4e0
cmp byte [edx], 0
jne 0x42a4e0
mov eax, dword [0x45d6d0]
test eax, eax
je 0x42a502
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42a502
mov al, byte [0x45d5fd]
test al, al
jne 0x42a4d4
mov eax, dword [0x45d6d0]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x42a502
mov ecx, dword [0x45d6d0]
mov dword [esp + 0x30], ecx
jmp 0x42a4fa
push 0
push 0
push 0
push 0
push 0
push edx
push esi
push edi
push ecx
call fcn.004417e0
add esp, 0x24
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
test esi, esi
jne 0x42a510
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x10
ret 0x20
mov edx, dword [esp + 0x2c]
push ebp
push edx
push esi
call fcn.004410f0
mov ebp, eax
add esp, 8
test ebp, ebp
mov dword [esp + 0x30], ebp
je case.0x42a626.3
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x42a816
mov esi, dword [esp + 0x2c]
cmp byte [esi], 0
mov ebx, 0x80000000
mov dword [esp + 0x38], 2
mov edi, ebx
je 0x42a5ba
movsx eax, byte [esi]
push eax
call fcn.00443ce6
add eax, 0xffffffbc
add esp, 4
cmp eax, 0x15
ja case.0x42a56c.69
movzx ecx, byte [eax + 0x42a858]
jmp dword [ecx*4 + 0x42a844]
mov dword [esp + 0x38], 0
jmp case.0x42a56c.69
mov dword [esp + 0x38], 1
jmp case.0x42a56c.69
lea edx, [esi + 1]
push edx
call fcn.00444633
mov ebx, eax
jmp 0x42a59f
lea eax, [esi + 1]
push eax
call fcn.00444633
mov edi, eax
add esp, 4
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x42a551
cmp ebx, 0x80000000
je 0x42a5ba
cmp edi, 0x80000000
jne 0x42a600
lea ecx, [esp + 0x10]
push ecx
push ebp
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je case.0x42a626.3
cmp ebx, 0x80000000
jne 0x42a5e7
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
sub eax, edx
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
cmp edi, 0x80000000
jne 0x42a600
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, edx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov al, byte [esp + 0x24]
movzx ebp, di
movzx edx, bx
shl ebp, 0x10
or ebp, edx
cmp al, 0x9f
je 0x42a62d
cmp al, 0x9e
je 0x42a62d
movzx eax, al
xor bl, bl
dec eax
cmp eax, 5
ja case.0x42a626.3
jmp dword [eax*4 + 0x42a870]
xor ecx, ecx
cmp al, 0x9f
setne cl
mov bl, 1
dec ecx
and ecx, 0xf0
add ecx, 0xffffff88
imul ecx, dword [esp + 0x28]
shl ecx, 0x10
mov edi, ecx
jmp 0x42a6ad
mov dword [esp + 0x40], 0x201
mov dword [esp + 0x3c], 0x202
mov edi, 1
jmp 0x42a6ad
mov dword [esp + 0x40], 0x204
mov dword [esp + 0x3c], 0x205
mov edi, 2
jmp 0x42a6ad
mov dword [esp + 0x40], 0x207
mov dword [esp + 0x3c], 0x208
mov edi, 0x10
jmp 0x42a6ad
mov edi, 0x20
jmp 0x42a69d
mov edi, 0x40
mov dword [esp + 0x40], 0x20b
mov dword [esp + 0x3c], 0x20c
mov byte [esp + 0x24], 0
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov esi, dword [esp + 0x34]
push 0
push esi
mov dword [esp + 0x34], eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
mov dword [esp + 0x34], eax
je 0x42a6fd
cmp eax, dword [esp + 0x2c]
je 0x42a6fd
push esi
call fcn.004407a0
add esp, 4
test al, al
jne 0x42a6fd
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
push 1
push edx
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
setne byte [esp + 0x24]
push esi
call dword [sym.imp.USER32.dll_SetActiveWindow]
test bl, bl
je 0x42a752
mov ecx, dword [esp + 0x30]
push ebp
push edi
push 0x20a
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [0x45d61c]
test eax, eax
jl 0x42a7fc
cmp eax, 0x19
jge 0x42a742
mov cl, byte [0x45f111]
test cl, cl
je 0x42a742
push eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x42a7fc
push 0
push eax
call fcn.00401650
add esp, 8
jmp 0x42a7fc
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x42a7fc
mov esi, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [esp + 0x28], eax
jmp 0x42a770
mov ebx, dword [esp + 0x38]
cmp ebx, 1
je 0x42a7b3
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
push ebp
push edi
push edx
push eax
call esi
mov eax, dword [0x45d61c]
test eax, eax
jl 0x42a7b3
cmp eax, 0x19
jge 0x42a7a8
mov cl, byte [0x45f111]
test cl, cl
je 0x42a7a8
push eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x42a7b3
push 0
push eax
call fcn.00401650
add esp, 8
test ebx, ebx
je 0x42a7f2
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
push ebp
push 0
push ecx
push edx
call esi
mov eax, dword [0x45d61c]
test eax, eax
jl 0x42a7f2
cmp eax, 0x19
jge 0x42a7e7
mov cl, byte [0x45f111]
test cl, cl
je 0x42a7e7
push eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x42a7f2
push 0
push eax
call fcn.00401650
add esp, 8
dec dword [esp + 0x28]
jne 0x42a770
mov al, byte [esp + 0x24]
test al, al
je 0x42a816
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov ecx, dword [0x45de54]
push 0
push 0xffffffffffffffff
push 0x44f664
call fcn.0043e8a0
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret 0x20
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x10
ret 0x20