Function at 0x450f0c
Capabilities:
Create process on windows
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x495d62
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x21c
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
mov ebx, ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov ecx, 0x4a3b98
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], 8
mov dword [ebp - 0x34], 0x4c2440
mov dword [ebp - 0x30], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x450f6e
lea eax, [ebp - 0x30]
push eax
push dword [ebp - 0x34]
call fcn.0045763c
mov eax, dword [ebp - 0x14]
cmp eax, 0xfe50
jb 0x4511f6
cmp eax, 0xfe60
ja 0x450fc8
mov dword [ebp - 0x28], 8
mov ecx, 0x4a3b98
mov dword [0x4b45f0], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], 0x4c2450
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x450fb5
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x24]
call fcn.0045763c
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebx + 4]
mov esi, dword [edx + 4]
mov eax, edx
mov edi, dword [0x4b4624]
cmp esi, edi
je 0x450fef
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [esi + 0xc]
jbe 0x450fe7
mov esi, dword [esi + 8]
jmp 0x450feb
mov eax, esi
mov esi, dword [esi]
cmp esi, edi
jne 0x450fda
cmp eax, edx
jne 0x450ff7
mov eax, edx
jmp 0x450fff
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [eax + 0xc]
jb 0x450ff3
cmp eax, edx
jne 0x451061
mov dword [ebp - 0x204], 8
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x200], 0x4c2514
mov dword [ebp - 0x1fc], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x451048
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp - 0x200]
call fcn.0045763c
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov byte [ebp - 0x214], 0
mov eax, dword [ebp - 0x14]
lea esi, [ebp - 0x210]
mov dword [ebp - 0x218], eax
lea edx, [ebp - 0x218]
mov ecx, ebx
push edx
push esi
call fcn.00452270
mov esi, dword [ebp - 0x210]
movzx esi, byte [esi + 0x10]
add ebx, 0x10
mov byte [ebp - 0x224], 0
mov eax, dword [ebp - 0x14]
lea edi, [ebp - 0x220]
mov dword [ebp - 0x228], eax
lea edx, [ebp - 0x228]
mov ecx, ebx
push edx
push edi
call fcn.004534fc
mov eax, dword [ebp - 0x220]
movzx edx, byte [eax + 0x10]
test edx, edx
je 0x4510cd
mov edi, 1
jmp 0x4510cf
xor edi, edi
movzx eax, byte [ebp + 0xc]
test eax, eax
jne 0x4510da
or edi, 2
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x4510eb
mov ebx, esi
cmp ebx, 0x2e
je 0x451160
jmp 0x4510ed
mov ebx, esi
call fcn.00465c7c
test eax, eax
je 0x451130
cmp ebx, 0xa1
je 0x451126
cmp ebx, 0xa3
jne 0x451112
mov esi, 0x11
mov ebx, 0x11
jmp 0x451130
cmp ebx, 0xa5
jne 0x451130
mov esi, 0x12
mov ebx, 0x12
jmp 0x451130
mov esi, 0x10
mov ebx, 0x10
push 0
push ebx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push edi
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
je 0x4510ed
push 0x12
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
je 0x4510ed
call fcn.00465c90
test eax, eax
je 0x4510ed
call fcn.00465ca4
cmp eax, 6
jb 0x4511bf
call fcn.00466438
test eax, eax
je 0x4511bf
push 1
xor eax, eax
push eax
push eax
push 0x4c2538
push 0x4c2530
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp 0x4511dd
call fcn.00465ca4
cmp eax, 6
jb 0x4511d8
push 1
push 0x4c2540
call dword [sym.imp.KERNEL32.dll_WinExec]
jmp 0x4511dd
call fcn.004660c4
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x20
jb 0x450fc8
cmp eax, 0x7e
ja 0x452254
mov ebx, dword [0x4b45f0]
test ebx, ebx
je 0x4513e6
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x4513e6
mov dword [ebp - 0x184], 8
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x180], 0x4c246c
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x178], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x451273
lea eax, [ebp - 0x17c]
push eax
push dword [ebp - 0x180]
call fcn.0045763c
mov ebx, dword [0x4b45f0]
cmp ebx, 0xfe50
je 0x451d87
cmp ebx, 0xfe51
je 0x451c97
cmp ebx, 0xfe52
je 0x451bfd
cmp ebx, 0xfe53
je case.0x451c13.1
cmp ebx, 0xfe57
je 0x4512f8
cmp ebx, 0xfe5b
je case.0x45130a.66
jmp 0x451397
mov eax, dword [ebp - 0x14]
cmp eax, 0x41
je 0x451bf0
cmp eax, 0x4f
je 0x451be3
cmp eax, 0x61
je 0x4512f0
cmp eax, 0x6e
jne 0x4512e1
mov eax, 0xf1
mov dword [ebp - 0x14], eax
jmp 0x4512f8
cmp eax, 0x6f
jne 0x4512f8
mov eax, 0xf5
mov dword [ebp - 0x14], eax
jmp 0x4512f8
mov eax, 0xe3
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
lea eax, [eax - 0x41]
cmp eax, 0x38
ja case.0x45130a.66
mov eax, dword [eax*4 + 0x4981c0]
jmp eax
mov eax, 0xff
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xfc
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xf6
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xef
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xeb
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xe4
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xdc
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xd6
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xcf
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xcb
mov dword [ebp - 0x14], eax
jmp case.0x45130a.66
mov eax, 0xc4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0x43
jne 0x45138a
mov eax, 0xc7
mov dword [ebp - 0x14], eax
jmp 0x451397
cmp eax, 0x63
jne 0x451397
mov eax, 0xe7
mov dword [ebp - 0x14], eax
mov dword [0x4b45f0], 0
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x120], 8
mov dword [ebp - 0x11c], 0x4c2484
mov dword [ebp - 0x118], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x4513e6
lea eax, [ebp - 0x118]
push eax
push dword [ebp - 0x11c]
call fcn.0045763c
mov eax, dword [ebp - 0x14]
movsx edx, al
push edx
call dword [sym.imp.USER32.dll_VkKeyScanA]
mov dword [ebp - 0x50], 8
mov ecx, 0x4a3b98
movsx eax, ax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x4c], 0x4c2494
mov dword [ebp - 0x48], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x45142c
mov dword [ebp - 0x44], eax
lea edx, [ebp - 0x48]
push edx
push dword [ebp - 0x4c]
call fcn.0045763c
mov eax, dword [ebp - 0x44]
cmp eax, 0xffffffff
jne 0x45150d
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x451f8f
mov dword [ebp - 0xb4], 8
mov ecx, 0x4a3b98
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb0], 0x4c24a0
mov eax, dword [0x4a3ba4]
cmp eax, 8
jl 0x45147c
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xb0]
call fcn.0045763c
mov dword [ebp - 0xc0], 8
mov ecx, 0x4a3b98
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xbc], 0x4c24a8
mov eax, dword [0x4a3ba4]
cmp eax, 8
jl 0x4514b7
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xbc]
call fcn.0045763c
xor ecx, ecx
movzx edx, word [ecx*2 + 0x4a0100]
mov eax, dword [ebp - 0x14]
cmp eax, edx
je 0x451e53
inc ecx
movzx edx, word [ecx*2 + 0x4a0100]
cmp eax, edx
je 0x451e53
inc ecx
movzx edx, word [ecx*2 + 0x4a0100]
cmp eax, edx
je 0x451e53
inc ecx
movzx edx, word [ecx*2 + 0x4a0100]
cmp eax, edx
je 0x451e53
inc ecx
cmp ecx, 0x100
jl 0x4514b9
jmp 0x451e53
mov dword [ebp - 0x90], 0x11
movzx edx, al
mov ecx, 0
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x8c], ecx
mov byte [ebp - 0x88], cl
mov byte [ebp - 0x87], cl
mov dword [ebp - 4], 0
mov dword [ebp - 0x84], 0x12
mov edx, 0
mov dword [ebp - 0x80], edx
mov byte [ebp - 0x7c], dl
mov byte [ebp - 0x7b], dl
mov dword [ebp - 4], 1
mov dword [ebp - 0x78], 0x10
mov edx, 0
mov dword [ebp - 0x74], edx
mov byte [ebp - 0x70], dl
mov byte [ebp - 0x6f], dl
mov dword [ebp - 4], 2
mov dword [ebp - 0x6c], 0xa0
mov edx, 0
mov dword [ebp - 0x68], edx
mov byte [ebp - 0x64], dl
mov byte [ebp - 0x63], dl
mov dword [ebp - 4], 3
mov dword [ebp - 0x60], 0xa1
mov edx, 0
mov dword [ebp - 0x5c], edx
mov byte [ebp - 0x58], dl
mov byte [ebp - 0x57], dl
mov dword [ebp - 4], 4
movzx edx, byte [ebp + 0xc]
test edx, edx
je 0x45169b
shr eax, 8
movzx ebx, al
test bl, 2
jne 0x4521c5
test bl, 4
jne 0x45213c
test bl, 1
je 0x451654
push dword [ebp - 0x78]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x45169b
push 0
movzx esi, byte [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x194], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x190], 0x4c2408
mov dword [ebp - 0x18c], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x45164e
lea eax, [ebp - 0x18c]
push eax
push dword [ebp - 0x190]
call fcn.0045763c
mov byte [ebp - 0x70], 1
jmp 0x45169b
call fcn.00465c7c
test eax, eax
je 0x451673
push dword [ebp - 0x78]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x451fef
jmp 0x45169b
push dword [ebp - 0x6c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x4520cd
push dword [ebp - 0x60]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x45205e
mov dword [ebp - 0xa8], 9
mov esi, 0x4a3b98
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xac], esi
mov edx, dword [ebp - 0x40]
movzx ecx, byte [ebp + 0xc]
mov dword [ebp - 0xa4], 0x4c24e0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x94], ecx
mov ebx, dword [0x4a3ba4]
cmp ebx, 9
jl 0x4516fb
lea eax, [ebp - 0xa0]
mov ecx, esi
push eax
push dword [ebp - 0xa4]
call fcn.0045763c
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x451707
xor ebx, ebx
jmp 0x45170c
mov ebx, 2
push 0
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
mov edx, dword [ebp - 0x40]
push ebx
push eax
push edx
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 4], 3
movzx eax, byte [ebp - 0x58]
test eax, eax
jne 0x4517a9
movzx eax, byte [ebp - 0x57]
test eax, eax
je 0x45180f
push 0
movzx esi, byte [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x130], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x12c], 0x4c2408
mov dword [ebp - 0x128], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x45180f
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0x12c]
call fcn.0045763c
jmp 0x45180f
push 0
movzx esi, byte [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0xd0], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xcc], 0x4c2418
mov dword [ebp - 0xc8], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x45180f
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xcc]
call fcn.0045763c
mov dword [ebp - 4], 2
movzx eax, byte [ebp - 0x64]
test eax, eax
jne 0x45188f
movzx eax, byte [ebp - 0x63]
test eax, eax
je 0x4518f5
push 0
movzx esi, byte [ebp - 0x6c]
mov ebx, dword [ebp - 0x68]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x140], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x13c], 0x4c2408
mov dword [ebp - 0x138], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x4518f5
lea eax, [ebp - 0x138]
push eax
push dword [ebp - 0x13c]
call fcn.0045763c
jmp 0x4518f5
push 0
movzx esi, byte [ebp - 0x6c]
mov ebx, dword [ebp - 0x68]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0xe0], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xdc], 0x4c2418
mov dword [ebp - 0xd8], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x4518f5
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call fcn.0045763c
mov dword [ebp - 4], 1
movzx eax, byte [ebp - 0x70]
test eax, eax
jne 0x451975
movzx eax, byte [ebp - 0x6f]
test eax, eax
je 0x4519db
push 0
movzx esi, byte [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x150], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x14c], 0x4c2408
mov dword [ebp - 0x148], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x4519db
lea eax, [ebp - 0x148]
push eax
push dword [ebp - 0x14c]
call fcn.0045763c
jmp 0x4519db
push 0
movzx esi, byte [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0xf0], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xec], 0x4c2418
mov dword [ebp - 0xe8], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x4519db
lea eax, [ebp - 0xe8]
push eax
push dword [ebp - 0xec]
call fcn.0045763c
mov dword [ebp - 4], 0
movzx eax, byte [ebp - 0x7c]
test eax, eax
jne 0x451a65
movzx eax, byte [ebp - 0x7b]
test eax, eax
je 0x451ad1
push 0
movzx esi, byte [ebp - 0x84]
mov ebx, dword [ebp - 0x80]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x160], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x15c], 0x4c2408
mov dword [ebp - 0x158], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x451ad1
lea eax, [ebp - 0x158]
push eax
push dword [ebp - 0x15c]
call fcn.0045763c
jmp 0x451ad1
push 0
movzx esi, byte [ebp - 0x84]
mov ebx, dword [ebp - 0x80]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x100], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xfc], 0x4c2418
mov dword [ebp - 0xf8], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x451ad1
lea eax, [ebp - 0xf8]
push eax
push dword [ebp - 0xfc]
call fcn.0045763c
mov dword [ebp - 4], 0xffffffff
movzx eax, byte [ebp - 0x88]
test eax, eax
jne 0x451b6b
movzx eax, byte [ebp - 0x87]
test eax, eax
je 0x451147
push 0
movzx esi, byte [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x170], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x16c], 0x4c2408
mov dword [ebp - 0x168], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x451147
lea eax, [ebp - 0x168]
push eax
push dword [ebp - 0x16c]
call fcn.0045763c
jmp 0x451147
push 0
movzx esi, byte [ebp - 0x90]
mov ebx, dword [ebp - 0x8c]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x110], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x10c], 0x4c2418
mov dword [ebp - 0x108], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x451147
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x10c]
call fcn.0045763c
jmp 0x451147
mov eax, 0xd5
mov dword [ebp - 0x14], eax
jmp 0x4512f8
mov eax, 0xd1
mov dword [ebp - 0x14], eax
jmp 0x4512f8
mov eax, dword [ebp - 0x14]
lea edx, [eax - 0x41]
cmp edx, 0x34
ja case.0x451c13.1
mov eax, dword [edx*4 + 0x4982c0]
jmp eax
mov eax, 0xfb
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xf4
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xee
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xea
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xe2
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xdb
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xd4
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xce
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xca
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, 0xc2
mov dword [ebp - 0x14], eax
jmp case.0x451c13.1
mov eax, dword [ebp - 0x14]
lea edx, [eax - 0x41]
cmp edx, 0x38
ja case.0x451cad.1
mov eax, dword [edx*4 + 0x4983a0]
jmp eax
mov eax, 0xfd
mov edx, 0xbc
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xfa
mov edx, 0xb9
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xf3
mov edx, 0xb2
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xed
mov edx, 0xac
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xe9
mov edx, 0xa8
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xe1
mov edx, 0xa0
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xdd
mov edx, 0x9c
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xda
mov edx, 0x99
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xd3
mov edx, 0x92
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xcd
mov edx, 0x8c
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xc9
mov edx, 0x88
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, 0xc1
mov edx, 0x80
mov dword [ebp - 0x14], eax
jmp case.0x451cad.1
mov eax, dword [ebp - 0x14]
lea edx, [eax - 0x41]
cmp edx, 0x34
ja case.0x451d9d.66
mov eax, dword [edx*4 + 0x4984a0]
jmp eax
mov eax, 0xf9
mov edx, 0xb8
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xf2
mov edx, 0xb1
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xec
mov edx, 0xab
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xe8
mov edx, 0xa7
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xe0
mov edx, 0x9f
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xd9
mov edx, 0x98
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xd2
mov edx, 0x91
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xcc
mov edx, 0x8b
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xc8
mov edx, 0x87
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0xc0
mov edx, 0x7f
mov dword [ebp - 0x14], eax
jmp case.0x451d9d.66
mov eax, 0x51eb851f
mov esi, ecx
sar esi, 0x1f
imul ecx
sar edx, 5
sub edx, esi
lea edi, [edx + edx]
add edi, edi
sub edi, edx
lea eax, [edx + edi*8]
add eax, eax
add eax, eax
sub ecx, eax
movzx ebx, dl
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, ecx
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx]
add eax, eax
add eax, edx
add eax, eax
sub ecx, eax
movzx esi, dl
movzx eax, cl
cmp ecx, 0xff
mov dword [ebp - 0x40], eax
je 0x451fa8
push 0
push 0x12
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx eax, al
xor ecx, ecx
push ecx
push ecx
push eax
push 0x12
call dword [sym.imp.USER32.dll_keybd_event]
push 0
add ebx, 0x60
push ebx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
movzx edi, bl
movzx eax, al
xor ecx, ecx
push ecx
push ecx
push eax
push edi
call dword [sym.imp.USER32.dll_keybd_event]
push 0
push ebx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push 2
push eax
push edi
call dword [sym.imp.USER32.dll_keybd_event]
push 0
add esi, 0x60
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ebx, esi
and ebx, 0xff
movzx eax, al
xor ecx, ecx
push ecx
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_keybd_event]
push 0
push esi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push 2
push eax
push ebx
call dword [sym.imp.USER32.dll_keybd_event]
push 0
mov eax, dword [ebp - 0x40]
add eax, 0x60
mov dword [ebp - 0x40], eax
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ebx, dword [ebp - 0x40]
movzx ebx, bl
movzx eax, al
xor edx, edx
push edx
push edx
push eax
push ebx
call dword [sym.imp.USER32.dll_keybd_event]
push 0
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push 2
push eax
push ebx
call dword [sym.imp.USER32.dll_keybd_event]
push 0
push 0x12
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push 2
push eax
push 0x12
call dword [sym.imp.USER32.dll_keybd_event]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
mov dword [ebp - 0x1a4], 8
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1a8], ecx
mov dword [ebp - 0x1a0], 0x4c24b4
mov dword [ebp - 0x19c], eax
mov edx, dword [0x4a3ba4]
cmp edx, 8
jl 0x451f8f
lea eax, [ebp - 0x19c]
push eax
push dword [ebp - 0x1a0]
call fcn.0045763c
jmp 0x451f8f
push 0
movzx esi, byte [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x1d4], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1d0], 0x4c2418
mov dword [ebp - 0x1cc], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x452055
lea eax, [ebp - 0x1cc]
push eax
push dword [ebp - 0x1d0]
call fcn.0045763c
mov byte [ebp - 0x6f], 1
jmp 0x45169b
push 0
movzx esi, byte [ebp - 0x60]
mov ebx, dword [ebp - 0x5c]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x1c4], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1c0], 0x4c2418
mov dword [ebp - 0x1bc], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x4520c4
lea eax, [ebp - 0x1bc]
push eax
push dword [ebp - 0x1c0]
call fcn.0045763c
mov byte [ebp - 0x57], 1
jmp 0x45169b
push 0
movzx esi, byte [ebp - 0x6c]
mov ebx, dword [ebp - 0x68]
push esi
or ebx, 2
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push ebx
push eax
push esi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x1b4], 9
mov ecx, 0x4a3b98
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x1b0], 0x4c2418
mov dword [ebp - 0x1ac], eax
mov edx, dword [0x4a3ba4]
cmp edx, 9
jl 0x452133
lea eax, [ebp - 0x1ac]
push eax
push dword [ebp - 0x1b0]
call fcn.0045763c
mov byte [ebp - 0x63], 1
jmp 0x451687
push dword [ebp - 0x84]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x4515d2
push 0
movzx edi, byte [ebp - 0x84]
mov esi, dword [ebp - 0x80]
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x1f4], 9
mov ecx, 0x4a3b98
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x1f8], ecx
mov dword [ebp - 0x1f0], 0x4c2408
mov dword [ebp - 0x1ec], edx
mov esi, dword [0x4a3ba4]
cmp esi, 9
jl 0x4521bc
lea edx, [ebp - 0x1ec]
push edx
push dword [ebp - 0x1f0]
call fcn.0045763c
mov byte [ebp - 0x7c], 1
jmp 0x4515d2
push dword [ebp - 0x90]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test eax, 0x8000
jne 0x4515c9
push 0
movzx edi, byte [ebp - 0x90]
mov esi, dword [ebp - 0x8c]
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push 0
movzx eax, al
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_keybd_event]
mov dword [ebp - 0x1e4], 9
mov ecx, 0x4a3b98
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x1e8], ecx
mov dword [ebp - 0x1e0], 0x4c2408
mov dword [ebp - 0x1dc], edx
mov esi, dword [0x4a3ba4]
cmp esi, 9
jl 0x452248
lea edx, [ebp - 0x1dc]
push edx
push dword [ebp - 0x1e0]
call fcn.0045763c
mov byte [ebp - 0x88], 1
jmp 0x4515c9
cmp eax, 0xa0
jb 0x450fc8
cmp eax, 0xff
jbe 0x451208
jmp 0x450fc8