Function at 0x46c360
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x46c369
add esp, 0xffffffd0
mov eax, dword [ebp - 4]
mov eax, 0x581b8f
push ebx
push esi
push edi
mov esi, dword [ebp + 0xc]
call fcn.004d57f0
mov dword [ebp - 0x28], 0xffffffff
mov word [ebp - 0x14], 8
mov word [ebp - 0x14], 8
mov dword [ebp - 0x30], 1
xor ebx, ebx
xor edi, edi
push esi
push edi
lea edi, [ebp - 0x2034]
mov esi, 0x57eb8f
mov ecx, 0x400
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea edi, [ebp - 0x3034]
mov esi, 0x57fb8f
mov ecx, 0x400
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea edi, [ebp - 0x4034]
mov esi, 0x580b8f
mov ecx, 0x400
rep movsd dword es:[edi], dword [esi]
test byte [0x528c3d], 4
pop edi
pop esi
je 0x46c405
push esi
push 0x5f044d
push 0x528c40
call fcn.004541dc
add esp, 0xc
push esi
call fcn.0045eb78
pop ecx
mov dword [ebp - 0x34], eax
push 5
mov eax, dword [ebp - 0x34]
push eax
call fcn.0045edac
add esp, 8
test al, al
je 0x46c44c
mov edx, dword [ebp + 0x10]
push edx
push esi
mov ecx, dword [ebp + 8]
push ecx
push 0x249
push 5
mov eax, dword [ebp - 0x34]
push eax
call fcn.0045ee08
add esp, 0x18
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x46dc28
push esi
call fcn.0045ec9c
pop ecx
mov esi, eax
mov cl, byte [esi]
test cl, cl
je 0x46dbd5
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x4034]
push eax
lea edx, [ebp - 0x3034]
push edx
lea ecx, [ebp - 0x2034]
push ecx
push 0x1000
push esi
call fcn.0046ab68
add esp, 0x24
movsx eax, byte [ebp + ebx - 0x2034]
cmp eax, 0x5e
jne case.0x46c4b6.43
inc ebx
movsx edx, byte [ebp + ebx - 0x2034]
add edx, 0xffffffd5
cmp edx, 0x4e
ja case.0x46c4b6.43
mov dl, byte [edx + 0x46c4bd]
jmp dword [edx*4 + 0x46c50c]
xor edi, edi
mov dword [ebp - 0x2c], 0xffffffff
movsx eax, byte [ebp + ebx - 0x2034]
cmp eax, 0x2b
jne 0x46c55e
mov dword [ebp - 0x2c], 1
inc ebx
movsx edx, byte [ebp + ebx - 0x2034]
cmp edx, 0x2d
jne 0x46c571
xor ecx, ecx
inc ebx
mov dword [ebp - 0x2c], ecx
movsx eax, byte [ebp + ebx - 0x2034]
cmp eax, 0x76
je 0x46c583
cmp eax, 0x56
jne 0x46c584
inc ebx
movsx eax, byte [ebp + ebx - 0x2034]
cmp eax, 0x6b
je 0x46c596
cmp eax, 0x4b
jne 0x46c597
inc ebx
movsx edx, byte [ebp + ebx - 0x2034]
cmp edx, 0x5f
jne 0x46c5a5
inc ebx
movsx ecx, byte [ebp + ebx - 0x2034]
test byte [ecx*2 + 0x604bb6], 4
je 0x46c5de
movsx eax, byte [ebp + ebx - 0x2034]
test byte [eax*2 + 0x604bb6], 4
je 0x46cf37
mov edx, edi
add edx, edx
lea edx, [edx + edx*4]
add eax, edx
add eax, 0xffffffd0
inc ebx
mov edi, eax
jmp 0x46c5b7
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0455
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f0458
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c64c
mov edi, 0x26
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f045b
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0467
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f046c
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c6b9
mov edi, 0x28
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0471
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f047d
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f0482
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c726
mov edi, 0x25
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0487
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0493
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
push 0x5f0499
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c794
mov edi, 0x27
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f049f
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f04ab
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f04b2
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c803
mov edi, 0x1b
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f04b9
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f04c5
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f04cc
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c872
mov edi, 0x2d
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f04d3
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f04df
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f04e6
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c8e1
mov edi, 0x2e
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f04ed
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f04f9
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f04fc
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c94f
mov edi, 0x70
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f04ff
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f050b
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f050e
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46c9bd
mov edi, 0x71
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0511
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f051d
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f0521
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ca29
mov edi, 0x23
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0525
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0531
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f0536
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ca96
mov edi, 0x24
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f053b
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0547
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f054e
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cb05
mov edi, 0xd
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0555
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0561
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
push 0x5f0567
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cb73
mov edi, 0xc
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f056d
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0579
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f0581
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cbe0
mov edi, 0x14
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0589
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0595
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0x5f059a
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cc4d
mov edi, 0x12
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f059f
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f05ab
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f05af
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ccb9
mov edi, 0x12
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f05b3
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f05bf
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f05c7
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cd26
mov edi, 0x11
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f05cf
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f05db
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
push 0x5f05e1
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cd94
mov edi, 0x10
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f05e7
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f05f3
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f05f7
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ce00
mov edi, 0x5b
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f05fb
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f0607
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
push 0x5f060d
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ce6e
mov edi, 0x5d
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0613
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f061f
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f0627
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46ced4
mov edi, 0x5d
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f062f
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46cf37
push edi
lea edi, [ebp - 0x1034]
mov eax, edi
mov esi, 0x5f063b
movsd dword es:[edi], dword [esi]
pop edi
push 0x5f063f
call fcn.004d2f1c
pop ecx
mov esi, eax
push esi
lea eax, [ebp - 0x1034]
push eax
lea edx, [ebp - 0x2034]
add edx, ebx
push edx
call fcn.004d3138
add esp, 0xc
test eax, eax
jne 0x46cf37
mov edi, 9
add ebx, esi
test byte [0x528c3d], 4
je 0x46cf37
lea eax, [ebp - 0x1034]
push eax
push 0x5f0643
push 0x528c40
call fcn.004541dc
add esp, 0xc
push edi
push 0x5f064f
push 0x400
call fcn.004542bc
add esp, 0xc
mov edx, dword [ebp - 0x2c]
inc edx
je 0x46cf56
mov ecx, dword [ebp - 0x2c]
dec ecx
jne 0x46cf74
push 0
push 0
push 0
push edi
call sub.USER32.dll_MapVirtualKeyA
push eax
mov eax, edi
push eax
call sub.USER32.dll_keybd_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
mov ecx, dword [ebp - 0x2c]
inc ecx
je 0x46cf85
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x46c48a
push 0
push 2
push 0
push edi
call sub.USER32.dll_MapVirtualKeyA
push eax
mov edx, edi
push edx
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
test byte [0x528c3d], 4
je case.0x46c4b6.43
push 0x5f0669
push 0x5f065c
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp case.0x46c4b6.43
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x31
jne 0x46d041
inc ebx
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x10
call sub.USER32.dll_keybd_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x10
push 0x53
push 0x5f066b
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea eax, [ebp - 0x1034]
push eax
push 0x5f0673
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x30
jne 0x46d0b1
inc ebx
push 0
push 2
push 0
push 0x10
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x10
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x10
push 0x53
push 0x5f067d
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea edx, [ebp - 0x1034]
push edx
push 0x5f0685
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
inc ebx
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x10
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46d0d1
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 2
push 0
push 0x10
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x10
call sub.USER32.dll_keybd_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 0x10
push 0x53
push 0x5f068f
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f0695
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x31
jne 0x46d1ab
inc ebx
push 0
push 0
push 0
push 0x11
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x11
call sub.USER32.dll_keybd_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x11
push 0x43
push 0x5f069f
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea eax, [ebp - 0x1034]
push eax
push 0x5f06a7
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x30
jne 0x46d21b
inc ebx
push 0
push 2
push 0
push 0x11
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x11
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x11
push 0x43
push 0x5f06b1
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea edx, [ebp - 0x1034]
push edx
push 0x5f06b9
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
inc ebx
push 0
push 0
push 0
push 0x11
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x11
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46d23b
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 2
push 0
push 0x11
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x11
call sub.USER32.dll_keybd_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 0x11
push 0x43
push 0x5f06c3
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f06c9
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x31
jne 0x46d315
inc ebx
push 0
push 0
push 0
push 0x12
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x12
call sub.USER32.dll_keybd_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x12
push 0x41
push 0x5f06d3
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea eax, [ebp - 0x1034]
push eax
push 0x5f06db
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x30
jne 0x46d385
inc ebx
push 0
push 2
push 0
push 0x12
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x12
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x12
push 0x41
push 0x5f06e5
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea edx, [ebp - 0x1034]
push edx
push 0x5f06ed
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
inc ebx
push 0
push 0
push 0
push 0x12
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x12
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46d3a5
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 2
push 0
push 0x12
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x12
call sub.USER32.dll_keybd_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 0x12
push 0x41
push 0x5f06f7
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f06fd
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x31
jne 0x46d47f
inc ebx
push 0
push 0
push 0
push 0x5b
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x5b
call sub.USER32.dll_keybd_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x5b
push 0x57
push 0x5f0707
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea eax, [ebp - 0x1034]
push eax
push 0x5f070f
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x30
jne 0x46d4ef
inc ebx
push 0
push 2
push 0
push 0x5b
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x5b
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
inc ebx
push 0x5b
push 0x57
push 0x5f0719
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea edx, [ebp - 0x1034]
push edx
push 0x5f0721
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
inc ebx
push 0
push 0
push 0
push 0x5b
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x5b
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46d50f
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 2
push 0
push 0x5b
call sub.USER32.dll_MapVirtualKeyA
push eax
push 0x5b
call sub.USER32.dll_keybd_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 0x5b
push 0x57
push 0x5f072b
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46c48a
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f0731
push 0x528c40
call fcn.004541dc
add esp, 0xc
jmp 0x46c48a
push 0
push 0
call fcn.00401400
add esp, 8
inc ebx
xor edi, edi
lea eax, [ebp + ebx - 0x2034]
movsx edx, byte [eax]
test byte [edx*2 + 0x604bb6], 4
je 0x46d5ae
mov ecx, edi
inc ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
inc eax
mov edi, edx
jmp 0x46d58f
mov esi, edi
push esi
push 0x5f073b
push 0x400
call fcn.004542bc
add esp, 0xc
push esi
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
inc ebx
xor eax, eax
mov dword [ebp - 0x30], eax
lea eax, [ebp + ebx - 0x2034]
movsx edx, byte [eax]
test byte [edx*2 + 0x604bb6], 4
je 0x46d5fc
mov ecx, dword [ebp - 0x30]
inc ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
inc eax
mov dword [ebp - 0x30], edx
jmp 0x46d5db
mov eax, dword [ebp - 0x30]
push eax
push 0x5f0748
push 0x400
call fcn.004542bc
add esp, 0xc
push edi
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
inc ebx
xor edi, edi
lea eax, [ebp + ebx - 0x2034]
movsx edx, byte [eax]
test byte [edx*2 + 0x604bb6], 4
je 0x46d646
mov ecx, edi
inc ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
inc eax
mov edi, edx
jmp 0x46d627
xor eax, eax
mov dword [ebp - 0x2c], eax
movsx eax, byte [ebp + ebx - 0x2034]
cmp eax, 0x3a
je 0x46d680
cmp eax, 0x3b
je 0x46d680
cmp eax, 0x2d
je 0x46d680
cmp eax, 0x23
je 0x46d680
cmp eax, 0x78
je 0x46d680
cmp eax, 0x58
je 0x46d680
cmp eax, 0x2e
je 0x46d680
cmp eax, 0x5f
je 0x46d680
cmp eax, 0x2a
jne 0x46d6a9
inc ebx
lea eax, [ebp + ebx - 0x2034]
movsx edx, byte [eax]
test byte [edx*2 + 0x604bb6], 4
je 0x46d6a9
mov ecx, dword [ebp - 0x2c]
inc ebx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
inc eax
mov dword [ebp - 0x2c], edx
jmp 0x46d688
mov eax, dword [ebp - 0x2c]
push eax
push edi
push 0x5f0757
push 0x400
call fcn.00454300
add esp, 0x10
push 0
call sub.USER32.dll_GetSystemMetrics
mov esi, eax
mov eax, 0xffff
cdq
idiv esi
imul edi
mov edi, eax
push 1
call sub.USER32.dll_GetSystemMetrics
mov esi, eax
mov eax, 0xffff
cdq
idiv esi
imul dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
push ecx
mov esi, edi
push esi
push 0x5f0768
push 0x400
call fcn.00454300
add esp, 0x10
push 0
push 0
mov eax, dword [ebp - 0x2c]
push eax
push esi
push 0x8001
call sub.USER32.dll_mouse_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
movsx ecx, byte [ebp + ebx - 0x2033]
cmp ecx, 0x31
jne 0x46d78c
inc ebx
push 0
push 0
push 0
push 0
push 2
call sub.USER32.dll_mouse_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 2
push 0x4c
push 0x5f0778
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46d786
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f077e
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x30
jne 0x46d7f2
inc ebx
push 0
push 0
push 0
push 0
push 4
call sub.USER32.dll_mouse_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
push 4
push 0x4c
push 0x5f078e
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46d7ec
lea eax, [ebp - 0x1034]
push eax
push 0x5f0794
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x32
jne 0x46d8a0
inc ebx
push 0
push 0
push 0
push 0
push 2
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 4
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 2
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 4
call sub.USER32.dll_mouse_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
push 4
push 2
push 0x4c
push 0x5f07a2
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x14
test byte [0x528c3d], 4
je 0x46d89a
lea edx, [ebp - 0x1034]
push edx
push 0x5f07af
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
inc ebx
push 4
push 2
push 0x4c
push 0x5f07bd
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x14
test byte [0x528c3d], 4
je 0x46d8dd
lea eax, [ebp - 0x1034]
push eax
push 0x5f07ca
push 0x528c40
call fcn.004541dc
add esp, 0xc
push 0
push 0
push 0
push 0
push 2
call sub.USER32.dll_mouse_event
mov edx, dword [ebp - 0x30]
test edx, edx
jns 0x46d8f6
add edx, 3
sar edx, 2
push edx
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 4
call sub.USER32.dll_mouse_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
movsx eax, byte [ebp + ebx - 0x2033]
cmp eax, 0x31
jne 0x46d982
inc ebx
push 0
push 0
push 0
push 0
push 8
call sub.USER32.dll_mouse_event
mov edx, dword [ebp - 0x30]
push edx
call sub.KERNEL32.dll_Sleep
push 8
push 0x52
push 0x5f07d8
lea ecx, [ebp - 0x1034]
push ecx
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46d97c
lea eax, [ebp - 0x1034]
push eax
push 0x5f07de
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
movsx edx, byte [ebp + ebx - 0x2033]
cmp edx, 0x30
jne 0x46d9e8
inc ebx
push 0
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_mouse_event
mov ecx, dword [ebp - 0x30]
push ecx
call sub.KERNEL32.dll_Sleep
push 0x10
push 0x52
push 0x5f07ee
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x10
test byte [0x528c3d], 4
je 0x46d9e2
lea edx, [ebp - 0x1034]
push edx
push 0x5f07f4
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
movsx ecx, byte [ebp + ebx - 0x2033]
cmp ecx, 0x32
jne 0x46da96
inc ebx
push 0
push 0
push 0
push 0
push 8
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 8
call sub.USER32.dll_mouse_event
push 1
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_mouse_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
push 0x10
push 8
push 0x52
push 0x5f0802
lea edx, [ebp - 0x1034]
push edx
call fcn.004d75f8
add esp, 0x14
test byte [0x528c3d], 4
je 0x46da90
lea ecx, [ebp - 0x1034]
push ecx
push 0x5f080f
push 0x528c40
call fcn.004541dc
add esp, 0xc
inc ebx
jmp 0x46c48a
inc ebx
push 0x10
push 8
push 0x52
push 0x5f081d
lea eax, [ebp - 0x1034]
push eax
call fcn.004d75f8
add esp, 0x14
test byte [0x528c3d], 4
je 0x46dad3
lea edx, [ebp - 0x1034]
push edx
push 0x5f082a
push 0x528c40
call fcn.004541dc
add esp, 0xc
push 0
push 0
push 0
push 0
push 8
call sub.USER32.dll_mouse_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46daec
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 0
push 0
push 0
push 0x10
call sub.USER32.dll_mouse_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
jmp 0x46c48a
mov al, byte [ebp + ebx - 0x2034]
test al, al
je 0x46dbd5
mov byte [ebp - 0x1034], al
mov byte [ebp - 0x1033], 0
test byte [0x528c3d], 4
je 0x46db50
lea edx, [ebp - 0x1034]
push edx
push 0x5f0838
push 0x528c40
call fcn.004541dc
add esp, 0xc
push 0
push 0
push 0
mov cl, byte [ebp + ebx - 0x2034]
push ecx
call sub.USER32.dll_VkKeyScanA
movsx eax, ax
push eax
call sub.USER32.dll_MapVirtualKeyA
push eax
mov dl, byte [ebp + ebx - 0x2034]
push edx
call sub.USER32.dll_VkKeyScanA
push eax
call sub.USER32.dll_keybd_event
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jns 0x46db8a
add ecx, 3
sar ecx, 2
push ecx
call sub.KERNEL32.dll_Sleep
push 0
push 2
push 0
mov al, byte [ebp + ebx - 0x2034]
push eax
call sub.USER32.dll_VkKeyScanA
movsx edx, ax
push edx
call sub.USER32.dll_MapVirtualKeyA
push eax
mov cl, byte [ebp + ebx - 0x2034]
push ecx
call sub.USER32.dll_VkKeyScanA
push eax
call sub.USER32.dll_keybd_event
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.dll_Sleep
inc dword [ebp - 0x28]
inc ebx
jmp 0x46c48a
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x46dbe3
mov byte [ebp - 0x1034], 0
mov cl, byte [0x52e3ff]
test cl, cl
je 0x46dbf4
add dword [ebp - 0x28], 0x3b9aca00
mov word [ebp - 0x14], 0
jmp 0x46dc1b
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
mov esp, ebp
mov edi, dword [ebp - 0x4040]
mov esi, dword [ebp - 0x403c]
mov ebx, dword [ebp - 0x4038]
pop ebp
ret