Function at 0x435360
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x10]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x43587b
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x4c]
cmp eax, ecx
jge 0x435397
xor ecx, ecx
cmp eax, ecx
jl 0x435397
mov edx, dword [esi + 0x48]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x10], edi
jmp 0x43539f
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov edi, ecx
cmp edi, ecx
je 0x43553b
mov ebx, dword [esi + 0x90]
mov eax, dword [esi + 0x8c]
mov ebp, dword [esi + 0x84]
sub ebx, eax
mov eax, dword [esi + 0x88]
sub eax, ebp
cmp ebx, ecx
mov dword [esp + 0x18], eax
jne 0x4353e0
cmp eax, ecx
jne 0x4353e0
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], ecx
jmp 0x43553b
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x24]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, dword [esp + 0x28]
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
lea ebp, [edx + ecx + 1]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x94]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x435457
mov edx, dword [esi + 0x98]
mov eax, edx
shl eax, 3
sub eax, edx
mov edx, dword [esp + 0x14]
add eax, edx
sub eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [esi + 0x98], eax
jmp 0x435461
mov dword [esi + 0x98], 2
mov edx, dword [esp + 0x14]
push 0x10
mov dword [esi + 0x94], edx
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x435492
mov eax, edi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov edi, eax
mov eax, ebp
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov ebp, eax
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x4354a5
shl edi, 2
shl ebp, 2
mov ecx, dword [esi + 0x98]
mov eax, 0x51eb851f
imul edi, ecx
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x3e8
cmp edx, 0x3e8
jg 0x4354ce
mov eax, edx
cmp eax, 1
jge 0x4354da
mov edx, 1
jmp 0x4354e7
cmp edx, 0x3e8
jle 0x4354e7
mov edx, 0x3e8
imul ebp, ecx
imul ebx, edx
mov eax, 0x51eb851f
imul ebp
sar edx, 4
mov ecx, edx
mov eax, 0x3e8
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x3e8
jg 0x43550d
mov eax, edx
cmp eax, 1
jge 0x435519
mov edx, 1
jmp 0x435526
cmp edx, 0x3e8
jle 0x435526
mov edx, 0x3e8
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
imul eax, edx
push eax
push ebx
call fcn.00449f00
mov edi, dword [esp + 0x10]
xor ebx, ebx
test edi, edi
je 0x435550
mov ecx, edi
call fcn.00444ee0
test eax, eax
je 0x435550
mov ebx, edi
jmp 0x435563
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x435563
call fcn.00444ee0
test eax, eax
je 0x435563
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x43587b
mov eax, dword [0x4caee4]
xor edx, edx
test eax, eax
mov eax, dword [esi + 0x18]
setne dl
add edx, 4
push eax
mov ebp, edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x435613
mov ecx, dword [esi + 0x18]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0xb
push ecx
call edi
mov ecx, ebx
call fcn.004451e0
mov edx, ebp
push eax
mov eax, dword [esi + 0x18]
or dh, 0x10
push edx
push 0x401
push eax
call edi
mov ecx, dword [esi + 0x18]
push 0
push 1
push 0xb
push ecx
call edi
mov eax, dword [esi + 0x18]
lea edx, [esp + 0x48]
push edx
push ebp
push 0x40a
push eax
call edi
mov ecx, dword [esi + 0x18]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.004451e0
lea edx, [esp + 0x2c]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x10]
push edx
push 0
push 0x2b
push eax
call edi
mov ecx, dword [esp + 0x44]
mov edx, dword [esi + 0x18]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [esp + 0x10]
jmp 0x435631
mov ecx, ebx
call fcn.004451e0
or ebp, 0x1000
push eax
mov eax, dword [esi + 0x18]
push ebp
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp ebx, edi
push 0xffffffffffffffff
jne 0x4357c8
mov ecx, edi
call fcn.00444db0
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
mov ebp, dword [esp + 0x10]
mov edi, 0x14
sar edx, 6
mov ecx, edx
push 0xffffffffffffffff
shr ecx, 0x1f
add edx, ecx
mov ecx, ebp
sub edi, edx
call fcn.00444cb0
mov edx, eax
push 0xffffffffffffffff
imul edx, edi
mov ecx, ebp
mov dword [esp + 0x1c], edx
call fcn.00444db0
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, edx
cdq
idiv ecx
cmp eax, 1
jge 0x435690
mov eax, 1
mov ecx, dword [esi + 0xc]
push 1
push eax
call fcn.00449ab0
test eax, eax
jne 0x4356a6
mov ecx, esi
call fcn.00436520
mov ecx, ebp
call fcn.00444ee0
test eax, eax
jne 0x435869
mov eax, dword [esi + 0x40]
xor ebp, ebp
cmp eax, ebp
je 0x4356d1
mov eax, dword [0x4cab28]
mov ecx, dword [esi + 0x10]
push ebp
push eax
push 0x64
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
cmp dword [0x4cab2c], ebp
je 0x4357bc
mov ecx, dword [esi + 0x60]
cmp ecx, ebp
je 0x4357bc
call fcn.004450c0
test eax, eax
jne 0x4357bc
mov ecx, dword [esi + 0x60]
call fcn.00444ee0
test eax, eax
jne 0x4357bc
mov edx, dword [esi + 0x10]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esi + 0x60]
call fcn.004449f0
mov edi, eax
lea ecx, [esp + 0x2c]
dec edi
neg edi
sbb edi, edi
inc edi
call fcn.00443d90
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x68]
mov edx, dword [0x4cab60]
mov dword [esp + 0x2c], eax
mov eax, dword [0x4cab64]
cmp edi, ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
je 0x43575e
mov al, byte [0x4caba0]
mov dword [esp + 0x54], 1
test al, al
je 0x435762
mov dword [esp + 0x54], ebp
mov eax, dword [0x4caec8]
mov ecx, dword [0x4cab7c]
cmp eax, ebp
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ecx
je 0x43578e
mov edx, dword [0x4caed0]
mov eax, dword [0x4caed4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
jmp 0x43579e
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x3ff00000
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esi + 0x60]
call fcn.00444320
test eax, eax
jne 0x4357bc
mov ecx, dword [esi + 0x60]
push 1
call fcn.004448d0
mov dword [esi + 0x60], ebp
mov ecx, esi
call fcn.00436520
jmp 0x435869
mov ecx, dword [esi + 0x60]
call fcn.00444db0
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [esi + 0x60]
mov edi, 0x14
sar edx, 6
mov eax, edx
push 0xffffffffffffffff
shr eax, 0x1f
add edx, eax
sub edi, edx
call fcn.00444db0
test eax, eax
je 0x43581a
mov ecx, dword [esi + 0x60]
push 0xffffffffffffffff
call fcn.00444cb0
mov ecx, dword [esi + 0x60]
mov ebp, eax
push 0xffffffffffffffff
imul ebp, edi
call fcn.00444db0
mov ecx, eax
mov eax, ebp
cdq
idiv ecx
mov edi, eax
cmp edi, 1
jge 0x435824
mov edi, 1
mov ecx, dword [esi + 0x60]
xor ebp, ebp
push ebp
push ebp
push edi
call fcn.00444730
test eax, eax
jne 0x435844
mov ecx, dword [esi + 0x60]
push 1
call fcn.004448d0
mov dword [esi + 0x60], ebp
jmp 0x435869
mov ecx, dword [esi + 0x60]
call fcn.004450c0
test eax, eax
je 0x435869
mov ecx, dword [esi + 0x60]
push 1
call fcn.004448d0
cmp dword [esi + 0x6c], ebp
je 0x435869
mov ecx, esi
mov dword [esi + 0x6c], ebp
call fcn.00436150
mov ecx, ebx
call fcn.00444ee0
test eax, eax
jne 0x43587b
mov ecx, esi
call fcn.00436520
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret