Function at 0x46a5d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov eax, ecx
inc ecx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x24]
push ecx
push eax
lea ecx, [ebx + 0x280]
call fcn.004f48d0
test eax, eax
je 0x45a898
mov ecx, dword [esp + 0x24]
xor edi, edi
cmp dword [ecx + 0x44], edi
je 0x45a5d3
cmp dword [ecx + 0x3c], edi
jne 0x45a60f
xor eax, eax
jmp 0x45a612
mov eax, dword [ecx + 0x34]
mov esi, dword [ecx + 0x3c]
mov dword [esp + 0x4c], edi
shr esi, 2
cmp esi, edi
jle 0x45a6b8
add ebx, 0x264
mov ebp, eax
mov eax, dword [ebp]
lea edx, [esp + 0x10]
push 0
push edx
push eax
mov ecx, ebx
call fcn.004f4970
test eax, eax
je 0x45a6a8
mov ecx, dword [esp + 0x10]
mov eax, dword [0x66da44]
push eax
mov ecx, dword [ecx]
push ecx
call fcn.0052d7b8
add esp, 8
test eax, eax
je 0x45a674
mov edx, dword [esp + 0x10]
mov eax, dword [0x66da48]
push eax
mov ecx, dword [edx]
push ecx
call fcn.0052d7b8
add esp, 8
test eax, eax
jne 0x45a69a
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x45a7c3
test byte [eax + 0x10], 8
jne 0x45a7c3
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jg 0x45a7c3
jmp 0x45a69e
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x40]
call fcn.00491be0
inc edi
add ebp, 4
cmp edi, esi
jl 0x45a62c
mov ecx, dword [esp + 0x24]
call fcn.004f0490
test eax, eax
mov dword [esp + 0x1c], eax
je 0x45a5d3
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov ebx, edx
neg ebx
sbb ebx, ebx
and ebx, esi
shr edx, 2
mov esi, edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
jmp 0x45a6ec
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x3c]
xor ecx, ecx
cmp edx, ecx
jne 0x45a6fb
mov dword [esp + 0x2c], ecx
jmp 0x45a702
mov edx, dword [eax + 0x34]
mov dword [esp + 0x2c], edx
mov ebp, dword [eax + 0x3c]
mov dword [esp + 0x20], ecx
shr ebp, 2
cmp esi, ecx
jle 0x45a7ab
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x18]
xor edi, edi
test ebp, ebp
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
jle 0x45a78f
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
lea ebx, [eax + 0x264]
mov edx, dword [esi]
lea ecx, [esp + 0x30]
push 0
push ecx
push edx
mov ecx, ebx
call fcn.004f4970
test eax, eax
je 0x45a77b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.0052d7b8
add esp, 8
test eax, eax
jne 0x45a77b
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
push edx
call fcn.004eea00
test eax, eax
je 0x45a828
inc edi
add esi, 4
cmp edi, ebp
jl 0x45a736
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
inc ecx
add edi, 4
cmp ecx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edi
jl 0x45a718
mov ecx, eax
call fcn.004f0490
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x45a6e8
jmp 0x45a5d3
mov ecx, 0x6761a0
call fcn.00486bf0
add al, byte [eax]
push 0x2786
push 0x6761a0
call fcn.00486c20
mov eax, dword [esp + 0x1c]
add esp, 8
dec eax
mov ecx, 0x6756e0
push 0xffffffffffffffff
push 0
push 0
push 1
push edi
push eax
push 1
call fcn.00403b60
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x3c], 0x5f7940
call fcn.00491ab0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
add esp, 0x4c
ret
mov ecx, 0x6761a0
call fcn.00486bf0
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
push edx
push 0x2785
push 0x6761a0
call fcn.00486c20
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add esp, 0xc
dec ecx
push 0xffffffffffffffff
push 0
push 0
push 1
push eax
push ecx
push 1
mov ecx, 0x6756e0
call fcn.00403b60
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x3c], 0x5f7940
call fcn.00491ab0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
add esp, 0x4c
ret
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x3c], 0x5f7940
call fcn.00491ab0
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x4c
ret
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e7578
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x410]
test eax, eax
je 0x46a624
push 0x124
push 0x662898
call fcn.0043c870
cmp eax, 6
je 0x46a61d
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0042ff60
stc
jb 0x46a628
jge 0x4766eb
lea edi, [esi + 0xc0]
mov ecx, edi
call fcn.00460c80
cmp eax, 1
jne 0x46a6d9
add byte [ebx + 0x664be8cf], cl
invalid
push 0x23
push 0x662874
mov ecx, esi
call fcn.0043c870
cmp eax, 2
jne 0x46a663
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
cmp eax, 6
jne 0x46a6af
mov eax, dword [0x6707bc]
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
push 0
push ecx
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00456fc0
test eax, eax
je 0x46a6ee
mov edx, dword [ebp - 0x10]
push 1
push edx
mov ecx, edi
call fcn.00458020
test eax, eax
je 0x46a6ee
mov ecx, edi
call fcn.00460cb0
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.005bc421
mov eax, dword [esi + 0x944]
test eax, eax
jne 0x46a6d9
cmp dword [esi + 0x9fc], 1
jne 0x46a6d9
mov eax, dword [esi + 0x940]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [esi + 0x944], 1
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
call fcn.005bc421
mov ecx, dword [ebp - 0xc]
pop edi
xor eax, eax
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
add byte [eax], al
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], esi
stc
jb 0x4766f7
jge 0x45a781
lea eax, [ebp - 0x1c0]
lea ecx, [ebp - 0x34]
push eax
lea edx, [ebp - 0x2c]
push ecx
dec dword [ebp - 0x72af33b3]
push ebp
aam 0x51
lea eax, [ebp - 0x28]
push edx
lea ecx, [ebp - 0x30]
push eax
lea edx, [ebp - 0x38]
push ecx
lea eax, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x14]
push eax
mov edi, 1
push ecx
push edi
call fcn.00401240
add esp, 0x24
cmp ax, si
jne 0x476799
stc
jb 0x476731
jge 0x45a7cb
lea edx, [ebp - 0x1c0]
lea eax, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x2c]
push eax
dec dword [ebp - 0x72ad33bb]
dec ebp
aam 0x50
lea edx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x38]
push eax
lea edx, [ebp - 0x3c]
push ecx
lea eax, [ebp - 0x14]
push edx
push eax
push 3
call fcn.00401240
add esp, 0x24
cmp ax, si
je 0x476783
push 0x6648b0
call fcn.004ff630
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cx, 0
mov dword [ebx + 0x568], edi
mov word [ebx + 0x56c], cx
jmp 0x47689c
lea edx, [ebp - 0x58]
lea eax, [ebp - 0xd10]
push edx
push eax
mov dword [ebp - 0x58], esi
call fcn.0053e3a0
test eax, eax
jne 0x4767dc
mov edx, dword [ebp - 0x58]
cmp edx, edi
jl 0x4767dc
cmp edx, esi
jle 0x4767dc
lea ecx, [ebp - 0xd00]
cmp dword [ecx], 0x56fb6dd9
je 0x4767d3
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4767c1
jmp 0x4767dc
cmp eax, edx
jge 0x4767dc
cmp eax, 0xffffffff
jne 0x476815
push 0x24
push 0x664844
mov ecx, ebx
call fcn.0043c870
cmp eax, 6
jne 0x477578
push 5
push str.http:__www.eyuyan.com_buy.htm
call fcn.00488760
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x80]
push eax
push ecx
mov dword [ebp - 0x80], esi
call fcn.0053e400
test eax, eax
je 0x476846
push 0x664810
call fcn.004ff630
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x80]
push edx
call fcn.0053e430
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0xbc]
push eax
push str.59AF40E5F79F49C9
push esi
push ecx
call fcn.0053e530
test eax, eax
je 0x476889
push 0x6647e4
call fcn.004ff630
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x80]
mov dword [ebx + 0x568], 2
mov dword [ebx + 0x570], edx
stc
jb 0x4768a0
jno 0x47690b
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
adc bh, bh
adc eax, sym.imp.USER32.dll_GetKeyState
xor ecx, ecx
test ax, ax
setl cl
mov dword [ebx + 0x928], ecx
lea ecx, [ebp - 0x7c]
call fcn.005d8e26
mov edx, dword [0x6707bc]
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], edx
mov ecx, dword [0x68493c]
mov byte [ebp - 4], 1
cmp ecx, edi
mov dword [ebp - 0x58], esi
mov eax, edi
jle 0x476994
stc
jb 0x4768e5
invalid
mov ecx, dword [0x684940]
xor edi, edi
xor edx, edx
mov esi, dword [ecx + eax*4]
mov ecx, dword [0x68493c]
inc eax
mov dword [ebp - 0x50], eax
cmp eax, ecx
mov al, byte [esi]
sete dl
cmp al, 0x2d
mov dword [ebp - 0x80], edx
je 0x47690e
cmp al, 0x2f
das
jne 0x476917
mov edi, 1
inc esi
mov dword [ebp - 0x58], edi
clc
jae 0x47691b
mov ch, 0x8b
inc ebp
test al, 0x85
ror byte [ebx + 0x488be845], 0xf8
mov eax, dword [ebp - 0x58]
test eax, eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax - 8]
jne 0x476944
sbb al, 0x85
leave
test ecx, ecx
je 0x476939
push 0x660658
lea ecx, [ebp - 0x18]
call fcn.005bc7fd
push esi
lea ecx, [ebp - 0x18]
call fcn.005bc7fd
jmp 0x476983
test ecx, ecx
je 0x47695d
push 0
push 0
push eax
lea ecx, [ebp - 0x7c]
call fcn.005d8ed8
lea ecx, [ebp - 0x18]
call fcn.005bc3ac
call 0x476962
add dword [esp], 6
ret
mov eax, dword [ebp - 0x50]
mov ecx, dword [0x68493c]
cmp eax, ecx
jl 0x4768e1
or edi, 0xffffffff
stc
jb 0x47699b
js 0x476927
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax - 8]
test ecx, ecx
inc ebp
call 0x863fb22d
leave
je 0x4769b2
push 1
push 0
push eax
lea ecx, [ebp - 0x7c]
call fcn.005d8ed8
stc
jb 0x4769b6
jnp 0x674f25d0
mov edx, dword [0x6707bc]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebx + 0x68]
lea eax, [ebp - 0x1c0]
push 0x104
push eax
push ecx
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [ebp - 0x1c0]
lea ecx, [ebp - 0x1c]
push edx
call fcn.005bc5aa
jmp 0x4769eb
add byte [ecx + 0x4b8be455], cl
push 0xfe40858d
invalid
mov eax, dword [ebx + 0x9ec]
lea ecx, [ebx + 0x9ec]
push 0
lea edx, [ebp - 0x1c0]
push 0x20
push edx
call dword [eax + 0x20]
test eax, eax
jne 0x476a13
push 0x6647d4
jmp 0x47754d
call 0x476a18
add dword [esp], 6
ret
call fcn.004ff630
add esp, 4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.005bc421
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.005bc421
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x7c]
call fcn.005d8e81
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret