Function at 0x4b90c0
Capabilities:
Inspect section memory permissions
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa164]
and ecx, 0x40000000
neg ecx
sbb ecx, ecx
add ecx, 1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], 0
call dword [sym.imp.USER32.dll_GetFocus]
mov edx, dword [ebp + 8]
cmp dword [edx + 0x39c], eax
je 0x4b9117
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x4b9117
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x39c]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [ebp - 8], 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x764], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x670], 0
push 1
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004fc110
add esp, 0xc
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xaf8]
cmp edx, 0x20
je 0x4b91d7
mov eax, dword [ebp + 8]
cmp dword [eax + 0xae4], 0
jl 0x4b91d7
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0xae4]
cmp eax, dword [edx + 0x5e4]
jge 0x4b91d7
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xae8]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xae4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004a0bf0
add esp, 0xc
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x170
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3434]
cmp dword [edx + eax + 0xc0], 0
je 0x4b91d7
mov eax, dword [ebp + 8]
mov byte [eax + 0xaf8], 0x20
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5ba4], 0
je 0x4b91d7
mov edx, dword [ebp + 8]
push edx
call fcn.004e2440
add esp, 4
cmp dword [ebp - 8], 0
jne 0x4b9212
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0xae4]
cmp edx, dword [ecx + 0x5d8]
jne 0x4b9205
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0xae8]
cmp edx, dword [ecx + 0x47c]
je 0x4b9212
mov eax, dword [ebp + 8]
mov dword [eax + 0x2b2c], 0xffffffff
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x62c], 0
je 0x4b9268
cmp dword [ebp + 0xc], 0
je 0x4b9263
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5860], 0
jl 0x4b924f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5860]
imul ecx, ecx, 0xf0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x585c]
cmp dword [eax + ecx + 8], 9
jne 0x4b9263
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9b70
add esp, 0xc
jmp 0x4b99f1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xaf8]
cmp edx, 0x20
jne 0x4b99f1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x587c]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x5880], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x587c], 0
cmp dword [ebp - 0x10], 0
je 0x4b951e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa118], 0
je 0x4b92d6
push 1
push 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xae4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ff750
add esp, 0x10
jmp 0x4b951e
mov edx, dword [ebp + 8]
cmp dword [edx + 0x4b48], 2
jne 0x4b945e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
and eax, 0x8000
je 0x4b930a
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x4b5c], 1
jmp 0x4b9459
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5860], 0
jge 0x4b93cf
cmp dword [ebp + 0x10], 0x201
jne 0x4b93ca
mov eax, dword [ebp + 8]
mov dword [eax + 0x674], 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f79c0
add esp, 4
test eax, eax
je 0x4b9370
push 0
push 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x39c]
push eax
push 0xab2
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f70b0
add esp, 0x14
mov edx, dword [ebp + 8]
mov dword [edx + 0x66c], 1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x670], 0
jne 0x4b93ca
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x66c], 0
jne 0x4b93ca
mov edx, dword [ebp + 8]
mov dword [edx + 0x4b48], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x4b70], 0
cmp dword [ebp - 0x1c], 0
jne 0x4b93b4
mov ecx, dword [ebp + 8]
push ecx
call fcn.004de3e0
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x674], 0
je 0x4b93ca
mov eax, 1
jmp 0x4b9bb0
jmp 0x4b9459
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5860]
imul ecx, ecx, 0xf0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x585c]
cmp dword [eax + ecx + 8], 0xa
je 0x4b940d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5860]
imul edx, edx, 0xf0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x585c]
cmp dword [ecx + edx + 8], 0xb
jne 0x4b941e
push 0x378
mov edx, dword [ebp + 8]
push edx
call fcn.00515580
add esp, 8
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax + 0x4b48], 0
setne cl
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5860]
imul eax, eax, 0xf0
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x585c]
mov dword [edx + eax + 0xe4], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 0x4b48], 0
jmp 0x4b951e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4b48], 0
jne 0x4b951e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
je 0x4b951e
mov eax, dword [ebp + 8]
mov dword [eax + 0x4b48], 2
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5ba4], 0
je 0x4b94c4
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5d8]
mov dword [edx + 0x4b3c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x47c]
mov dword [edx + 0x4b4c], ecx
jmp 0x4b94ed
mov edx, dword [ebp + 8]
add edx, 0x4b4c
push edx
mov eax, dword [ebp + 8]
add eax, 0x4b3c
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5bcc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004f88e0
add esp, 0x10
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xae4]
mov dword [ecx + 0x4b40], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xae8]
mov dword [ecx + 0x4b50], eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x4b5c], 1
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0xae4]
cmp ecx, dword [eax + 0x5e4]
jl 0x4b9544
push 1
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004fc110
add esp, 0xc
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5860], 0
jge 0x4b9741
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xae8]
mov dword [edx + 0x47c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x47c]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xae4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004a0bf0
add esp, 0xc
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x47c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xae4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004f2000
add esp, 0xc
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4b95d3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa160]
and ecx, 0x20000000
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x46ec], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x5d8]
cmp edx, dword [ecx + 0xae4]
jne 0x4b9609
mov eax, dword [ebp + 8]
cmp dword [eax + 0x468], 0
jne 0x4b9609
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4b48], 2
je 0x4b9609
cmp dword [ebp - 0x14], 0
je 0x4b96ce
mov edx, dword [ebp + 8]
cmp dword [edx + 0x468], 0
jne 0x4b9627
mov eax, dword [ebp + 8]
cmp dword [eax + 0x4b48], 2
je 0x4b9627
cmp dword [ebp - 0x14], 0
je 0x4b9645
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xae4]
add edx, 1
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ee400
add esp, 8
jmp 0x4b96cc
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xae4]
mov dword [ecx + 0x5d8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x5d8]
sub eax, dword [edx + 0x5e0]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5d4], eax
mov edx, dword [ebp + 8]
push edx
call fcn.00500510
add esp, 4
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.005119e0
add esp, 8
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5870], 0
je 0x4b96a4
mov edx, dword [ebp + 8]
push edx
call fcn.00521ee0
add esp, 4
mov eax, dword [ebp + 8]
cmp dword [eax + 0x5874], 0
je 0x4b96bc
mov ecx, dword [ebp + 8]
push ecx
call fcn.00521f60
add esp, 4
push 3
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.00521b70
add esp, 0xc
jmp 0x4b96da
mov eax, dword [ebp + 8]
push eax
call fcn.00500510
add esp, 4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x39a4], 0
jl 0x4b96ff
push 1
push 0
push 1
push 0
push 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x39c]
push eax
call fcn.004ca6a0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x69c], 0
jne 0x4b9733
mov edx, dword [ebp + 8]
cmp dword [edx + 0x658], 0
jne 0x4b9733
push 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5d8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004e08a0
add esp, 0xc
test eax, eax
je 0x4b973f
mov eax, dword [ebp + 8]
push eax
call fcn.004de3e0
add esp, 4
jmp 0x4b974d
mov ecx, dword [ebp + 8]
push ecx
call fcn.00500510
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f5d80
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x4b9795
mov edx, dword [ebp - 0xc]
imul edx, edx, 0xb4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x704]
cmp dword [ecx + edx + 0x88], 0
jle 0x4b9795
mov edx, dword [ebp + 8]
mov dword [edx + 0x5880], 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x47c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004a0bf0
add esp, 0xc
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
imul edx, edx, 0x170
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3434]
mov edx, dword [ecx + edx + 0x134]
and edx, 0x80
je 0x4b99f1
mov eax, dword [ebp - 0x18]
imul eax, eax, 0x170
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3434]
mov eax, dword [edx + eax + 0x134]
and eax, 0x200
jne 0x4b99f1
cmp dword [ebp - 0x10], 0
je 0x4b99f1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4b48], 0
jne 0x4b99f1
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x4b984f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa168]
and ecx, 8
je 0x4b984f
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004cd1e0
add esp, 8
test eax, eax
je 0x4b984f
mov dword [ebp - 0x2c], 1
jmp 0x4b9856
mov dword [ebp - 0x2c], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5880], 0
je 0x4b995c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa160]
and ecx, 0x1000
je 0x4b995c
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5d8], 0
jne 0x4b9896
mov dword [ebp - 0x30], 0
jmp 0x4b98b2
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5d8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
mov ecx, dword [eax + ecx*4 - 4]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5e4]
sub edx, 1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x5d8], edx
jne 0x4b98d8
mov dword [ebp - 0x34], 0
jmp 0x4b98f4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5d8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x138]
mov edx, dword [ecx + edx*4 + 4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x138]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [eax + 0x30]
je 0x4b995c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x138]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [eax + 0x30]
je 0x4b995c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x138]
mov eax, dword [edx + eax*4]
cmp dword [eax + 0xc], 2
jne 0x4b995c
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5880], 0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5880], 0
jne 0x4b99f1
cmp dword [ebp - 0x20], 0
jne 0x4b99f1
mov eax, dword [ebp + 8]
mov dword [eax + 0x587c], 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x4b48], 2
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5d8]
mov dword [edx + 0x4b40], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x4b40]
mov dword [edx + 0x4b3c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x47c]
mov dword [edx + 0x4b4c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x47c]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x4b50], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x4b5c], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x46ec], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x62c], 0
jne 0x4b9a0c
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xaf8]
cmp eax, 0x20
je 0x4b9a18
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5860], 0
jl 0x4b9a62
cmp dword [ebp + 0x10], 0x201
je 0x4b9a2a
cmp dword [ebp + 0x10], 0x207
jne 0x4b9a39
mov edx, dword [ebp + 8]
mov dword [edx + 0xb00], 0
jmp 0x4b9a4f
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jne 0x4b9a4f
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xb00], 0
cmp dword [ebp - 8], 0
je 0x4b9a62
mov edx, dword [ebp + 8]
mov dword [edx + 0xb00], 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x5ba4], 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa13c], 0xffffffff
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5be4], 0
je 0x4b9a96
push 1
mov eax, dword [ebp + 8]
push eax
call fcn.004b88b0
add esp, 8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa174]
and edx, 0x20000
je 0x4b9ab4
mov eax, dword [ebp + 8]
mov dword [eax + 0xa108], 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa108], 0
jne 0x4b9b4c
mov edx, dword [ebp + 8]
cmp dword [edx + 0x62c], 0
jne 0x4b9b4c
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa11c], 0
je 0x4b9b4c
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x570], 0
jne 0x4b9af4
mov edx, dword [ebp + 8]
cmp dword [edx + 0xb08], 0
je 0x4b9b4c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x39c]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f8900
add esp, 0x10
test eax, eax
je 0x4b9b3e
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x4b9b2f
xor eax, eax
jmp 0x4b9bb0
mov eax, dword [ebp + 8]
mov dword [eax + 0xb00], 1
jmp 0x4b9b4c
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ae130
add esp, 8
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
and edx, 0x8000
je 0x4b9b81
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x47c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5d8]
push eax
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.004b1d70
add esp, 0x10
push 0
push 0
push 0
push 1
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.004d9160
add esp, 0x18
test eax, eax
jle 0x4b9bab
push 1
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.004d56b0
add esp, 0xc
mov eax, 1
mov esp, ebp
pop ebp
ret