Function at 0x5359b0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x3c
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
mov ebp, dword [esp + 0x4c]
push esi
mov esi, eax
test esi, esi
push edi
je 0x5359e8
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
sub ebx, eax
sub ebp, ecx
push ebx
push ebp
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
call fcn.00610f10
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0x18], ecx
jmp 0x5359f0
xor edi, edi
xor eax, eax
mov dword [esp + 0x18], eax
call fcn.005ffb10
mov ecx, eax
call fcn.005fe590
test eax, eax
mov dword [esp + 0x54], eax
je 0x535eae
mov ecx, eax
call fcn.00613250
test esi, esi
mov edx, dword [eax + 0x11c]
mov dword [esp + 0x10], edx
je 0x535a9c
cmp dword [esi + 0x17c], 2
jne 0x535a9c
cmp dword [esp + 0x18], 0xd
jne 0x535a9c
test edi, edi
mov ecx, dword [0x74cdec]
jne 0x535a3b
push 1
jmp 0x535a3d
push 0
push 0xd
call fcn.004f6ca0
test eax, eax
je 0x535a9c
mov ecx, dword [esp + 0x10]
cmp eax, ecx
je 0x535a9c
mov eax, dword [eax + 0x2cc]
mov ecx, dword [ecx + 0x2cc]
mov edx, dword [eax + 0x24]
cmp edx, dword [ecx + 0x24]
jne 0x535a9c
mov ecx, dword [0x74cdec]
xor eax, eax
test edi, edi
sete al
push eax
push 0xd
call fcn.0048f700
mov esi, dword [eax]
mov edi, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
sub ebx, edi
push ebx
sub ebp, eax
push ebp
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00610f10
mov edx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x54]
call fcn.00613250
test esi, esi
mov ecx, dword [eax + 0x114]
mov edx, dword [eax + 0x118]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
je 0x535c40
cmp dword [esi + 0x17c], 7
jne 0x535ae0
mov ecx, dword [esp + 0x54]
call fcn.00613250
call fcn.005234f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov ecx, dword [esi + 0x1d0]
mov eax, ecx
imul eax, dword [esp + 0x1c]
cdq
sub eax, edx
mov edi, eax
mov eax, ecx
mov ecx, dword [esi + 0x1d4]
cdq
sub eax, edx
sar eax, 1
sar edi, 1
sub eax, edi
add ebp, eax
mov eax, ecx
imul eax, dword [esp + 0x20]
cdq
sub eax, edx
mov edi, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
sar edi, 1
sub eax, edi
add ebx, eax
push ebx
push ebp
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.00610f10
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add ecx, edi
add edx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x3c], ecx
push eax
mov ecx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], edx
call fcn.00611a10
test al, al
je 0x5360bb
mov ebx, dword [esp + 0x10]
push esi
push ebx
call fcn.00527050
add esp, 8
test al, al
je 0x5360b1
push esi
call fcn.00520f20
add esp, 4
test al, al
je 0x5360b1
mov ebp, dword [esp + 0x18]
push ebp
push edi
mov ecx, esi
call fcn.006113b0
test eax, eax
mov dword [esp + 0x10], eax
je 0x535d62
mov edx, eax
cmp dword [ebx + 0x54], 2
mov ebp, dword [edx + 0x11c]
jne 0x535bf1
cmp word [ebx + 0x5e], 0xd
jne 0x535bf1
test ebp, ebp
je 0x535bf1
mov ecx, dword [0x74cdec]
xor eax, eax
cmp word [ebx + 0x5c], ax
sete al
push eax
push 0xd
call fcn.004f6ca0
test eax, eax
je 0x535bf1
mov eax, dword [eax + 0x2cc]
mov ecx, dword [ebp + 0x2cc]
mov edx, dword [eax + 0x24]
cmp edx, dword [ecx + 0x24]
je 0x5360bb
cmp dword [esi + 0x17c], 4
je 0x5360b1
cmp ebp, ebx
jne 0x535c7a
mov edi, dword [esp + 0x54]
mov ecx, edi
call fcn.00613250
push eax
mov ecx, ebp
call fcn.00526050
mov ecx, edi
call fcn.006132a0
cmp dword [esi + 0x17c], 0x11
jne 0x535c36
mov ecx, dword [0x74cf78]
test ecx, ecx
je 0x535c36
push 1
call fcn.00561290
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp + 0x2cc]
cmp dword [ecx + 0x28], 1
jbe 0x535e55
mov ecx, dword [esp + 0x54]
mov ebx, dword [ebp + 0x60]
call fcn.00613250
push eax
mov ecx, ebp
call fcn.00523bf0
cmp eax, ebx
je 0x535e55
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x50]
test al, al
je 0x5360b1
mov eax, dword [ebx + 0x30]
cmp eax, 0x366
jne 0x535d01
movzx edx, word [ebp + 0x279]
mov ecx, dword [ebp + 0x2cc]
cmp edx, dword [ecx + 0x1a4]
jae 0x535d01
mov edx, dword [esi + 0x17c]
mov ecx, 1
cmp edx, ecx
jne 0x535d06
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebx + 0x2c]
mov edx, dword [0x739498]
mov dword [esp + 0x44], ecx
mov ecx, 0x739498
mov byte [esp + 0x34], 0x11
mov byte [esp + 0x35], 0xd
mov dword [esp + 0x48], eax
call dword [edx + 8]
mov ecx, dword [0x74c754]
push 0
push 0x18
lea edx, [esp + 0x3c]
mov dword [esp + 0x3e], eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
mov ecx, 1
cmp dword [ebp + 0x30], eax
jne 0x535d35
mov al, byte [ebp + 0x64]
cmp al, byte [ebx + 0x64]
jne 0x535d35
mov edx, dword [ebx + 0x2cc]
cmp dword [edx + 0x28], ecx
jbe 0x535d35
mov eax, dword [esp + 0x54]
push ebp
push ebx
push eax
call fcn.005246d0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edx, dword [ebx + 0x2cc]
cmp dword [edx + 0x28], ecx
jbe 0x535da5
mov ecx, dword [esp + 0x54]
mov ebp, dword [ebx + 0x60]
call fcn.00613250
push eax
mov ecx, ebx
call fcn.00523bf0
cmp eax, ebp
je 0x535da5
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
mov eax, dword [ebx + 0x2cc]
cmp dword [eax + 0x28], 1
jbe 0x535da9
cmp dword [esi + 0x17c], 4
push ebx
push ebp
push edi
push esi
jne 0x535d90
mov ecx, dword [esp + 0x64]
push ecx
call fcn.00535950
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edx, dword [esp + 0x64]
push edx
call fcn.005247a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov ebp, dword [esp + 0x18]
cmp dword [esi + 0x17c], 2
jne 0x535e06
mov ecx, ebx
call fcn.0051f360
test al, al
je 0x535de4
mov eax, dword [esi + 0x18c]
push eax
call fcn.0051f340
add esp, 4
test al, al
je 0x5360b1
mov ecx, dword [ebx + 0x2cc]
mov ebp, dword [ecx + 0x1a0]
xor edi, edi
jmp 0x535e06
mov edx, dword [ebx + 0x2cc]
mov eax, dword [edx + 0x1a0]
mov ecx, dword [esi + 0x18c]
cmp eax, ecx
jne 0x5360b1
mov edi, dword [esi + 0x188]
mov ebp, ecx
mov eax, dword [esi + 0x17c]
cmp eax, 4
jne 0x535e25
push ebx
push ebp
push edi
push esi
call fcn.005357a0
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
cmp eax, 5
je 0x5360b1
mov ecx, dword [ebx + 0x2cc]
mov edx, dword [ecx + 0x250]
push edx
call fcn.0040f660
mov ecx, dword [esi + 0x180]
mov eax, dword [esi + 0x17c]
add esp, 4
mov dword [esp + 0x2c], ecx
jmp 0x535e63
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x2c], eax
test esi, esi
mov dword [esp + 0x28], eax
mov word [esp + 0x30], di
mov word [esp + 0x32], bp
je 0x535e8b
lea edx, [esp + 0x28]
push edx
mov ecx, ebx
call fcn.00521280
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x535ea4
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.00521280
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
mov ebx, dword [esp + 0x18]
push ebx
push edi
mov ecx, esi
call fcn.00610e10
test al, al
je 0x5360bb
push ebx
push edi
mov ecx, esi
call fcn.006113b0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x5360bb
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x50]
test al, al
je 0x5360b1
test esi, esi
je 0x535f1b
mov eax, dword [esi + 0x17c]
cmp eax, 7
jne 0x535f12
cmp dword [esp + 0x50], 0x201
sete cl
mov eax, ebx
call fcn.00520a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
cmp eax, 9
je 0x5360b1
cmp dword [esi + 0x17c], 2
mov edi, dword [ebx + 0x11c]
jne 0x535fcf
cmp dword [esi + 0x18c], 0xb
jne 0x535f78
mov eax, dword [edi + 0x2c]
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], 0xa
mov dword [esp + 0x24], eax
call fcn.00526af0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x535f78
lea ecx, [ebp + 0x1a8]
call fcn.0061e3d0
test eax, eax
ja 0x5360b1
mov ecx, dword [ebp + 0x6c]
push 1
push 0
call fcn.005f01f0
cmp dword [esi + 0x17c], 2
jne 0x535fcf
cmp dword [esi + 0x18c], 0xc
jne 0x535fcf
mov edx, dword [edi + 0x2c]
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], 0xb
mov dword [esp + 0x24], edx
mov word [esp + 0x2a], 0
call fcn.00526af0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x535fcf
mov ecx, dword [ebp + 0x6c]
call fcn.0056d470
test eax, eax
jg 0x5360b1
mov ecx, dword [ebp + 0x6c]
push 1
push 0
call fcn.005f01f0
xor eax, eax
mov dword [esp + 0x2c], eax
mov word [esp + 0x30], ax
mov word [esp + 0x32], ax
cmp dword [esi + 0x17c], 4
mov dword [esp + 0x28], 3
mov ebp, dword [edi + 0x60]
jne 0x536063
push ebx
mov ecx, edi
call fcn.00523bf0
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x14]
push edx
mov ecx, edi
mov ebp, eax
call fcn.00453620
mov ecx, edi
call fcn.00525e20
mov eax, dword [edi + 0x2c]
mov ecx, dword [0x74c650]
mov byte [esp + 0x34], 0x11
mov byte [esp + 0x35], 9
mov dword [esp + 0x48], eax
mov edx, dword [ecx + 0x458]
mov eax, dword [edx + 0x28]
mov edx, dword [0x739498]
mov ecx, 0x739498
mov dword [esp + 0x44], eax
call dword [edx + 8]
mov ecx, dword [0x74c754]
push 0
push 0x18
lea edx, [esp + 0x3c]
mov dword [esp + 0x3e], eax
mov eax, dword [ecx]
push edx
call dword [eax + 0x10]
mov ebx, dword [esp + 0x10]
cmp dword [edi + 0x60], ebp
jne 0x536075
cmp dword [esi + 0x17c], 4
je 0x536075
mov al, 1
jmp 0x536077
xor al, al
push 1
push eax
lea eax, [esp + 0x30]
push eax
push ebp
push ebx
mov ecx, edi
call fcn.00534fd0
cmp dword [esi + 0x17c], 0x11
jne 0x5360a2
mov ecx, dword [0x74cf78]
test ecx, ecx
je 0x5360a2
push 0
call fcn.00561290
mov ecx, dword [0x74b1f0]
push ecx
call fcn.0040f660
add esp, 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3c
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x3c
ret