Function at 0x537acc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, edx
xor eax, eax
push ebp
push 0x537dad
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], 0x7fffffff
mov byte [ebp - 5], 0
mov byte [ebp - 6], 0
mov byte [ebp - 7], 0
mov byte [ebp - 8], 0
xor ebx, ebx
mov eax, esi
call fcn.0040b71c
mov edi, eax
cmp edi, dword [ebp - 0x18]
jle 0x537b1e
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x537d97
jmp 0x537d7c
xor eax, eax
mov al, byte [esi + ebx]
cmp eax, 0x2b
jg 0x537b49
je 0x537b93
sub eax, 0x25
je 0x537b7c
sub eax, 3
je 0x537b61
dec eax
je 0x537b6b
jmp 0x537d47
sub eax, 0x5e
je 0x537baa
sub eax, 0x1d
je 0x537bc1
sub eax, 3
je 0x537d30
jmp 0x537d47
mov byte [ebp - 5], 1
inc ebx
jmp 0x537d7c
mov byte [ebp - 5], 0
push ebp
call fcn.00537a78
pop ecx
inc ebx
jmp 0x537d7c
mov byte [ebp - 8], 1
xor ecx, ecx
mov dx, 1
mov al, 0x12
call fcn.00537814
inc ebx
jmp 0x537d7c
mov byte [ebp - 6], 1
xor ecx, ecx
mov dx, 1
mov al, 0x10
call fcn.00537814
inc ebx
jmp 0x537d7c
mov byte [ebp - 7], 1
xor ecx, ecx
mov dx, 1
mov al, 0x11
call fcn.00537814
inc ebx
jmp 0x537d7c
mov word [ebp - 0x1a], 1
cmp byte [esi + ebx + 1], 0x7b
jne 0x537bfc
mov word [ebp - 0xa], 0xdb
lea eax, [ebp - 9]
mov dl, 1
call fcn.00537804
mov cl, 1
mov dx, 1
mov ax, word [ebp - 0xa]
call fcn.005378d8
push ebp
call fcn.00537a78
pop ecx
add ebx, 3
jmp 0x537d7c
mov byte [ebp - 0x2f], 0
mov byte [ebp - 0x11], 0
cmp edi, ebx
jl 0x537c3a
inc ebx
cmp byte [esi + ebx], 0x7d
jne 0x537c16
mov byte [ebp - 0x11], 1
inc ebx
jmp 0x537c3a
mov al, byte [esi + ebx]
call fcn.00403230
mov edx, eax
lea eax, [ebp - 0x34]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x2f]
mov cl, 0x14
call fcn.004036ec
cmp edi, ebx
jge 0x537c08
cmp byte [ebp - 0x11], 0
jne 0x537c4c
mov dword [ebp - 4], 0xfffffff2
jmp 0x537d8a
cmp byte [esi + ebx], 0x7d
jne 0x537c7e
mov word [ebp - 0xa], 0xdd
lea eax, [ebp - 9]
mov dl, 1
call fcn.00537804
mov cl, 1
mov dx, 1
mov ax, word [ebp - 0xa]
call fcn.005378d8
push ebp
call fcn.00537a78
pop ecx
inc ebx
jmp 0x537d7c
lea edx, [ebp - 0x2f]
mov eax, 0x537dc0
call fcn.004031c8
mov byte [ebp - 0x12], al
cmp byte [ebp - 0x12], 0
je 0x537ced
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
mov cl, byte [ebp - 0x2f]
xor eax, eax
mov al, byte [ebp - 0x12]
sub ecx, eax
xor edx, edx
mov dl, byte [ebp - 0x12]
inc edx
lea eax, [ebp - 0x2f]
call fcn.00402e7c
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x38]
call fcn.004052c0
mov eax, dword [ebp - 0x38]
call fcn.0040aa14
mov word [ebp - 0x1a], ax
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
mov cl, byte [ebp - 0x12]
dec ecx
mov edx, 1
lea eax, [ebp - 0x2f]
call fcn.00402e7c
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x2f]
mov cl, 0x14
call fcn.00403728
cmp byte [ebp - 0x2f], 1
jne 0x537d02
mov al, byte [ebp - 0x2e]
push eax
call sub.user32.dll_VkKeyScanA
mov word [ebp - 0xa], ax
jmp 0x537d10
push ebp
lea eax, [ebp - 0x2f]
call fcn.0053798c
pop ecx
mov word [ebp - 0xa], ax
cmp word [ebp - 0xa], 0xffff
je 0x537d7c
mov cl, 1
mov dx, word [ebp - 0x1a]
mov ax, word [ebp - 0xa]
call fcn.005378d8
push ebp
call fcn.00537a78
pop ecx
jmp 0x537d7c
mov cl, 1
mov dx, 1
mov al, 0xd
call fcn.00537814
push ebp
call fcn.00537a78
pop ecx
inc ebx
jmp 0x537d7c
mov al, byte [esi + ebx]
push eax
call sub.user32.dll_VkKeyScanA
mov word [ebp - 0xa], ax
cmp word [ebp - 0xa], 0xffff
je 0x537d74
mov cl, 1
mov dx, 1
mov ax, word [ebp - 0xa]
call fcn.005378d8
push ebp
call fcn.00537a78
pop ecx
jmp 0x537d7b
mov dword [ebp - 4], 0xfffffff3
inc ebx
cmp edi, ebx
jle 0x537d8a
cmp dword [ebp - 4], 0
je 0x537b2b
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
push ebp
call fcn.00537a78
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x537db4
lea eax, [ebp - 0x38]
call fcn.0040504c
ret