Function at 0x4b6260
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6b037c
push eax
mov dword fs:[0], esp
sub esp, 0x128
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x20]
xor ebx, ebx
cmp eax, ebx
jne 0x4b628f
xor eax, eax
jmp 0x4b6df9
mov al, byte [esi + 0x11c]
test al, al
je 0x4b62f8
mov cl, byte [esi + 0x11d]
cmp cl, 0xff
je 0x4b62f8
mov dl, byte [0x2201970]
test dl, dl
je 0x4b62f8
cmp al, byte [0x2201971]
jne 0x4b62be
cmp cl, byte [0x2201972]
je 0x4b62ce
cmp al, byte [0x2201973]
jne 0x4b62f8
cmp cl, byte [0x2201974]
jne 0x4b62f8
mov eax, dword [esp + 0x140]
cmp eax, ebx
mov byte [esi + 0x11c], 0
mov byte [esi + 0x11d], 0xff
je 0x4b62ee
mov byte [eax + 0xe0], 0xff
mov eax, 1
jmp 0x4b6df9
mov byte [0x2201970], 0
mov ecx, dword [esi + 0x58]
cmp ecx, ebx
push edi
je 0x4b6334
call fcn.004c49d0
test eax, eax
je 0x4b632a
mov edi, dword [esi + 0x58]
cmp edi, ebx
je 0x4b632a
mov ecx, edi
call fcn.004c5470
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x58], ebx
mov eax, 1
jmp 0x4b6df8
mov ecx, dword [esi + 0x5c]
cmp ecx, ebx
je 0x4b636a
call fcn.004268f0
mov edi, eax
cmp edi, ebx
je 0x4b6360
mov ecx, dword [esi + 0x5c]
cmp ecx, ebx
je 0x4b6356
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi + 0x5c], ebx
cmp edi, ebx
jle 0x4b6360
mov dword [esi + 0x118], edi
mov eax, 1
jmp 0x4b6df8
push ebp
mov ebp, dword [esp + 0x148]
xor bl, bl
test ebp, ebp
mov byte [esp + 0x13], 0xff
je 0x4b6397
mov eax, dword [ebp + 0xdc]
test eax, eax
jne 0x4b638d
mov bl, byte [ebp + 0xe1]
mov cl, byte [ebp + 0xe0]
mov byte [esp + 0x13], cl
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x4b6550
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], 0
call fcn.00511e10
test eax, eax
je 0x4b6546
cmp eax, 2
jne 0x4b6528
cmp dword [esi + 0x12a8], 2
mov eax, dword [esp + 0x18]
jne 0x4b6439
cmp eax, 0xee6b2800
jbe 0x4b6525
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b6528
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
mov dword [esp + 0x140], 0
test edi, edi
je 0x4b64f8
push 0x1bf3
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
jmp 0x4b64fa
cmp eax, dword [0x8655f0]
jbe 0x4b64c7
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b6528
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 1
je 0x4b649a
push 0x12f
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
jmp 0x4b649c
xor eax, eax
push 0
push 0x447a0000
push 0x22094c8
push 0x6be918
mov ecx, 0x22071e0
mov dword [esp + 0x150], 0xffffffff
mov dword [esi + 0x58], eax
call fcn.0053a850
jmp 0x4b6528
cmp eax, 0xee6b2800
jbe 0x4b6525
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b6528
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
mov dword [esp + 0x140], 2
jmp 0x4b6406
xor eax, eax
push 0
push 0x447a0000
push 0x22094c8
mov ecx, 0x22071e0
push 0x6be918
mov dword [esi + 0x58], eax
mov dword [esp + 0x150], 0xffffffff
call fcn.0053a850
jmp 0x4b6528
mov dword [esi + 0x60], eax
mov edi, dword [esi + 0x54]
test edi, edi
je 0x4b6546
mov ecx, edi
call fcn.00512960
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x54], 0
mov eax, 1
jmp 0x4b6df7
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
lea ecx, [esi + 0x6f8]
call fcn.00527450
test eax, eax
jne 0x4b6df2
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push edx
push eax
lea ecx, [esi + 0xcd0]
call fcn.00527450
test eax, eax
jne 0x4b6df2
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
lea ecx, [esi + 0x120]
call fcn.00527450
test eax, eax
je 0x4b68cb
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x30], al
mov ecx, 0x40
lea edi, [esp + 0x34]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esi + 0x50], ecx
je 0x4b6631
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4b6622
mov cl, byte [eax + 0x128]
cmp cl, 1
jne 0x4b65ff
push 0x14
add eax, 0x20
push eax
lea edx, [esp + 0x24]
push edx
call fcn.005cd0f0
mov byte [esp + 0x3c], 0
jmp 0x4b661f
cmp cl, 2
jne 0x4b6622
add eax, 0x20
push 0x100
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.005cd0f0
mov byte [esp + 0x140], 0
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [eax]
mov dword [esi + 0x50], ecx
mov eax, dword [esi + 0x48]
cmp ecx, eax
jne 0x4b65d3
lea eax, [esp + 0x1c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b6638
sub eax, edx
mov dword [esp + 0x14], eax
jne 0x4b6686
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b667f
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 3
je 0x4b667a
push 0x1bed
jmp 0x4b67e8
xor eax, eax
mov dword [esi + 0x58], eax
xor eax, eax
jmp 0x4b6df7
lea eax, [esp + 0x34]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b6690
sub eax, edx
mov dword [esp + 0x14], eax
jne 0x4b66d2
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b667f
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 4
je 0x4b667a
push 0x1bee
jmp 0x4b67e8
mov edi, 0x2201991
lea eax, [esp + 0x1c]
jmp 0x4b66e0
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x4b6708
test cl, cl
je 0x4b6704
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x4b6708
add eax, 2
add edi, 2
test cl, cl
jne 0x4b66e0
xor eax, eax
jmp 0x4b670d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4b674c
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b667f
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 5
je 0x4b667a
push 0x1bfa
jmp 0x4b67e8
mov eax, dword [esi + 0x12a8]
sub eax, 0
je 0x4b6890
dec eax
je 0x4b684b
dec eax
jne 0x4b68c1
mov eax, dword [esi + 0x118]
test eax, eax
jne 0x4b67ab
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b667f
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 6
je 0x4b667a
push 0x1c0f
jmp 0x4b67e8
mov eax, dword [esi + 0x60]
test eax, eax
jne 0x4b6813
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x4b667f
push 0xc48
call fcn.005cc96d
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
mov dword [esp + 0x140], 7
je 0x4b667a
push 0x1c0c
call fcn.0041d4a0
add esp, 4
push eax
push 0xff
push 0xff
push 0xff
push 0
mov ecx, edi
call fcn.004c4d10
mov dword [esi + 0x58], eax
xor eax, eax
jmp 0x4b6df7
xor ecx, ecx
mov cl, byte [esi + 0x118]
xor edx, edx
mov dl, byte [esi + 0x11d]
push ecx
xor ecx, ecx
mov cl, byte [esi + 0x11c]
push edx
lea edx, [esp + 0x3c]
push ecx
push eax
push edx
lea eax, [esp + 0x30]
push eax
call fcn.0059ccb0
add esp, 0x18
mov eax, 0xb
jmp 0x4b6df7
xor ecx, ecx
mov cl, byte [esi + 0x118]
xor edx, edx
mov dl, byte [esi + 0x11d]
xor eax, eax
mov al, byte [esi + 0x11c]
push ecx
mov ecx, dword [esi + 0x60]
push edx
lea edx, [esp + 0x3c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
push edx
mov edx, dword [ecx + 4]
lea eax, [esp + 0x30]
push eax
mov eax, dword [ecx]
push edx
push eax
call fcn.0059cc00
add esp, 0x20
mov eax, 0xb
jmp 0x4b6df7
xor ecx, ecx
mov cl, byte [esi + 0x118]
xor edx, edx
mov dl, byte [esi + 0x11d]
xor eax, eax
mov al, byte [esi + 0x11c]
push ecx
mov ecx, dword [esi + 0x60]
push edx
lea edx, [esp + 0x3c]
push eax
push ecx
push edx
lea eax, [esp + 0x30]
push eax
call fcn.0059cb50
add esp, 0x18
mov eax, 0xb
jmp 0x4b6df7
mov eax, dword [0x719a58]
test eax, eax
mov edi, dword [0x2203688]
je 0x4b68f0
mov ecx, dword [0x7199dc]
push ecx
mov ecx, edi
call fcn.004268b0
test al, al
jne 0x4b6df2
push 0x1c
mov ecx, edi
call fcn.004268b0
test al, al
je 0x4b695a
mov ecx, 0x2203adc
call fcn.00531b30
cmp ax, 0x12
je 0x4b691b
mov ecx, 0x2203adc
call fcn.00532a90
test al, al
jne 0x4b695a
push 0xd
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esi + 0x50], ecx
je 0x4b695a
nop
mov edx, dword [esi + 0x50]
mov ebp, dword [edx + 8]
mov eax, dword [ebp + 0x124]
test eax, eax
jne 0x4b6b1e
mov eax, edx
mov eax, dword [eax]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x48]
cmp dword [esi + 0x50], eax
jne 0x4b6930
mov ebp, dword [esp + 0x148]
mov eax, dword [0x2203690]
cmp eax, 1
jne 0x4b6c0a
mov eax, dword [0x2203694]
test eax, eax
jne 0x4b6de3
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esi + 0x50], ecx
je 0x4b69f3
mov ecx, dword [esi + 0x50]
mov ebp, dword [ecx + 8]
mov eax, dword [ebp + 0x124]
test eax, eax
je 0x4b69e2
xor edi, edi
mov dword [0x719a58], edi
mov ecx, 0x2203adc
mov dword [ebp + 0x124], edi
call fcn.00531b00
push edi
mov ecx, 0x2203adc
call fcn.005325b0
lea ebx, [ebp + 0x20]
xor eax, eax
mov ecx, 0x41
mov edi, ebx
rep stosd dword es:[edi], eax
push 0x103
mov ecx, 0x2203adc
call fcn.00532dc0
push eax
push ebx
call fcn.005cd0f0
add esp, 0xc
mov byte [ebp + 0x123], 0
mov eax, dword [esi + 0x50]
mov edx, dword [eax]
mov dword [esi + 0x50], edx
mov eax, dword [esi + 0x48]
mov ecx, edx
cmp ecx, eax
jne 0x4b6981
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
xor ebx, ebx
cmp ecx, eax
mov dword [esi + 0x50], ecx
mov ebp, 1
je 0x4b6a98
lea ebx, [ebx]
mov eax, dword [esi + 0x50]
mov edi, dword [eax + 8]
mov eax, dword [esi + 4]
mov edx, dword [edi + 8]
mov ecx, dword [0x71c2a4]
add edx, eax
cmp ecx, edx
jl 0x4b6a84
mov edx, dword [edi + 0x10]
add edx, eax
cmp ecx, edx
jg 0x4b6a84
mov eax, dword [esi + 8]
mov edx, dword [edi + 0xc]
mov ecx, dword [0x71c2a8]
add edx, eax
cmp ecx, edx
jl 0x4b6a84
mov edx, dword [edi + 0x14]
add edx, eax
cmp ecx, edx
jg 0x4b6a84
mov dword [0x864e00], ebx
mov dword [0x719a58], ebp
mov ecx, 0x2203adc
mov dword [edi + 0x124], ebp
call fcn.005347d0
push ebp
mov ecx, 0x2203adc
call fcn.005325b0
add edi, 0x20
push edi
push 0x2203adc
call fcn.005348a0
add esp, 8
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x48]
cmp dword [esi + 0x50], eax
jne 0x4b6a10
mov eax, dword [esi + 4]
mov edx, dword [0x71c2a4]
lea ecx, [eax + 0xb0]
cmp edx, ecx
jl 0x4b6baa
add eax, 0x150
cmp edx, eax
jg 0x4b6baa
mov eax, dword [esi + 8]
mov ecx, dword [0x71c2a8]
lea edi, [eax + 0x70]
cmp ecx, edi
jl 0x4b6bb0
add eax, 0x7f
cmp ecx, eax
jg 0x4b6bb0
mov edi, dword [esi + 0x54]
cmp edi, ebx
je 0x4b6af5
mov ecx, edi
call fcn.00512960
push edi
call fcn.005cc620
add esp, 4
mov dword [esi + 0x54], ebx
push 0x1208
call fcn.005cc96d
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0x140], 8
je 0x4b6b79
mov ecx, eax
call fcn.005126b0
jmp 0x4b6b7b
xor esi, esi
mov dword [0x719a58], esi
mov ecx, 0x2203adc
mov dword [ebp + 0x124], esi
call fcn.00531b00
push esi
mov ecx, 0x2203adc
call fcn.005325b0
lea esi, [ebp + 0x20]
xor eax, eax
mov ecx, 0x41
mov edi, esi
rep stosd dword es:[edi], eax
push 0x103
mov ecx, 0x2203adc
call fcn.00532dc0
push eax
push esi
call fcn.005cd0f0
add esp, 0xc
mov byte [ebp + 0x123], 0
mov eax, 1
jmp 0x4b6df7
xor eax, eax
mov edx, dword [esi + 4]
mov dword [esi + 0x54], eax
add edx, 0x32
mov dword [eax + 0x1200], edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x54]
add eax, 0x32
mov dword [ecx + 0x1204], eax
mov edx, dword [0x71c2a4]
mov dword [esp + 0x140], 0xffffffff
mov ecx, dword [0x71c2a8]
mov al, byte [esi + 0x11c]
test al, al
je 0x4b6de3
cmp byte [esi + 0x11d], 0xff
je 0x4b6de3
mov eax, dword [esi + 4]
lea edi, [eax + 0x2f]
cmp edx, edi
jl 0x4b6de3
add eax, 0x4f
cmp edx, eax
jg 0x4b6de3
mov eax, dword [esi + 8]
lea edx, [eax + 0x4f]
cmp ecx, edx
jl 0x4b6de3
add eax, 0x6f
cmp ecx, eax
jg 0x4b6de3
mov dword [esi + 0x114], ebp
mov eax, ebp
jmp 0x4b6df7
cmp eax, 2
jne 0x4b6de3
mov eax, dword [esi + 4]
mov ecx, dword [0x71c2a4]
lea edx, [eax + 0x2f]
cmp ecx, edx
jl 0x4b6da2
add eax, 0x4f
cmp ecx, eax
jg 0x4b6da2
mov eax, dword [esi + 8]
mov ecx, dword [0x71c2a8]
lea edx, [eax + 0x4f]
cmp ecx, edx
jl 0x4b6da2
add eax, 0x6f
cmp ecx, eax
jg 0x4b6da2
mov eax, dword [esi + 0x114]
test eax, eax
jne 0x4b6d91
test bl, bl
je 0x4b6d73
mov cl, byte [esp + 0x13]
cmp cl, 0xff
je 0x4b6d73
movzx eax, bl
movzx ecx, cl
lea eax, [eax + eax*2]
lea edi, [ecx + eax*8]
lea edi, [edi + edi*4]
shl edi, 3
xor edx, edx
mov dl, byte [edi + 0x8666de]
xor eax, eax
mov al, byte [edi + 0x8666dd]
mov ecx, 0x86de50
push edx
push eax
call fcn.004607b0
test eax, eax
je 0x4b6cec
mov cl, byte [eax + 0x24]
test cl, cl
je 0x4b6cec
test ebp, ebp
je 0x4b6cb8
mov byte [ebp + 0xe0], 0xff
push 0
push 0x447a0000
push 0x22094c8
push 0x6be918
mov ecx, 0x22071e0
call fcn.0053a850
push 0x1bb
push 0x11
call fcn.0041fce0
add esp, 8
mov eax, 1
jmp 0x4b6df7
mov cl, byte [esp + 0x13]
mov byte [esi + 0x11c], bl
mov byte [esi + 0x11d], cl
mov dword [esi + 0x118], 1
mov bl, byte [edi + 0x8666df]
cmp bl, 1
jbe 0x4b6d57
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x4b6d25
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi + 0x5c], 0
push 0x1d74
call fcn.005cc96d
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x140], 9
je 0x4b6d52
movzx ecx, bl
push ecx
mov ecx, eax
call fcn.00426b30
jmp 0x4b6d54
xor eax, eax
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x148]
test eax, eax
je 0x4b6d69
mov byte [eax + 0xe0], 0xff
mov eax, 1
jmp 0x4b6df7
test eax, eax
jne 0x4b6d91
test bl, bl
jne 0x4b6d8d
test ebp, ebp
je 0x4b6d86
mov byte [ebp + 0xe0], 0xff
mov eax, 1
jmp 0x4b6df7
test eax, eax
je 0x4b6d86
mov dword [esi + 0x114], 0
mov eax, 1
jmp 0x4b6df7
mov eax, dword [esi + 0x114]
xor edi, edi
cmp eax, edi
je 0x4b6dcf
mov byte [esi + 0x11c], 0
mov byte [esi + 0x11d], 0xff
mov dword [esi + 0x118], edi
mov dword [esi + 0x114], edi
mov eax, 1
jmp 0x4b6df7
push ebp
mov ecx, esi
call fcn.004b5a60
test eax, eax
jne 0x4b667f
cmp ebp, edi
jmp 0x4b6d7d
mov ecx, esi
call fcn.00526f30
neg eax
sbb eax, eax
neg eax
jmp 0x4b6df7
mov eax, 3
pop ebp
pop edi
mov ecx, dword [esp + 0x130]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x134
ret 4