Function at 0x4913c0
Capabilities:
Check if file exists
Get file attributes
Log keystrokes via polling

Disassembly:
mov eax, 0x3000
call fcn.00532230
mov edx, dword [0x554e0c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3018]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
mov ecx, 0x3ff
xor eax, eax
lea edi, [esp + 0x1014]
mov dword [esp + 0x1010], edx
mov dword [esp + 0x2010], edx
rep stosd dword es:[edi], eax
mov ecx, 0x3ff
lea edi, [esp + 0x2014]
test esi, esi
rep stosd dword es:[edi], eax
jne 0x491415
xor ebx, ebx
jmp 0x49141a
push esi
call ebp
mov ebx, eax
mov edi, dword [0x55dfa8]
mov ecx, dword [edi - 0xc]
lea eax, [edi - 0xc]
cmp ecx, 1
jg 0x491430
cmp ebx, dword [edi - 4]
jle 0x49149e
mov ecx, dword [0x547574]
add edi, 0xfffffff4
cmp edi, ecx
je 0x491465
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x491459
mov eax, dword [0x55dfa8]
add eax, 0xfffffff4
push eax
call fcn.00532222
add esp, 4
mov ecx, dword [0x547570]
mov dword [0x55dfa8], ecx
test ebx, ebx
jne 0x491471
mov edi, dword [0x547570]
jmp 0x491498
lea edx, [ebx + ebx + 0xe]
push edx
call fcn.00532695
add esp, 4
test eax, eax
je 0x4914c6
mov dword [eax], 1
mov word [eax + ebx*2 + 0xc], 0
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
lea edi, [eax + 0xc]
mov dword [0x55dfa8], edi
lea eax, [ebx + ebx]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x55dfa8]
mov dword [ecx - 8], ebx
mov edx, dword [0x55dfa8]
mov word [eax + edx], 0
mov eax, dword [esp + 0x3018]
push eax
call fcn.004916f0
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 4
mov ebx, eax
lea ecx, [esp + 0x2010]
push ebx
push ecx
call esi
lea edx, [esp + 0x1010]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [esp + 0x1010]
push eax
call ebp
test eax, eax
jg 0x491513
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3000
ret
mov ecx, dword [0x554e0c]
xor eax, eax
mov dword [esp + 0x10], ecx
mov ecx, 0x3ff
lea edi, [esp + 0x14]
lea edx, [esp + 0x1010]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
push edx
push eax
call esi
lea ecx, [esp + 0x10]
push ecx
call fcn.00491750
lea edx, [esp + 0x14]
push edx
call fcn.00491880
add esp, 8
test eax, eax
jle 0x491595
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [esp + 0x3014]
shr eax, 0xf
and eax, 1
test ecx, ecx
je 0x49156f
mov eax, ecx
neg eax
sbb eax, eax
push 0
and eax, 0x548150
push eax
lea eax, [esp + 0x18]
push 0
push eax
call fcn.00491940
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3000
ret
push ebx
call ebp
xor edi, edi
cmp word [ebx], 0x22
jne 0x4915ba
mov ecx, 1
cmp eax, ecx
jle 0x4915ba
lea edx, [ebx + 2]
cmp word [edx], 0x22
je 0x4915d2
inc ecx
add edx, 2
cmp ecx, eax
jl 0x4915ac
xor ecx, ecx
test eax, eax
jle 0x4915e9
mov edx, ebx
cmp word [edx], 0x20
je 0x4915df
inc ecx
add edx, 2
cmp ecx, eax
jl 0x4915c2
jmp 0x4915e9
mov word [ebx + ecx*2 + 2], 0
lea edi, [ebx + ecx*2 + 4]
jmp 0x4915e9
lea edi, [ebx + ecx*2 + 2]
mov word [ebx + ecx*2], 0
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov si, ax
mov eax, dword [esp + 0x3014]
shr esi, 0xf
and esi, 1
test eax, eax
je 0x491607
mov esi, eax
push edi
call fcn.00491750
add esp, 4
lea ecx, [esp + 0x1010]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x49164d
neg esi
sbb esi, esi
push 0
and esi, 0x548150
lea edx, [esp + 0x1014]
push esi
push 0
push edx
call fcn.00491940
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3000
ret
mov ax, word [ebx]
cmp ax, 0x73
je 0x49165c
cmp ax, 0x53
jne 0x4916cd
mov ax, word [ebx + 2]
cmp ax, 0x68
je 0x49166c
cmp ax, 0x48
jne 0x4916cd
mov ax, word [ebx + 4]
cmp ax, 0x65
je 0x49167c
cmp ax, 0x45
jne 0x4916cd
mov ax, word [ebx + 6]
cmp ax, 0x6c
je 0x49168c
cmp ax, 0x4c
jne 0x4916cd
mov ax, word [ebx + 8]
cmp ax, 0x6c
je 0x49169c
cmp ax, 0x4c
jne 0x4916cd
cmp word [ebx + 0xa], 0x3a
jne 0x4916cd
neg esi
sbb esi, esi
push 0
and esi, 0x548150
lea eax, [esp + 0x2014]
push esi
push 0
push eax
call fcn.00491940
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3000
ret
neg esi
sbb esi, esi
push 0
and esi, 0x548150
push esi
push edi
push ebx
call fcn.00491940
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3000
ret