Function at 0x461671
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
push ebx
mov byte [ebp - 0x24], dl
xor ebx, ebx
mov dword [ebp - 0xc], ebx
push esi
mov dword [ebp - 0x10], 0xa2fc53d8
push edi
mov dword [ebp - 4], ebx
jmp 0x4616a2
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xa8], 0xfffffff6
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x461691
push 3
mov dword [ebp - 4], ebx
pop esi
jmp 0x4616be
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x44], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x4616b0
push 1
pop edi
cmp dword [ebp - 0xc], ebx
je 0x461759
mov dword [ebp - 8], 0x86d6
mov dword [ebp - 0x10], 0xc7ba
mov dword [ebp - 0xc], ebx
jmp 0x461752
mov dword [ebp - 4], 0x9ea9831
mov dword [ebp - 4], esi
cmp dword [ebp - 4], ebx
jl 0x461730
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xa8], ecx
mov eax, dword [ebp - 4]
cmp dword [ebp - 4], edi
jle 0x46170d
mov eax, edi
cmp dword [ebp - 8], ebx
jne 0x46170f
mov eax, ebx
cmp eax, dword [ebp - 0xc]
jg 0x46171b
mov ecx, ebx
cmp dword [ebp - 0x10], ebx
je 0x46171d
mov ecx, edi
xor eax, eax
cmp ecx, 0xfffffffc
setne al
mov dword [ebp - 0xa4], eax
dec dword [ebp - 4]
jns 0x4616f1
mov dword [ebp - 8], 2
cmp dword [ebp - 8], ebx
jl 0x46174f
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + eax*4 - 0x44]
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], ecx
dec dword [ebp - 8]
jns 0x46173c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jle 0x4616e2
jmp 0x461779
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x461779
push edi
push 0x4c8
push 0x1195
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetScrollPos]
mov eax, dword [ebp - 0x40]
mov ecx, 0xdda5659c
mov eax, dword [ebp - 0x44]
cmp ecx, eax
sbb ecx, ecx
add ecx, 0xffff287b
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
neg ecx
mov dword [ebp - 0xa0], ecx
cmp ecx, 0xe2e
mov ecx, dword [ebp - 0xc]
setle al
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0x324ec2e0
mov dword [ebp - 0x10], 0x29cbc21b
mov dword [ebp - 8], ebx
jmp 0x4617d4
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x28], 0xfffffffe
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x4617c6
mov dword [ebp - 4], 0xfffffff1
jmp 0x4617ef
mov dword [ebp - 0x10], 0xfffffff6
inc dword [ebp - 0x10]
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffff
jne 0x4617e2
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], ebx
jl 0x46189f
mov dword [ebp - 8], 2
mov dword [ebp - 8], ebx
jmp 0x461837
mov dword [ebp - 0x10], 0x8b9dbea5
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x461831
push 0x9d0
push 0xe2
push 0xba6
call dword [sym.imp.KERNEL32.dll_HeapCreate]
inc dword [ebp - 0x10]
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x46180d
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x28], ebx
jne 0x461883
cmp dword [ebp - 4], ebx
je 0x46185b
mov dword [ebp - 8], 0xffffffff
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x28]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edx, ebx
mov eax, dword [ebp + eax*4 - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp dword [ebp - 4], ebx
je 0x461885
mov edx, edi
mov eax, dword [ebp - 4]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x28]
cmp eax, edx
sete cl
mov dword [ebp - 0x10], ecx
dec dword [ebp - 4]
jns 0x461801
mov dword [ebp - 8], 7
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], 0x7dcc
mov dword [ebp - 8], ebx
jmp 0x4618c3
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x38], 0x6917ab6d
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x4618b5
mov dword [ebp - 8], ebx
jmp 0x461a27
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xde1fc657
mov dword [ebp - 0x18], 0xb0cf5aa0
cmp dword [ebp - 8], ebx
je 0x4619c0
mov dword [ebp - 0x1c], 0xac70c309
mov dword [ebp - 0xc], ebx
jmp 0x461916
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xc0], 0xecf7921e
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x461905
mov dword [ebp - 0x1c], ebx
jmp 0x4619b1
mov dword [ebp - 4], 0xfffffff7
lea ecx, [ebp - 0x8c]
push edi
call fcn.004011bf
mov dword [ebp - 0xc], ebx
jmp 0x46194e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0xfc39
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x46193b
mov dword [ebp - 4], ebx
jmp 0x46199d
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], ebx
jl 0x4619a3
mov dword [ebp - 0x18], 0xb0d193e0
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x461990
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x46198b
push edi
push 0x1b83
push 0x13e2
call dword [sym.imp.USER32.dll_AttachThreadInput]
dec dword [ebp - 0x18]
jns 0x461972
dec dword [ebp - 0xc]
jns 0x461963
cmp dword [ebp - 0xc], ebx
jne 0x4619a3
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xa
jge 0x461958
lea ecx, [ebp - 0x8c]
call fcn.00401291
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x16
jge 0x461923
dec dword [ebp - 0x10]
jmp 0x461a24
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0x5cf455db
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], 0xf7c2f5a2
cmp dword [ebp - 0x18], 2
mov ecx, dword [ebp - 0x18]
sbb eax, eax
xor edx, edx
neg eax
sub ecx, eax
mov eax, dword [ebp - 0x18]
cmp ecx, 0xfffffffc
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setl cl
xor edx, edx
add ecx, 0xfffd
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setg dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp eax, edx
setge cl
sub ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff6
je 0x4618d1
mov dword [ebp - 0x20], 0xac8b13ec
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x20], 0xfcb50bf3
mov dword [ebp - 0x20], 0x60f951fe
mov dword [ebp - 0x20], 5
push edi
call fcn.004011bf
push edi
lea ecx, [ebp - 0xb4]
call fcn.004011bf
push 2
lea ecx, [ebp - 0x5c]
call fcn.004011bf
mov dword [ebp - 4], ebx
jmp 0x461a7e
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x74]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461a71
mov dword [ebp - 4], ebx
jmp 0x461a9b
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xb4]
mov dword [eax + ecx*4], 0xe164caf1
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461a88
mov dword [ebp - 4], ebx
jmp 0x461ab1
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x461aa5
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x74]
inc dword [ecx + 4]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
lea ecx, [ebp - 0x5c]
call fcn.00401291
lea ecx, [ebp - 0xb4]
call fcn.00401291
lea ecx, [ebp - 0x74]
call fcn.00401291
cmp byte [ebp - 0x24], bl
je 0x461de2
push esi
lea ecx, [ebp - 0x68]
call fcn.004011bf
push edi
lea ecx, [ebp - 0x50]
call fcn.004011bf
mov dword [ebp - 0x10], 0xfffffffd
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x10], 0x8319b885
mov dword [ebp - 4], ebx
jmp 0x461b21
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x461b15
mov dword [ebp - 4], ebx
jmp 0x461b39
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x2c], 0x48cc3837
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461b2b
mov dword [ebp - 4], ebx
jmp 0x461b50
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x50]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461b43
mov dword [ebp - 4], ebx
jmp 0x461b68
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x30], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461b5a
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov esi, dword [ebp - 0x68]
mov eax, dword [esi]
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x2c]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x2c]
setne cl
add ecx, eax
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
xor eax, eax
test ecx, ecx
sete al
xor edx, edx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setge dl
imul eax, edx, 0xd1c
cmp eax, 3
jg 0x461bc6
mov eax, dword [ebp - 0x50]
cmp dword [eax], ebx
je 0x461bc6
cmp dword [ebp - 0x10], ebx
je 0x461bc6
cmp dword [ebp - 0x30], ebx
je 0x461bc6
mov ebx, edi
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp ebx, dword [esi + 8]
mov edx, dword [ebp - 0x30]
sete cl
xor ebx, ebx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
sete bl
sub ebx, 0x2a90
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
imul edx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setl cl
xor edx, edx
cmp dword [esi + 8], ecx
lea ecx, [ebp - 0x50]
setle dl
sub edx, eax
mov dword [ebp - 0x10], edx
call fcn.00401291
lea ecx, [ebp - 0x68]
call fcn.00401291
mov dword [ebp - 8], 0x9aa810d2
xor ecx, ecx
mov dword [ebp - 0xc], 0x1d2250db
mov dword [ebp - 0x1c], 0x3809d01
mov dword [ebp - 4], 0x9689
mov dword [ebp - 0x10], 0x12ce33a9
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 8]
cmp eax, 9
setne cl
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov eax, dword [ebp - 0xc]
cmp ecx, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0x61fc
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
imul ecx, dword [ebp - 4], 0x1c58
mov eax, dword [ebp - 0x1c]
sub ecx, 0x1c58
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, 0x41b6
setge al
xor esi, esi
add eax, 0xb6fb96f
cmp eax, 0x7f1b
jl 0x461c9f
mov eax, edi
cmp dword [ebp - 0xc], esi
jne 0x461ca1
mov eax, esi
neg eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 4]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x64d9248e
setne al
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 4]
add eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
cmp eax, dword [ebp - 8]
jle 0x461ce0
mov dword [ebp - 0xc], 0xffffffff
jmp 0x461d17
mov dword [ebp - 0x18], 6
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp dword [ebp - 8], esi
je 0x461cf8
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
add eax, 2
cmp eax, 0x1c5a
setl cl
add ecx, dword [ebp - 4]
mov dword [ebp - 0x10], ecx
push 3
pop ebx
mov dword [ebp - 0x18], edi
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 8], 0x2687
push edi
call fcn.004011bf
mov dword [ebp - 4], esi
jmp 0x461d45
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x98], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x461d38
mov dword [ebp - 4], esi
jmp 0x461d5f
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], 0x6a47cded
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x461d4f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x10]
je 0x461d7d
cmp dword [ebp - 0x10], esi
je 0x461d7f
mov esi, edi
xor edx, edx
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 8]
setl dl
xor ebx, ebx
test edx, edx
setns bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x94]
setne cl
xor edx, edx
cmp ecx, 0xe486
mov ecx, dword [ebp - 0x98]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x80]
setl bl
imul ecx, ebx
mov dword [eax], ecx
lea ecx, [ebp - 0x80]
call fcn.00401291
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
test eax, eax
jns 0x461deb
add eax, 0x100
js 0x461dd7
mov dword [ecx], eax
jmp 0x461deb
mov eax, dword [ebp + 8]
mov dword [eax], 0x19
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret