Function at 0x4141b3
Capabilities:
Check for time delay via gettickcount
Get keyboard layout
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
cmp byte [eax], bl
push esi
push edi
je 0x414fed
cmp byte [ebp + 0xc], bl
mov esi, dword [0x45b170]
mov dword [ebp - 0x34], esi
jne 0x414246
push 7
push str.Blind
push eax
call dword [sym.imp.MSVCR71.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x414246
add dword [ebp + 8], 7
mov byte [0x45c8ec], 1
mov eax, dword [esi + 0x5c]
xor edi, edi
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x64]
inc edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 0x50], eax
je 0x414211
cmp dword [ebp + 0x10], 3
jne 0x414278
cmp dword [0x46023c], ebx
je 0x41424e
call fcn.0043fc3e
test al, al
jne 0x41424e
cmp byte [ebp + 0xc], bl
jne 0x414241
call fcn.0043fc8f
test al, al
je 0x414241
mov ecx, dword [ebp + 8]
mov eax, str.Click
call fcn.004388e8
test eax, eax
jne 0x41424e
mov dword [ebp + 0x10], edi
jmp 0x414278
mov byte [0x45c8ec], bl
jmp 0x4141f7
cmp dword [ebp + 0x10], 3
jne 0x41425d
mov dword [ebp + 0x10], 2
jmp 0x414278
cmp dword [esi + 0x5c], ebx
mov dword [ebp + 0x10], ebx
jge 0x41426f
cmp dword [esi + 0x64], ebx
jge 0x41426f
or eax, 0xffffffff
jmp 0x414271
xor eax, eax
or dword [esi + 0x5c], 0xffffffff
mov dword [esi + 0x64], eax
mov esi, dword [ebp + 0x14]
cmp esi, ebx
mov byte [ebp - 8], bl
je 0x4142cc
push ebx
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x4c], edi
je 0x41435f
cmp edi, dword [0x45fb18]
je 0x41435f
call fcn.0043b24f
test al, al
jne 0x41435f
push 1
push edi
push dword [0x45fb18]
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
setne byte [ebp - 8]
mov ebx, edi
jmp 0x41435f
test byte [0x45ffe9], 0xc0
je 0x41434b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x45ffe0]
cmp eax, 0x32
jae 0x41434b
cmp dword [ebp + 0x10], ebx
jne 0x41434b
cmp byte [0x45c8ec], bl
jne 0x41434b
cmp byte [0x460217], bl
je 0x41434b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x45fb18]
jne 0x41434b
cmp byte [ebp + 0xc], bl
mov eax, dword [ebp + 8]
je 0x414325
mov edi, 0x454288
call fcn.00438cc6
test eax, eax
setne al
jmp 0x4143af
mov esi, 0x454288
jmp 0x414340
inc eax
mov edi, 0x454284
call fcn.00438cc6
cmp eax, ebx
je 0x4143ad
cmp byte [eax], 0x7b
je 0x4143ad
mov edi, esi
call fcn.00438cc6
cmp eax, ebx
jne 0x41432c
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, ebx
je 0x41435f
push ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ebx, eax
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov ebx, eax
xor eax, eax
mov dword [0x45c910], ebx
call fcn.00412cf9
push 1
mov dword [0x45c90c], eax
call fcn.00411f94
xor esi, esi
cmp dword [0x45db00], esi
mov bl, al
pop ecx
mov byte [ebp - 0x30], bl
je 0x4143e7
mov cl, byte [0x45d9e8]
mov dl, byte [0x45d9ea]
mov al, cl
not cl
and al, dl
and cl, dl
mov byte [ebp - 2], dl
mov byte [ebp - 0xa], cl
jmp 0x414412
mov al, 1
cmp al, bl
je 0x41434b
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x5b
call esi
test ah, ah
js 0x4143c9
push 0x5c
call esi
test ah, ah
jns 0x41434b
xor esi, esi
inc esi
push esi
push 0x8000012f
mov dword [0x45b0d4], ebx
call fcn.0040d9dd
pop ecx
pop ecx
mov dword [0x45b0d4], esi
jmp 0x4143b3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x45ffe0]
cmp eax, dword [0x45b0c8]
jae 0x414407
mov al, byte [0x45ffe9]
and al, bl
mov byte [ebp - 2], al
jmp 0x41440e
mov byte [ebp - 2], 0
mov al, byte [ebp - 2]
mov byte [ebp - 0xa], 0
mov cl, byte [0x45f407]
not al
and al, bl
and cl, al
mov al, byte [0x45c8ec]
test al, al
mov byte [0x45f407], cl
je 0x414439
not cl
and cl, bl
mov byte [ebp - 3], cl
mov byte [ebp - 7], bl
jmp 0x414440
mov byte [ebp - 3], 0
mov byte [ebp - 7], cl
cmp byte [ebp - 8], 0
jne 0x41444f
cmp byte [0x460211], 0
jne 0x41446f
mov ecx, dword [ebp - 0x34]
cmp byte [ecx + 0xca], 0
je 0x41446f
test al, al
jne 0x41446f
push 2
push 0x14
call fcn.004155fd
pop ecx
pop ecx
mov dword [ebp - 0x38], eax
jmp 0x414472
mov dword [ebp - 0x38], esi
mov edi, dword [ebp + 0x10]
cmp edi, esi
mov dword [0x45f458], edi
je 0x4144c2
cmp edi, 1
jne 0x414495
mov eax, 0x36b0
mov dword [0x45c900], 0x1f4
jmp 0x4144a4
mov eax, 0x2ee0
mov dword [0x45c900], 0x5dc
add eax, 3
and eax, 0xfffffffc
call fcn.0044ff40
mov ecx, esp
push dword [ebp - 0x30]
push dword [0x45c900]
call fcn.004126ef
add esp, 8
mov al, byte [0x45e402]
mov byte [ebp - 0x23], al
mov eax, dword [0x45b180]
cmp eax, 8
je 0x4144d9
cmp eax, 0xa
jne 0x414503
cmp edi, esi
jne 0x414503
cmp dword [ebp + 0x14], esi
jne 0x414503
cmp byte [0x460213], 0
je 0x414503
mov bl, 1
mov byte [ebp - 0x15], 1
call fcn.0041a306
mov byte [ebp - 1], 0
mov byte [ebp - 0x2b], 0
jmp 0x414ce0
mov byte [ebp - 0x15], 0
jmp 0x4144f6
xor ebx, ebx
cmp dword [0x45f458], ebx
mov byte [ebp - 9], 0
jne 0x414565
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x460024]
mov ecx, dword [0x45b170]
cmp eax, dword [ecx + 0xb0]
jbe 0x414565
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x41455e
xor edi, edi
inc edi
push edi
push 0xffffffffffffffff
mov dword [0x45b0d4], ebx
call fcn.0040d9dd
pop ecx
pop ecx
mov dword [0x45b0d4], edi
call esi
mov dword [0x460024], eax
cmp byte [ebp + 0xc], 0
mov edi, dword [ebp + 8]
jne 0x414c76
movsx eax, byte [edi]
mov esi, dword [sym.imp.MSVCR71.dll_strchr]
push eax
push str._
call esi
test eax, eax
pop ecx
pop ecx
je 0x414c76
movsx eax, byte [edi]
sub eax, 0x21
je 0x414c6a
dec eax
dec eax
je 0x414c55
sub eax, 8
je 0x414c42
sub eax, 0x33
je 0x414c2f
sub eax, 0x1d
jne 0x414cd5
mov ebx, edi
inc ebx
push 0x7d
push ebx
call esi
mov edi, eax
test edi, edi
pop ecx
pop ecx
mov dword [ebp - 0x1c], edi
je 0x414cd5
mov esi, ebx
mov dword [ebp - 0x20], esi
mov al, byte [esi]
cmp al, 0x20
je 0x4145e2
cmp al, 9
jne 0x4145e5
inc esi
jmp 0x4145d8
mov ebx, edi
sub ebx, esi
mov dword [ebp - 0x20], esi
mov dword [ebp + 8], esi
mov dword [ebp - 0x3c], ebx
jne 0x41466d
inc edi
mov al, byte [edi]
cmp al, 0x7d
jne 0x414603
xor ebx, ebx
mov dword [ebp - 0x1c], edi
inc ebx
jmp 0x41466a
cmp al, 0x20
je 0x414612
cmp al, 9
jne 0x414c24
mov esi, dword [ebp - 0x20]
mov al, byte [edi]
cmp al, 0x20
je 0x41461c
cmp al, 9
jne 0x41461f
inc edi
jmp 0x414612
mov ebx, dword [sym.imp.MSVCR71.dll__strnicmp]
push 4
push str.Down
push edi
call ebx
add esp, 0xc
test eax, eax
je 0x41464e
push 2
push 0x452a84
push edi
call ebx
add esp, 0xc
test eax, eax
jne 0x414c24
mov esi, dword [ebp - 0x20]
push 0x7d
push edi
call dword [sym.imp.MSVCR71.dll_strchr]
mov edi, eax
test edi, edi
pop ecx
pop ecx
mov dword [ebp - 0x1c], edi
je 0x414cd5
mov ebx, edi
sub ebx, esi
mov dword [ebp - 0x3c], ebx
push 5
push 0x45391c
push esi
call dword [sym.imp.MSVCR71.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x4146fd
mov byte [edi], al
lea eax, [esi + 5]
mov cl, byte [eax]
cmp cl, 0x20
je 0x414693
cmp cl, 9
jne 0x414696
inc eax
jmp 0x414687
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0xe]
push ecx
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x44]
push ecx
call fcn.004133aa
add esp, 0x18
cmp dword [ebp - 0x28], 1
push dword [ebp - 0x40]
mov byte [edi], 0x7d
jge 0x4146e2
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 0xc7]
push eax
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x48]
lea ecx, [ebp - 0x44]
call fcn.00413238
pop ecx
pop ecx
jmp 0x414c24
push dword [ebp - 0x48]
push dword [ebp - 0x44]
push dword [ebp + 0x14]
push 0
push dword [ebp - 0x14]
push dword [ebp - 0x28]
push dword [ebp - 7]
push 0
jmp 0x414c16
push 3
push 0x454278
push esi
call dword [sym.imp.MSVCR71.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x41471b
mov byte [ebp + 0xc], 1
jmp 0x414c24
mov byte [edi], 0
mov edi, 0x453ea4
mov eax, esi
mov dword [ebp - 0x14], 2
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x30], ebx
call fcn.00438cc6
mov ebx, eax
test ebx, ebx
je 0x4147bd
mov al, byte [ebx]
mov byte [ebp - 0x21], al
mov eax, ebx
sub eax, dword [ebp - 0x20]
mov byte [ebx], 0
mov dword [ebp - 0x30], eax
lea esi, [ebx + 1]
mov al, byte [esi]
cmp al, 0x20
je 0x41475e
cmp al, 9
jne 0x414761
inc esi
jmp 0x414754
mov eax, dword [ebp - 0x1c]
sub eax, esi
je 0x4147bd
mov edi, dword [sym.imp.MSVCR71.dll__strnicmp]
push 4
push str.Down
push esi
call edi
add esp, 0xc
test eax, eax
jne 0x41479a
and dword [ebp - 0x14], eax
push 4
push str.Temp
add esi, 4
push esi
call edi
add esp, 0xc
test eax, eax
setne byte [ebp - 0x22]
jmp 0x4147bd
push 0x452a84
push esi
call dword [sym.imp.MSVCR71.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x4147b5
mov dword [ebp - 0x14], 1
jmp 0x4147bd
call fcn.0040113f
mov dword [ebp - 0x28], eax
push dword [0x45c910]
mov edi, dword [ebp - 0x20]
push 0
lea eax, [ebp - 1]
push 1
push eax
mov eax, edi
call fcn.00415537
add esp, 0x10
test al, al
mov byte [ebp - 0xe], al
je 0x4147e5
and dword [ebp + 8], 0
jmp 0x4147ef
mov eax, edi
call fcn.004152e9
mov dword [ebp + 8], eax
cmp byte [ebp - 0xe], 0
jne 0x41486c
cmp word [ebp + 8], 0
jne 0x41486c
movsx eax, byte [edi]
mov esi, dword [sym.imp.MSVCR71.dll_toupper]
push eax
call esi
cmp eax, 0x56
pop ecx
jne 0x41486c
movsx eax, byte [edi + 1]
push eax
call esi
cmp eax, 0x4b
pop ecx
jne 0x41486c
mov esi, dword [ebp - 0x20]
add esi, 2
mov edi, 0x45426c
mov eax, esi
call fcn.00438cc6
mov edi, eax
test edi, edi
je 0x414858
movsx eax, byte [edi + 1]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x43
pop ecx
jne 0x414858
push 0x10
push 0
add edi, 2
push edi
call dword [sym.imp.MSVCR71.dll_strtol]
add esp, 0xc
mov dword [ebp + 8], eax
push 0x10
push 0
push esi
call dword [sym.imp.MSVCR71.dll_strtol]
mov edi, dword [ebp - 0x20]
add esp, 0xc
mov byte [ebp - 0xe], al
test ebx, ebx
je 0x414875
mov al, byte [ebp - 0x21]
mov byte [ebx], al
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0x7d
mov eax, dword [ebp - 0x28]
cmp eax, 1
jl 0x414c24
cmp byte [ebp - 0xe], 0
jne 0x414b89
cmp word [ebp + 8], 0
jne 0x414b89
cmp dword [ebp - 0x30], 1
jne 0x4148c5
cmp dword [ebp + 0x14], 0
jne 0x414c24
cmp dword [ebp - 0x14], 1
je 0x414c24
xor ecx, ecx
mov cl, byte [edi]
push ecx
call fcn.00414ff8
jmp 0x4146dc
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x20]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
sete al
push eax
lea eax, [ebp - 7]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00415360
add esp, 0xc
test al, al
mov byte [ebp - 0xe], al
je 0x414b25
cmp dword [ebp + 0x14], ebx
jne 0x414905
cmp dword [ebp - 0x14], ebx
jne 0x4148fe
mov byte [ebp - 9], al
jmp 0x414905
mov cl, al
call fcn.00411db1
cmp dword [0x45f458], ebx
je 0x414917
mov al, byte [0x45c8f8]
jmp 0x414a88
cmp dword [0x45db00], ebx
je 0x414929
mov al, byte [0x45d9e8]
jmp 0x414a88
cmp byte [0x460211], 0
mov byte [ebp + 0xb], 0
jne 0x4149c8
cmp byte [0x460212], 0
jne 0x4149c8
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0xa0
call esi
mov edi, 0x8000
test di, ax
je 0x414962
mov byte [ebp + 0xb], 0x10
push 0xa1
call esi
test di, ax
je 0x414972
or byte [ebp + 0xb], 0x20
push 0xa2
call esi
test di, ax
je 0x414982
or byte [ebp + 0xb], 1
push 0xa3
call esi
test di, ax
je 0x414992
or byte [ebp + 0xb], 2
push 0xa4
call esi
test di, ax
je 0x4149a2
or byte [ebp + 0xb], 4
push 0xa5
call esi
test di, ax
je 0x4149b2
or byte [ebp + 0xb], 8
push 0x5b
call esi
test di, ax
je 0x4149bf
or byte [ebp + 0xb], 0x40
push 0x5c
call esi
test di, ax
jmp 0x414a41
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call edi
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, 0x8000
test si, ax
jne 0x4149eb
push 0x10
call ebx
test si, ax
je 0x4149ef
mov byte [ebp + 0xb], 0x10
push 0x11
call edi
test si, ax
jne 0x414a01
push 0x11
call ebx
test si, ax
je 0x414a05
or byte [ebp + 0xb], 1
push 0x12
call edi
test si, ax
jne 0x414a17
push 0x12
call ebx
test si, ax
je 0x414a1b
or byte [ebp + 0xb], 4
push 0x5b
call edi
test si, ax
jne 0x414a2d
push 0x5b
call ebx
test si, ax
je 0x414a31
or byte [ebp + 0xb], 0x40
push 0x5c
call edi
test si, ax
jne 0x414a43
push 0x5c
call ebx
test si, ax
je 0x414a47
or byte [ebp + 0xb], 0x80
cmp dword [0x45db00], 0
je 0x414a81
mov al, byte [ebp + 0xb]
not al
and al, byte [0x45d9e8]
je 0x414a81
not al
and byte [0x45d9ea], al
and byte [0x45d9e8], al
and byte [0x45d9e9], al
mov cl, byte [0x45d9ea]
mov eax, 0x45d9f0
call fcn.00411ad2
xor eax, eax
mov al, byte [ebp + 0xb]
xor ebx, ebx
push ebx
push ebx
push dword [ebp + 0x14]
mov esi, 0xffc3d44d
push eax
push dword [ebp - 7]
mov eax, esi
call fcn.00412104
mov eax, dword [ebp - 0x28]
add esp, 0x14
cmp eax, ebx
jle 0x414c24
mov dword [ebp + 8], eax
push esi
push 1
push dword [ebp + 0x14]
push ebx
push dword [ebp - 0xe]
push dword [ebp - 0x14]
call fcn.00412730
add esp, 0x18
cmp dword [0x45f458], ebx
jne 0x414b1b
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [0x460024]
mov ecx, dword [0x45b170]
cmp eax, dword [ecx + 0xb0]
jbe 0x414b1b
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x414b14
push 1
push 0xffffffffffffffff
mov dword [0x45b0d4], ebx
call fcn.0040d9dd
pop ecx
pop ecx
mov dword [0x45b0d4], 1
call edi
mov dword [0x460024], eax
dec dword [ebp + 8]
jne 0x414aae
jmp 0x414c24
cmp esi, 4
jbe 0x414c24
push 4
push str.ASC
push edi
call dword [sym.imp.MSVCR71.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x414c24
cmp dword [ebp + 0x14], ebx
jne 0x414c24
lea eax, [edi + 3]
mov cl, byte [eax]
cmp cl, 0x20
je 0x414b5f
cmp cl, 9
jne 0x414b62
inc eax
jmp 0x414b53
push eax
call fcn.00413a35
cmp dword [0x45f458], 2
mov eax, dword [0x45b170]
pop ecx
jne 0x414b7c
mov eax, dword [eax + 0x60]
jmp 0x414b7f
mov eax, dword [eax + 0x5c]
call fcn.00411e1b
jmp 0x414c24
push dword [ebp - 0xe]
mov esi, dword [ebp + 8]
xor edx, edx
call fcn.00412c27
mov bl, al
test bl, bl
pop ecx
mov byte [ebp - 0x54], bl
je 0x414bfd
cmp dword [ebp + 0x14], 0
jne 0x414bfd
cmp dword [ebp - 0x14], 0
jne 0x414bc3
cmp byte [ebp - 0x22], 0
mov al, byte [ebp - 0xe]
mov byte [ebp - 9], al
je 0x414bbe
or byte [0x45f407], bl
or byte [ebp - 7], bl
jmp 0x414bfd
cmp dword [ebp - 0x14], 1
jne 0x414bfd
mov cl, byte [ebp - 0xe]
call fcn.00411db1
mov al, byte [0x45f407]
mov cl, bl
not cl
and byte [ebp - 3], cl
and al, cl
cmp byte [ebp - 0xe], 0xa5
mov byte [0x45f407], al
jne 0x414bf7
cmp dword [0x45c90c], 3
jne 0x414bf7
and byte [ebp - 3], 0xfe
or al, byte [ebp - 3]
mov byte [ebp - 7], al
push 0
mov eax, 0x80000000
push eax
push eax
push dword [ebp + 0x14]
push dword [ebp - 0x54]
push dword [ebp - 0x14]
push dword [ebp - 0x28]
push dword [ebp - 7]
push esi
push dword [ebp - 0xe]
mov al, byte [ebp - 1]
call fcn.00413d25
add esp, 0x28
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 8], eax
jmp 0x414cd1
test byte [ebp - 7], 3
jne 0x414cd5
or byte [ebp - 1], 1
jmp 0x414cd5
test byte [ebp - 7], 0x30
jne 0x414cd5
or byte [ebp - 1], 0x10
jmp 0x414cd5
cmp byte [0x460007], 0
jne 0x414cd5
test byte [ebp - 7], 0xc0
jne 0x414cd5
or byte [ebp - 1], 0x40
jmp 0x414cd5
test byte [ebp - 7], 0xc
jne 0x414cd5
or byte [ebp - 1], 4
jmp 0x414cd5
push dword [0x45c910]
mov al, byte [edi]
xor esi, esi
inc esi
mov byte [ebp - 0x2c], al
push esi
lea eax, [ebp - 1]
push esi
push eax
lea eax, [ebp - 0x2c]
call fcn.00415537
add esp, 0x10
test al, al
mov byte [ebp - 0xe], al
je 0x414cbf
push ebx
mov eax, 0x80000000
push eax
push eax
push dword [ebp + 0x14]
mov al, byte [ebp - 1]
push ebx
push 2
push esi
push dword [ebp - 7]
push ebx
push dword [ebp - 0xe]
call fcn.00413d25
add esp, 0x28
jmp 0x414cd1
cmp dword [ebp + 0x14], ebx
jne 0x414cd1
xor eax, eax
mov al, byte [edi]
push eax
mov eax, esi
call fcn.00414ff8
pop ecx
mov byte [ebp - 1], 0
mov al, byte [ebp - 9]
inc dword [ebp + 8]
mov byte [0x45f406], al
mov eax, dword [ebp + 8]
cmp byte [eax], 0
jne 0x414509
xor edi, edi
cmp dword [0x45f458], edi
je 0x414d60
or dword [ebp + 8], 0xffffffff
cmp byte [0x45c8ee], 0
jne 0x414d52
cmp dword [0x45c904], edi
jbe 0x414d52
xor eax, eax
mov al, byte [ebp - 0xa]
not al
and al, byte [ebp - 2]
cmp byte [0x45c8ec], 0
push 1
setne cl
dec cl
push 1
push edi
and ecx, eax
or cl, byte [ebp - 7]
xor eax, eax
mov al, byte [0x45c8f8]
mov byte [ebp - 0x1c], cl
push eax
push dword [ebp - 0x1c]
mov eax, 0xffc3d44d
call fcn.00412104
push dword [ebp - 0x1c]
lea eax, [ebp + 8]
push eax
call fcn.00413c13
add esp, 0x1c
push dword [ebp + 8]
call fcn.0041172f
pop ecx
jmp 0x414f4d
cmp dword [0x45db00], edi
je 0x414d70
mov cl, byte [0x45d9ea]
jmp 0x414d93
cmp dword [0x45b0c8], edi
jl 0x414d90
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x45ffe0]
cmp eax, dword [0x45b0c8]
jb 0x414d90
xor cl, cl
jmp 0x414d93
mov cl, byte [ebp - 2]
cmp byte [0x45c8ec], 0
je 0x414db4
mov al, cl
xor al, byte [ebp - 2]
mov dl, al
and dl, byte [ebp - 2]
and al, cl
not dl
and dl, byte [ebp - 7]
or dl, al
mov byte [ebp - 0x1c], dl
jmp 0x414dc1
mov al, byte [ebp - 0xa]
not al
and al, cl
or al, byte [ebp - 7]
mov byte [ebp - 0x1c], al
cmp dword [0x45db00], edi
je 0x414dd3
mov al, byte [0x45d9e8]
jmp 0x414f30
cmp byte [0x460211], 0
mov byte [ebp + 0xb], 0
jne 0x414e72
cmp byte [0x460212], 0
jne 0x414e72
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0xa0
call esi
mov edi, 0x8000
test di, ax
je 0x414e0c
mov byte [ebp + 0xb], 0x10
push 0xa1
call esi
test di, ax
je 0x414e1c
or byte [ebp + 0xb], 0x20
push 0xa2
call esi
test di, ax
je 0x414e2c
or byte [ebp + 0xb], 1
push 0xa3
call esi
test di, ax
je 0x414e3c
or byte [ebp + 0xb], 2
push 0xa4
call esi
test di, ax
je 0x414e4c
or byte [ebp + 0xb], 4
push 0xa5
call esi
test di, ax
je 0x414e5c
or byte [ebp + 0xb], 8
push 0x5b
call esi
test di, ax
je 0x414e69
or byte [ebp + 0xb], 0x40
push 0x5c
call esi
test di, ax
jmp 0x414eeb
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call ebx
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, 0x8000
test si, ax
jne 0x414e95
push 0x10
call edi
test si, ax
je 0x414e99
mov byte [ebp + 0xb], 0x10
push 0x11
call ebx
test si, ax
jne 0x414eab
push 0x11
call edi
test si, ax
je 0x414eaf
or byte [ebp + 0xb], 1
push 0x12
call ebx
test si, ax
jne 0x414ec1
push 0x12
call edi
test si, ax
je 0x414ec5
or byte [ebp + 0xb], 4
push 0x5b
call ebx
test si, ax
jne 0x414ed7
push 0x5b
call edi
test si, ax
je 0x414edb
or byte [ebp + 0xb], 0x40
push 0x5c
call ebx
test si, ax
jne 0x414eed
push 0x5c
call edi
test si, ax
je 0x414ef1
or byte [ebp + 0xb], 0x80
cmp dword [0x45db00], 0
je 0x414f2b
mov al, byte [ebp + 0xb]
not al
and al, byte [0x45d9e8]
je 0x414f2b
not al
and byte [0x45d9ea], al
and byte [0x45d9e8], al
and byte [0x45d9e9], al
mov cl, byte [0x45d9ea]
mov eax, 0x45d9f0
call fcn.00411ad2
mov al, byte [ebp + 0xb]
xor edi, edi
push 1
push 1
push dword [ebp + 0x14]
mov byte [ebp + 8], al
push dword [ebp + 8]
mov eax, 0xffc3d44d
push dword [ebp - 0x1c]
call fcn.00412104
add esp, 0x14
cmp dword [0x45db00], edi
je 0x414f6e
mov al, byte [0x45d9e9]
xor al, byte [0x45d9e8]
and al, byte [0x45d9e9]
not al
and byte [0x45d9e9], al
cmp dword [ebp - 0x38], 1
jne 0x414f7f
push 1
push 0x14
call fcn.004155fd
pop ecx
pop ecx
cmp byte [ebp - 8], 0
je 0x414f95
push edi
push dword [ebp - 0x4c]
push dword [0x45fb18]
call dword [sym.imp.USER32.dll_AttachThreadInput]
cmp byte [ebp - 0x15], 0
je 0x414faa
cmp byte [ebp - 0x23], 0
jne 0x414faa
xor bl, bl
call fcn.0041a306
xor edi, edi
xor esi, esi
inc esi
cmp dword [ebp + 0x10], esi
jne 0x414fde
push edi
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x45fb18]
jne 0x414fde
push esi
push 0xffffffffffffffff
mov dword [0x45b0d4], edi
call fcn.0040d9dd
pop ecx
pop ecx
mov dword [0x45b0d4], esi
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x64], ecx
lea esp, [ebp - 0x84]
pop edi
pop esi
pop ebx
leave
ret