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

Disassembly:
mov eax, 0x570da8
call fcn.00524444
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x28], ebx
cmp dword [esi + 0x298], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x2c], ebx
mov dword [esi + 0x294], ebx
je 0x4afedd
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004bfcae
test eax, eax
jne 0x4b089e
mov eax, dword [0x62ae3c]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp dword [eax + 0x1930], ebx
jne 0x4aff0a
cmp dword [esi + 0x204], ebx
jne 0x4aff0a
push 0x10
call edi
test ah, 0x80
jne 0x4aff0a
push ebx
push dword [esi + 0x1c]
call fcn.0044a219
cmp dword [ebp + 8], 0x24
je 0x4aff1a
cmp dword [ebp + 8], 0x23
jne 0x4affab
cmp dword [esi + 0x1c4], ebx
jne 0x4affab
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x4aff46
push ebx
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004c0909
push 0x10
call edi
test ah, 0x80
jne 0x4aff5a
cmp dword [esi + 0x214], ebx
mov dword [ebp - 0x20], ebx
je 0x4aff61
mov dword [ebp - 0x20], 1
push 0x11
call edi
and eax, 0x8000
mov dword [ebp - 0x30], eax
je 0x4affab
cmp dword [ebp + 8], 0x24
jne 0x4aff90
cmp dword [ebp - 0x20], ebx
mov ecx, esi
je 0x4aff86
call fcn.004b4929
jmp 0x4b089e
call fcn.004b4880
jmp 0x4b089e
cmp dword [ebp - 0x20], ebx
mov ecx, esi
je 0x4affa1
call fcn.004b4acc
jmp 0x4b089e
call fcn.004b4782
jmp 0x4b089e
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x1c]
call fcn.00463bb0
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
cmp dword [esi + 0x20c], ebx
mov dword [ebp - 0x30], eax
je 0x4affdc
mov eax, dword [ebp - 0x14]
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov edi, 0x622c94
cmp eax, 0x27
je 0x4afffd
cmp eax, 0x25
je 0x4afffd
cmp eax, 0x22
je 0x4afffd
cmp eax, 0x24
je 0x4afffd
cmp eax, 0x23
jne 0x4b006e
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
jne 0x4b0014
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b7b3c
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov edx, eax
mov dword [ebp - 0x18], ebx
and edx, ecx
cmp edx, 0xffffffff
je 0x4b0037
push ebx
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004c0909
mov eax, dword [0x62ae3c]
add eax, 0x1864
cmp dword [eax], ebx
je 0x4b006b
push edi
lea ecx, [ebp - 0x20]
mov dword [eax], ebx
call fcn.0053ebbd
mov ecx, dword [0x62ae3c]
push eax
mov dword [ebp - 4], ebx
call fcn.004981c1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.0053eb4f
mov eax, dword [ebp + 8]
cmp eax, 0x28
jne 0x4b010b
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x4b0097
push ebx
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004c0909
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jne 0x4b00ae
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b7b3c
push dword [esi + 0x1c]
call fcn.00464eae
push dword [ebp - 0x10]
mov ecx, esi
call fcn.004b9218
mov eax, dword [0x62ae3c]
mov dword [ebp - 0x28], 1
add eax, 0x1864
mov dword [ebp - 0x18], ebx
cmp dword [eax], ebx
je 0x4b0298
push edi
lea ecx, [ebp - 0x20]
mov dword [eax], ebx
call fcn.0053ebbd
mov ecx, dword [0x62ae3c]
push eax
mov dword [ebp - 4], 1
call fcn.004981c1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.0053eb4f
jmp 0x4b0298
cmp eax, 0x26
jne 0x4b01a4
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x4b0134
push ebx
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004c0909
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jne 0x4b014b
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b7b3c
push dword [esi + 0x1c]
call fcn.00464eae
push dword [ebp - 0x14]
mov ecx, esi
push eax
call fcn.004b92ae
mov eax, dword [0x62ae3c]
mov dword [ebp - 0x28], 1
add eax, 0x1864
mov dword [ebp - 0x18], ebx
cmp dword [eax], ebx
je 0x4b0298
push edi
lea ecx, [ebp - 0x20]
mov dword [eax], ebx
call fcn.0053ebbd
mov ecx, dword [0x62ae3c]
push eax
mov dword [ebp - 4], 2
call fcn.004981c1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
jmp 0x4b0101
cmp eax, 0x21
jne 0x4b0267
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x4b01cd
push ebx
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004c0909
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jne 0x4b01e4
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b7b3c
mov ecx, dword [esi + 0xf0]
lea eax, [esi + 0xf0]
or ecx, dword [eax + 4]
je 0x4b022c
cmp dword [esi + 0x1f4], ebx
je 0x4b022c
push dword [esi + 0x1c]
call fcn.00464eae
mov ecx, dword [esi + 0x1c8]
lea ecx, [ecx + ecx + 2]
cmp eax, ecx
jge 0x4b022c
cmp dword [ebp - 0x14], ebx
je 0x4b022c
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x68]
push eax
push ebx
push 2
mov ecx, esi
call fcn.004ad4cd
mov eax, dword [0x62ae3c]
mov dword [ebp - 0x18], ebx
add eax, 0x1864
cmp dword [eax], ebx
je 0x4b0298
push edi
lea ecx, [ebp - 0x20]
mov dword [eax], ebx
call fcn.0053ebbd
mov ecx, dword [0x62ae3c]
push eax
mov dword [ebp - 4], 3
call fcn.004981c1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
jmp 0x4b0101
cmp dword [esi + 0x1f4], ebx
je 0x4b0298
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x14], ecx
je 0x4b028f
cmp eax, 0x22
je 0x4b028f
cmp eax, 0x27
je 0x4b028f
cmp eax, 0x25
je 0x4b028f
cmp eax, 0x10
jne 0x4b089e
cmp eax, 0x2e
je 0x4b089e
mov eax, dword [0x62ae3c]
cmp dword [eax + 0x193c], ebx
je 0x4b02d3
push 2
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
test eax, eax
je 0x4b02ba
cmp dword [ebp + 8], 8
jne 0x4b02d3
cmp dword [esi + 0x204], ebx
jne 0x4b02d3
push dword [ebp + 0x10]
mov ecx, dword [0x62ae3c]
push dword [ebp + 8]
call fcn.00484131
mov ecx, esi
call fcn.004b7d99
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
je 0x4b030d
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x1c]
call fcn.00463bb0
cmp dword [esi + 0x20c], ebx
je 0x4b030d
mov eax, dword [ebp - 0x14]
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, eax
mov dword [ebp - 0x10], eax
mov ecx, dword [esi + 0x110]
mov eax, dword [esi + 0x114]
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x4b0352
cmp dword [esi + 0x1f4], ebx
je 0x4b0339
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b5b18
mov eax, dword [ebp - 0x14]
mov ebx, dword [esi + 0xf0]
cdq
add ebx, eax
mov eax, dword [esi + 0xf4]
mov dword [ebp - 0x24], ebx
adc eax, edx
jmp 0x4b0357
mov ebx, ecx
mov dword [ebp - 0x24], ebx
mov ecx, dword [esi + 0x148]
mov dword [ebp - 0x20], eax
and ecx, dword [esi + 0x14c]
cmp ecx, 0xffffffff
jne 0x4b037e
mov dword [esi + 0x148], ebx
mov dword [esi + 0x14c], eax
mov dword [ebp - 0x2c], 1
cmp dword [ebp + 8], 0x2e
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
jne 0x4b04cc
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
je 0x4b040b
mov ecx, dword [ebp - 0x20]
cmp dword [esi + 0x288], 0
mov dword [esi + 0x2a8], ebx
mov dword [esi + 0x2ac], ecx
je 0x4b03f7
push 0
push eax
push 0xc9
push dword [esi + 0x1c]
call edi
push 0
mov dword [ebp + 0x10], eax
push dword [ebp - 0x10]
push 0xc9
push dword [esi + 0x1c]
call edi
cmp dword [ebp + 0x10], eax
je 0x4b03f7
push dword [ebp + 0xc]
mov dword [esi + 0x294], 1
push 0x2e
push 0x102
push dword [esi + 0x1c]
call edi
and dword [esi + 0x294], 0
jmp 0x4b04d3
push dword [ebp + 0xc]
push 8
push 0x102
push dword [esi + 0x1c]
call edi
jmp 0x4b04d3
mov eax, dword [esi + 0x3c]
cmp dword [eax + 0x498], 0
jne 0x4b089e
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004b7b3c
mov eax, dword [ebp - 0x20]
push 0
push 0
push 0x2e
push dword [ebp + 0xc]
mov dword [esi + 0x2a8], ebx
mov ecx, esi
mov dword [esi + 0x2ac], eax
push 2
push eax
push ebx
call fcn.0050cae7
mov eax, dword [esi + 0x3c]
and dword [ebp - 0x28], 0
mov dword [ebp - 0x1c], 1
mov byte [ebp + 0xf], 0xa
mov eax, dword [eax + 0x164]
test eax, eax
jne 0x4b0488
lea eax, [ebp + 0x12]
push eax
push 0
push dword [esi + 0x1c]
call fcn.00463959
cmp eax, 1
jne 0x4b04b4
cmp byte [ebp + 0x12], 0xd
je 0x4b04b0
cmp byte [ebp + 0x12], 0xa
jmp 0x4b04ae
cmp eax, 2
jne 0x4b0491
mov byte [ebp + 0xf], 0xd
lea eax, [ebp + 0x12]
push eax
push 0
push dword [esi + 0x1c]
call fcn.00463959
cmp eax, 1
jne 0x4b04b4
movzx eax, byte [ebp + 0x12]
movsx ecx, byte [ebp + 0xf]
cmp eax, ecx
jne 0x4b04b4
or dword [ebp - 0x28], 0xffffffff
push dword [ebp - 0x28]
push 0xfffffffffffffffe
push dword [esi + 0x1c]
call fcn.00469843
pop ecx
pop ecx
mov ecx, dword [esi + 0x3c]
push eax
call fcn.004778cf
mov ecx, esi
call fcn.00540ac0
push dword [esi + 0x1c]
call fcn.00464cd3
mov dword [esi + 0x174], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x1c]
call fcn.00463bb0
cmp dword [esi + 0x1f4], 0
je 0x4b0806
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jne 0x4b0806
cmp dword [ebp + 8], 0x10
je 0x4b0806
mov ecx, esi
call fcn.004b7d99
mov eax, dword [esi + 0x178]
cmp dword [ebp - 0x10], eax
jl 0x4b052a
dec eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
push ebx
push dword [ebp - 0x14]
push 0xc9
push dword [esi + 0x1c]
call edi
cmp dword [ebp + 8], 0x25
mov dword [ebp + 0xc], eax
jne 0x4b05e9
push ebx
push eax
push 0xbb
push dword [esi + 0x1c]
call edi
mov ecx, dword [ebp - 0x14]
sub ecx, eax
mov eax, dword [esi + 0x15c]
cmp ecx, eax
jg 0x4b05c9
lea eax, [ecx - 0xb]
push 3
cdq
pop edi
mov dword [esi + 0x190], ebx
idiv edi
cmp edx, 2
jne 0x4b057a
dec ecx
dec dword [ebp - 0x14]
push 0xb
pop eax
cmp ecx, eax
jge 0x4b058f
push 0xfffffffffffffffa
pop edx
sub edx, dword [esi + 0x154]
sub edx, ecx
add dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], ebx
jge 0x4b0597
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x178]
cmp dword [ebp - 0x14], eax
jl 0x4b05a8
add eax, 0xfffffffd
mov dword [ebp - 0x14], eax
push dword [ebp - 0x14]
push dword [ebp - 0x14]
push ebx
push dword [esi + 0x1c]
call fcn.00463ca0
push dword [ebp - 0x14]
mov ecx, esi
push dword [ebp + 0xc]
call fcn.004b92ae
jmp 0x4b06f2
add eax, 2
mov dword [esi + 0x190], 1
cmp ecx, eax
jge 0x4b05a8
cmp dword [ebp + 0xc], ebx
je 0x4b05a5
push 0xfffffffffffffffd
pop eax
sub eax, ecx
add dword [ebp - 0x14], eax
jmp 0x4b05a8
push 0
push dword [ebp + 0xc]
push 0xbb
push dword [esi + 0x1c]
call edi
mov ebx, dword [ebp - 0x10]
sub ebx, eax
cmp ebx, dword [esi + 0x15c]
jg 0x4b0674
lea eax, [ebx - 0xb]
push 3
cdq
pop ecx
and dword [esi + 0x190], 0
idiv ecx
cmp edx, 2
jne 0x4b061e
inc ebx
inc dword [ebp - 0x10]
cmp ebx, 0xb
jge 0x4b062b
push 0xb
pop eax
sub eax, ebx
add dword [ebp - 0x10], eax
mov eax, dword [esi + 0x178]
cmp dword [ebp - 0x10], eax
jl 0x4b063e
add eax, 0xfffffffe
mov dword [ebp - 0x10], eax
jmp 0x4b066c
cmp ebx, dword [esi + 0x15c]
jl 0x4b066c
mov eax, dword [esi + 0x174]
dec eax
cmp dword [ebp + 0xc], eax
jge 0x4b0668
mov eax, dword [ebp + 0xc]
push 0
inc eax
push eax
push 0xbb
push dword [esi + 0x1c]
call edi
add eax, 0xb
jmp 0x4b0639
sub dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], 0
jg 0x4b06cc
jmp 0x4b06c5
mov eax, dword [esi + 0x178]
mov dword [esi + 0x190], 1
cmp dword [ebp - 0x10], eax
jl 0x4b068f
add eax, 0xfffffffe
mov dword [ebp - 0x10], eax
push 0
push 0xffffffffffffffff
push 0xc1
push dword [esi + 0x1c]
call edi
cmp ebx, eax
jl 0x4b06bf
mov eax, dword [ebp + 0xc]
push 0
inc eax
push eax
push 0xbb
push dword [esi + 0x1c]
call edi
mov ecx, dword [esi + 0x15c]
lea eax, [ecx + eax + 2]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jge 0x4b06cc
mov dword [ebp - 0x10], 0xb
push dword [ebp - 0x10]
push dword [ebp - 0x10]
push 0
push dword [esi + 0x1c]
call fcn.00463ca0
cmp dword [ebp + 8], 0x26
je 0x4b06f2
cmp dword [ebp + 8], 0x21
je 0x4b06f2
push dword [ebp - 0x10]
mov ecx, esi
call fcn.004b9218
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x1c]
call fcn.00463bb0
mov ebx, dword [ebp - 0x24]
or edi, 0xffffffff
xor eax, eax
cmp dword [ebp - 0x2c], eax
je 0x4b0730
mov ecx, dword [esi + 0x148]
cmp ecx, ebx
jne 0x4b0730
mov ecx, dword [esi + 0x14c]
cmp ecx, dword [ebp - 0x20]
jne 0x4b0730
mov dword [esi + 0x148], edi
mov dword [esi + 0x14c], edi
cmp dword [esi + 0x1cc], eax
jne 0x4b0776
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x14], ecx
je 0x4b076e
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0x148], ebx
mov dword [esi + 0x1cc], 1
mov dword [esi + 0x14c], ecx
mov ecx, dword [0x62ae3c]
cmp dword [ecx + 0x193c], eax
je 0x4b076e
call fcn.0048445a
xor eax, eax
cmp dword [esi + 0x1cc], eax
je 0x4b07c7
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x14], ecx
jne 0x4b07c7
mov dword [esi + 0x148], edi
mov dword [esi + 0x110], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0x108], edi
mov dword [esi + 0x1cc], eax
mov dword [esi + 0x14c], edi
mov dword [esi + 0x114], edi
mov dword [esi + 0x104], edi
mov dword [esi + 0x10c], edi
mov ecx, dword [0x62ae3c]
cmp dword [ecx + 0x193c], eax
je 0x4b07c7
call fcn.004844aa
mov ecx, dword [0x62ae3c]
call fcn.00493613
cmp dword [ebp - 0x18], 0
jne 0x4b07de
cmp dword [ebp - 0x1c], 0
je 0x4b085d
mov ecx, esi
call fcn.004b7d99
mov edi, eax
sub edi, dword [ebp - 0x38]
cmp dword [ebp - 0x1c], 0
je 0x4b0860
test edi, edi
je 0x4b0860
mov eax, edi
mov ecx, esi
cdq
push edx
push eax
push dword [ebp - 0x20]
push ebx
call fcn.004b6803
jmp 0x4b0860
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [esi + 0x1c]
call fcn.00463bb0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jne 0x4b0705
mov eax, dword [ebp + 8]
cmp eax, 0x26
je 0x4b083d
cmp eax, 0x21
je 0x4b083d
cmp eax, 0x22
je 0x4b083d
cmp eax, 0x28
jne 0x4b0705
or edi, 0xffffffff
mov dword [esi + 0x110], edi
mov dword [esi + 0x148], edi
mov dword [esi + 0x114], edi
mov dword [esi + 0x14c], edi
jmp 0x4b0708
mov edi, dword [ebp + 8]
mov ecx, esi
call fcn.004ab21f
cmp dword [ebp - 0x1c], 0
je 0x4b0897
mov eax, dword [ebp - 0x30]
push 0
cdq
mov ecx, eax
mov eax, dword [ebp - 0x20]
add ecx, ebx
push edi
adc edx, eax
add ecx, 1
adc edx, 0
add ebx, 1
push edx
push ecx
mov ecx, dword [esi + 0x3c]
push edi
adc eax, 0
push eax
push ebx
push esi
call fcn.0046dc1d
mov ecx, esi
call fcn.00423115
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc