Function at 0x100453bd
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x1006a4a4
call fcn.10069380
sub esp, 0x80
cmp byte [ecx], 0
push ebx
push esi
push edi
je 0x10045649
push dword [ebp - 0x38]
movdqa xmm0, xmmword [0x1000c620]
lea eax, [ebp - 0x60]
push eax
xor ebx, ebx
lea eax, [ebp - 0x70]
push eax
push ebx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], ebx
movdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
call fcn.100124d5
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], 3
mov dword [ebp - 0x20], ebx
jmp 0x10045422
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x60], 0x3f36fc75
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10045414
mov dword [ebp - 0x20], ebx
jmp 0x10045621
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x2c], 0x2625aa9c
mov dword [ebp - 0x18], ebx
jmp 0x10045614
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x1c], 0xee85ec41
mov dword [ebp - 0x28], 0x89ced66e
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], 0x5f19
cmp dword [ebp - 0x30], 0x62a7
jle 0x100454de
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
lea eax, [edi + esi]
xor eax, ecx
lea ecx, [ebp - 0x88]
cdq
push edx
push eax
call fcn.1000da20
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1004549b
mov eax, dword [eax]
push eax
call fcn.100540b6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x88]
call fcn.100109ad
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x1a0b
jl 0x1004547e
inc edi
cmp edi, 0x5541
jl 0x10045479
inc esi
cmp esi, 0x3fa4
jl 0x10045477
push 0xcb5
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov dword [ebp - 0x24], ebx
jmp 0x100454ed
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x50], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x100454e3
cmp dword [ebp - 0x30], 0x5bf2
jge 0x10045507
push 0x1000bb3c
call fcn.100540b6
pop ecx
mov dword [ebp - 4], ebx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
cmp eax, 0x30467731
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esi + edi*4], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 0xfffb
setne cl
sub ecx, 0xcfcb8f1f
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
inc eax
add ecx, eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
setle dl
xor eax, eax
cmp dword [esi + edi*4], edx
setg al
mov dword [ebp - 0x5c], eax
cmp eax, dword [ebp - 0x28]
jl 0x100455aa
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x100455c7
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
jmp 0x100455c7
mov dword [ebp - 0x1c], 0xfffffffd
jmp 0x100455c1
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
cmp dword [eax + ecx*4], ebx
jne 0x100455c7
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffec
jle 0x100455b3
cmp dword [ebp - 0x5c], ebx
je 0x100455e1
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
cmp dword [eax], ebx
je 0x100455e1
xor ecx, ecx
inc ecx
jmp 0x100455e3
mov ecx, ebx
xor eax, eax
cmp ecx, 0xe255
mov ecx, dword [ebp - 0x2c]
setg al
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
imul eax, ecx, 0x27fd
test eax, eax
jne 0x1004560b
cmp dword [ebp - 0x38], ebx
jne 0x1004560b
mov eax, ebx
jmp 0x1004560e
xor eax, eax
inc eax
mov dword [ebp - 0x5c], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x10045446
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jle 0x10045430
lea ecx, [ebp - 0x44]
call fcn.100106a3
push ebx
push 0x1493
push 0xaf0
push 0xd86
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret