Function at 0x1004b5a0
Capabilities:
Log keystrokes via polling

Disassembly:
cmp byte [0x10135e9c], 0
push ebx
push esi
mov esi, dword [0x10184138]
push edi
jne 0x1004b783
test esi, esi
je 0x1004b77c
mov ebx, dword [esi + 0x15e4]
xor ecx, ecx
test ebx, ebx
jle 0x1004b77c
mov edi, dword [esi + 0x15e0]
sub edi, 0x1010ed90
nop word [eax + eax]
mov edx, dword [edi + ecx*4 + 0x1010ed90]
test edx, edx
je 0x1004b773
movd xmm0, dword [edx + 0x2b8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x2a4]
mov dword [ecx*4 + 0x1010ed90], eax
mov eax, dword [edx + 0x2a8]
mov dword [ecx*4 + 0x10110cd0], eax
mov eax, dword [edx + 0x2b0]
movss dword [ecx*4 + 0x10114b50], xmm0
movd xmm0, dword [edx + 0x2bc]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x10112c10], eax
mov eax, dword [edx + 0x36c]
mov dword [ecx*4 + 0x10124550], eax
mov eax, dword [edx + 0x370]
mov dword [ecx*4 + 0x10126490], eax
movss dword [ecx*4 + 0x10116a90], xmm0
movd xmm0, dword [edx + 0x2c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x310]
mov dword [ecx*4 + 0x101283d0], eax
mov eax, dword [edx + 0x31c]
mov dword [ecx*4 + 0x1012a310], eax
mov eax, dword [edx + 0x328]
movss dword [ecx*4 + 0x101189d0], xmm0
movd xmm0, dword [edx + 0x2c4]
cvtdq2ps xmm0, xmm0
mov dword [ecx*4 + 0x1015cfa8], eax
mov eax, dword [edx + 0x3f4]
mov dword [ecx*4 + 0x1015eee8], eax
mov eax, dword [edx + 0x3f8]
mov dword [ecx*4 + 0x10160e28], eax
movss dword [ecx*4 + 0x1011a910], xmm0
movd xmm0, dword [edx + 0x2c8]
cvtdq2ps xmm0, xmm0
mov eax, dword [edx + 0x30c]
mov dword [ecx*4 + 0x10137de0], eax
mov eax, dword [edx + 0x2b4]
mov dword [ecx*4 + 0x10139d20], eax
mov eax, dword [edx + 0x254]
movss dword [ecx*4 + 0x1011c850], xmm0
movd xmm0, dword [edx + 0x2cc]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1011e790], xmm0
movd xmm0, dword [edx + 0x364]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x101206d0], xmm0
movd xmm0, dword [edx + 0x368]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x10122610], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1005e010]
mov eax, dword [edx + 0x318]
mov dword [ecx*4 + 0x1013fae0], eax
cvtpd2ps xmm0, xmm0
movss dword [ecx*4 + 0x1013bc60], xmm0
movd xmm0, dword [edx + 0x4f4]
cvtdq2ps xmm0, xmm0
movss dword [ecx*4 + 0x1013dba0], xmm0
inc ecx
cmp ecx, ebx
jl 0x1004b5e0
mov byte [0x10135e9c], 1
cmp byte [0x10135e98], 0
je 0x1004b85f
cmp byte [0x10135e93], 0
je 0x1004b960
test esi, esi
je 0x1004b853
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004b853
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004b846
mov dword [eax + 0x2a4], 0
mov dword [eax + 0x2a8], 0
mov dword [eax + 0x2b0], 0
mov dword [eax + 0x2b8], 0
mov dword [eax + 0x2bc], 0
mov dword [eax + 0x2c0], 0
mov dword [eax + 0x2c4], 0
mov dword [eax + 0x2c8], 0
mov dword [eax + 0x2cc], 0
mov dword [eax + 0x364], 0
mov dword [eax + 0x368], 0
mov dword [eax + 0x36c], 0
mov dword [eax + 0x370], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004b7b3
mov byte [0x10135e93], 0
jmp 0x1004b960
cmp byte [0x10135e93], 0
jne 0x1004b960
test esi, esi
je 0x1004b959
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004b959
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004b94c
mov eax, dword [ecx*4 + 0x1010ed90]
mov dword [edx + 0x2a4], eax
mov eax, dword [ecx*4 + 0x10110cd0]
mov dword [edx + 0x2a8], eax
mov eax, dword [ecx*4 + 0x10112c10]
mov dword [edx + 0x2b0], eax
cvttss2si eax, dword [ecx*4 + 0x10114b50]
mov dword [edx + 0x2b8], eax
cvttss2si eax, dword [ecx*4 + 0x10116a90]
mov dword [edx + 0x2bc], eax
cvttss2si eax, dword [ecx*4 + 0x101189d0]
mov dword [edx + 0x2c0], eax
cvttss2si eax, dword [ecx*4 + 0x1011a910]
mov dword [edx + 0x2c4], eax
cvttss2si eax, dword [ecx*4 + 0x1011c850]
mov dword [edx + 0x2c8], eax
cvttss2si eax, dword [ecx*4 + 0x1011e790]
mov dword [edx + 0x2cc], eax
cvttss2si eax, dword [ecx*4 + 0x101206d0]
mov dword [edx + 0x364], eax
cvttss2si eax, dword [ecx*4 + 0x10122610]
mov dword [edx + 0x368], eax
mov eax, dword [ecx*4 + 0x10124550]
mov dword [edx + 0x36c], eax
mov eax, dword [ecx*4 + 0x10126490]
mov dword [edx + 0x370], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004b882
mov byte [0x10135e93], 1
cmp byte [0x10135e90], 0
je 0x1004b9ad
cmp byte [0x10135e91], 0
je 0x1004b9ee
test esi, esi
je 0x1004b9a4
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004b9a4
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004b99b
mov dword [eax + 0x328], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004b984
mov byte [0x10135e91], 0
jmp 0x1004b9ee
cmp byte [0x10135e91], 0
jne 0x1004b9ee
test esi, esi
je 0x1004b9e7
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004b9e7
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004b9de
mov eax, dword [ecx*4 + 0x1015cfa8]
mov dword [edx + 0x328], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004b9c4
mov byte [0x10135e91], 1
cmp byte [0x10135e9d], 0
je 0x1004ba3b
cmp byte [0x10135e9e], 0
je 0x1004ba7e
test esi, esi
je 0x1004ba32
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004ba32
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004ba29
mov dword [eax + 0x258], 1
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004ba12
mov byte [0x10135e9e], 0
jmp 0x1004ba7e
cmp byte [0x10135e9e], 0
jne 0x1004ba7e
test esi, esi
je 0x1004ba77
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004ba77
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004ba6e
cvttss2si eax, dword [ecx*4 + 0x10135ea0]
mov dword [edx + 0x258], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004ba52
mov byte [0x10135e9e], 1
cmp byte [0x10135e99], 0
je 0x1004bacb
cmp byte [0x1015cfa6], 0
je 0x1004bb0c
test esi, esi
je 0x1004bac2
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bac2
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004bab9
mov dword [eax + 0x2b4], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004baa2
mov byte [0x1015cfa6], 0
jmp 0x1004bb0c
cmp byte [0x1015cfa6], 0
jne 0x1004bb0c
test esi, esi
je 0x1004bb05
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bb05
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004bafc
mov eax, dword [ecx*4 + 0x10139d20]
mov dword [edx + 0x2b4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bae2
mov byte [0x1015cfa6], 1
cmp byte [0x1015cfa7], 0
je 0x1004bb59
cmp byte [0x101840fc], 0
je 0x1004bb9a
test esi, esi
je 0x1004bb50
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bb50
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004bb47
mov dword [eax + 0x30c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bb30
mov byte [0x101840fc], 0
jmp 0x1004bb9a
cmp byte [0x101840fc], 0
jne 0x1004bb9a
test esi, esi
je 0x1004bb93
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bb93
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004bb8a
mov eax, dword [ecx*4 + 0x10137de0]
mov dword [edx + 0x30c], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bb70
mov byte [0x101840fc], 1
test esi, esi
je 0x1004bbd0
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bbd0
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004bbc7
mov dword [eax + 0x35c], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bbb0
mov eax, dword [0x101840f8]
test eax, eax
jne 0x1004bc65
test esi, esi
je 0x1004bc10
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bc10
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004bc07
mov dword [eax + 0x308], 0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bbf0
mov edx, dword [0x1010ecc4]
cmp byte [0x10135e92], 0
jne 0x1004bc43
test edx, edx
je 0x1004bc3c
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
movd xmm0, dword [eax + 0x148]
cvtdq2ps xmm0, xmm0
movss dword [0x101840ac], xmm0
mov byte [0x10135e92], 1
cmp byte [0x10135e9a], 0
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
je 0x1004bce6
mov dword [eax + 0x148], 0xffffffff
jmp 0x1004bcf4
cmp eax, 1
jne 0x1004bcab
test esi, esi
je 0x1004bc10
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bc10
nop dword [eax + eax]
mov eax, dword [esi + 0x15e0]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004bc9d
movss xmm0, dword [0x1015cfa0]
movss dword [eax + 0x308], xmm0
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bc80
jmp 0x1004bc10
cmp eax, 2
jne 0x1004bc10
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x1010ecc4]
mov esi, dword [0x10184138]
test ax, ax
jns 0x1004bc16
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x138], 2
jmp 0x1004bc16
cvttss2si ecx, dword [0x101840ac]
mov dword [eax + 0x148], ecx
mov eax, dword [edx + 0x18]
mov byte [0x1015cfa5], 1
mov eax, dword [eax + 0x10]
mov dword [eax + 0x150], 0
cmp byte [0x1015cfa4], 0
je 0x1004bd1e
movss xmm0, dword [0x1005dae8]
jmp 0x1004bd26
movss xmm0, dword [0x1005da8c]
movss dword [0x383b3084], xmm0
cmp byte [0x10135e9f], 0
je 0x1004bd73
test esi, esi
je 0x1004bda6
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bda6
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004bd68
mov eax, dword [0x10135e94]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bd50
jmp 0x1004bda6
test esi, esi
je 0x1004bda6
xor ecx, ecx
cmp dword [esi + 0x15e4], ecx
jle 0x1004bda6
mov eax, dword [esi + 0x15e0]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004bd9d
cvttss2si eax, dword [ecx*4 + 0x1013dba0]
mov dword [edx + 0x4f4], eax
inc ecx
cmp ecx, dword [esi + 0x15e4]
jl 0x1004bd81
cmp byte [0x10135e9b], 0
je 0x1004bdef
test esi, esi
je 0x1004be2a
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x1004be2a
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x1004bde2
mov ecx, 0x100eecfc
call fcn.100476e0
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x1004bdc5
pop edi
pop esi
pop ebx
ret
test esi, esi
je 0x1004be2a
xor edi, edi
cmp dword [esi + 0x15e4], edi
jle 0x1004be2a
nop dword [eax]
mov eax, dword [esi + 0x15e0]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x1004be21
movss xmm0, dword [edi*4 + 0x1013bc60]
call fcn.10055550
mov dword [ebx + 0x254], eax
inc edi
cmp edi, dword [esi + 0x15e4]
jl 0x1004be00
pop edi
pop esi
pop ebx
ret