Function at 0x536220
Capabilities:
Log keystrokes via polling

Disassembly:
mov al, byte [0x73a8f0]
sub esp, 0x10
test al, al
jne 0x536232
xor al, al
add esp, 0x10
ret
mov eax, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x1c]
push edi
push ebx
push eax
push esi
call fcn.005207d0
add esp, 0xc
test eax, eax
jne 0x536254
xor edi, edi
jmp 0x53625a
mov edi, dword [eax + 0x11c]
mov eax, dword [esp + 0x24]
sub eax, 0x201
mov ecx, dword [0x74c650]
push ebp
mov ebp, dword [ecx + 0x458]
je 0x5363c4
sub eax, 3
je 0x536285
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x10
ret
test esi, esi
je 0x536292
cmp dword [esi + 0x17c], 0xe
je 0x5362d0
test edi, edi
je 0x5362da
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xb4]
test al, al
je 0x5362da
mov ecx, dword [0x74cee8]
test ecx, ecx
je 0x5362da
mov eax, dword [edi + 0x2c]
push eax
call fcn.004dc4e0
test al, al
je 0x5362da
push 0xffff0000
push 0x6e6e4c
mov ecx, 0x74cdb0
call fcn.00463940
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x10
ret
test esi, esi
je 0x536352
mov eax, dword [esi + 0x17c]
cmp eax, 0xc
jne 0x536309
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0xb4]
test al, al
jne 0x5362bc
push edi
call fcn.00534a40
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
cmp eax, 0xd
je 0x5362d0
cmp eax, 0x15
jne 0x536352
call fcn.005ffb10
mov ecx, eax
call fcn.005fe590
test eax, eax
jne 0x53627b
test edi, edi
je 0x536348
mov ecx, dword [0x74cf90]
test ecx, ecx
je 0x53633b
push edi
call fcn.00561b10
push 0x6e6e34
call fcn.0040f210
add esp, 4
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x10
ret
test edi, edi
je 0x536364
mov al, byte [edi + 0x30d]
test al, al
jne 0x5362d0
test esi, esi
je 0x53638e
cmp dword [esi + 0x17c], 7
jne 0x53638e
mov ecx, dword [esp + 0x2c]
push ebx
push ecx
push 0x204
mov eax, esi
call fcn.005359b0
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov edi, dword [esp + 0x2c]
push ebx
push edi
mov eax, esi
call fcn.00527750
add esp, 8
test al, al
jne 0x5362d0
push 0x6e6e24
call fcn.0040f210
push ebx
push edi
mov ecx, esi
call fcn.005251d0
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
call fcn.004605f0
cmp dword [eax + 0x174], 0x19
jne 0x53646d
mov eax, dword [0x74ce98]
xor ebx, ebx
xor edx, edx
cmp eax, ebx
je 0x5363e9
mov edx, dword [eax + 0x440]
cmp esi, ebx
je 0x536463
cmp dword [esi + 0x17c], 1
jne 0x536463
xor ecx, ecx
push ecx
xor eax, eax
push eax
push edx
call fcn.0051fc70
add esp, 0xc
cmp edi, ebx
je 0x536463
cmp eax, ebx
je 0x53641e
mov eax, dword [eax + 0x314]
cmp eax, ebx
je 0x53641e
mov ecx, eax
call fcn.00534a60
lea edx, [esp + 0x14]
push edx
mov ecx, edi
mov dword [esp + 0x18], 0xe
mov dword [esp + 0x1c], ebx
mov word [esp + 0x20], bx
mov word [esp + 0x22], bx
call fcn.00534a90
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], ebx
call fcn.004605f0
mov ecx, eax
call fcn.00460ab0
push ebx
push ebx
call fcn.004605f0
mov ecx, eax
call fcn.004609e0
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x10
ret
test esi, esi
je 0x5364e4
mov eax, dword [esi + 0x17c]
cmp eax, 0xf
jne 0x536495
mov ecx, dword [0x74cf3c]
test ecx, ecx
je 0x53648b
call fcn.00453c40
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x10
ret
cmp eax, 0x13
jne 0x5364b3
mov ecx, dword [0x74cf88]
test ecx, ecx
je 0x5364a9
call fcn.004735a0
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x10
ret
cmp eax, 0xe
jne 0x5364c9
push esi
call fcn.005360d0
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
cmp eax, 0xc
je 0x53627b
cmp eax, 0x14
je 0x53627b
cmp eax, 0x16
je 0x53627b
call fcn.005ffb10
mov ecx, eax
call fcn.005fe590
test eax, eax
jne 0x536531
mov eax, dword [0x74cee8]
test eax, eax
je 0x536531
mov cl, byte [eax + 0x67]
test cl, cl
je 0x536531
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xb4]
test al, al
jne 0x536531
test esi, esi
je 0x53655e
cmp dword [esi + 0x17c], 1
jne 0x536531
push edi
call fcn.00521030
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
test esi, esi
je 0x53655e
cmp dword [esi + 0x17c], 0xd
jne 0x53655e
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0xb4]
test al, al
jne 0x53655e
push edi
call fcn.00521130
add esp, 4
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
test edi, edi
je 0x53658c
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0xb4]
test al, al
je 0x53658c
mov ecx, dword [0x74cee8]
test ecx, ecx
je 0x53658c
mov eax, dword [edi + 0x2c]
push eax
call fcn.004dc4e0
test al, al
jne 0x5362bc
test esi, esi
je 0x5365a8
mov eax, dword [esi + 0x17c]
cmp eax, 0xd
je 0x5362d0
cmp eax, 0x12
je 0x53627b
test edi, edi
je 0x5365ba
mov al, byte [edi + 0x30d]
test al, al
jne 0x5362d0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
jge 0x5365f2
test esi, esi
je 0x5365da
cmp dword [esi + 0x17c], 7
je 0x53627b
mov eax, dword [esp + 0x2c]
push ebx
push eax
mov eax, esi
call fcn.00520840
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
call fcn.004605f0
cmp dword [eax + 0x170], 0x10
jne 0x536618
mov ecx, dword [esp + 0x2c]
push ebx
push ecx
mov eax, esi
call fcn.00520920
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
push 0x10
call edi
test ax, ax
push ebx
jge 0x536638
mov edx, dword [esp + 0x30]
push edx
push esi
call fcn.00520f70
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x30]
push eax
push 0x201
mov eax, esi
call fcn.005359b0
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret