Function at 0x1001cca0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10179d70
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
sub esp, 0x68
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, dword [ebx + 8]
cmp byte [0x1024a39c], 0
je 0x1001d7b2
mov ecx, dword [0x10213bfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10249b98]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push eax
call edx
mov al, byte [0x10210574]
mov byte [ebp - 0x1a], al
mov al, byte [0x102454b0]
mov byte [ebp - 0x19], al
mov eax, dword [0x10249c14]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x1001d768
mov eax, dword [0x10249c10]
test eax, eax
jne 0x1001cd58
mov edx, 0xe80c2f78
mov ecx, 0x101e7481
call fcn.10004820
mov esi, eax
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov dword [0x10249c10], eax
mov ecx, dword [ebp - 0x2c]
cmp dword [ecx + eax], 0
jle 0x1001d768
push dword [0x1024a390]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call esi
test ax, ax
je 0x1001cd9a
cmp byte [0x102454b0], 0
jne 0x1001cd9a
cmp byte [0x10210574], 0
jne 0x1001cd9a
cmp byte [0x102100c4], 0
jne 0x1001cd9a
mov byte [0x102454b0], 1
push dword [0x1024a388]
call esi
test ax, ax
je 0x1001cdc3
cmp byte [0x10210574], 0
jne 0x1001cdc3
mov byte [0x102454b0], 0
lea ecx, [edi + 0xc]
lea eax, [ebp - 0x4c]
push eax
call fcn.10113730
push dword [0x1024a398]
call esi
test ax, ax
je 0x1001d0b8
cmp byte [0x102454b0], 0
jne 0x1001d0b8
cmp byte [0x10210574], 0
jne 0x1001d0b8
cmp byte [0x102100c4], 0
jne 0x1001d0b8
mov ecx, dword [0x102454e8]
mov dword [ebp - 0x2c], ecx
mov esi, dword [0x102454e4]
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d0b8
or ecx, 0xffffffff
mov dword [ebp - 0x28], ecx
movss xmm3, dword [0x10209514]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
nop
mov ecx, dword [ebp - 0x2c]
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x20]
jbe 0x1001d7c8
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + esi + 0x18]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + esi + 0x1c]
sub ecx, dword [eax + esi + 0x18]
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
mov eax, dword [ebp - 0x2c]
movss xmm1, dword [eax + 0x1c]
subss xmm1, dword [ebx + 0xc]
movss xmm2, dword [eax + 0x20]
subss xmm2, dword [ebx + 0x10]
movss xmm0, dword [eax + 0x24]
subss xmm0, dword [ebx + 0x14]
mov dword [ebp - 0x50], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
movss dword [ebp - 0x2c], xmm2
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x50], xmm0
comiss xmm3, dword [ebp - 0x50]
jbe 0x1001cf50
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + esi + 0x1c]
mov esi, dword [eax + esi + 0x18]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
movss xmm1, dword [esi + 0x1c]
subss xmm1, dword [ebx + 0xc]
movss xmm2, dword [esi + 0x20]
subss xmm2, dword [ebx + 0x10]
movss xmm0, dword [esi + 0x24]
subss xmm0, dword [ebx + 0x14]
mov dword [ebp - 0x40], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
movss dword [ebp - 0x2c], xmm2
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x40], xmm0
movss xmm3, dword [ebp - 0x40]
inc dword [ebp - 0x20]
add dword [ebp - 0x24], 0x24
mov eax, dword [0x102454e8]
mov dword [ebp - 0x2c], eax
mov ecx, eax
mov esi, dword [0x102454e4]
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x20], eax
jb 0x1001ce40
cmp dword [ebp - 0x28], 0xffffffff
je 0x1001d7b2
mov ecx, dword [ebp - 0x2c]
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, dword [ebp - 0x28]
cmp eax, ecx
jbe 0x1001d7c8
lea eax, [ecx + ecx*8]
shl eax, 2
mov dword [ebp - 0x24], eax
mov ecx, dword [eax + esi + 0x1c]
mov esi, dword [eax + esi + 0x18]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d0b8
movss xmm1, dword [esi + 0x1c]
subss xmm1, dword [ebx + 0xc]
movss xmm2, dword [esi + 0x20]
subss xmm2, dword [ebx + 0x10]
movss xmm0, dword [esi + 0x24]
subss xmm0, dword [ebx + 0x14]
mov dword [ebp - 0x50], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
movss dword [ebp - 0x2c], xmm2
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [0x10211c60]
comiss xmm0, dword [ebp - 0x50]
jbe 0x1001d0b8
mov esi, dword [0x102454e4]
mov ecx, dword [0x102454e8]
sub ecx, esi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ebp - 0x28]
jbe 0x1001d7c8
mov eax, dword [ebp - 0x24]
add esi, 0x18
add eax, esi
push eax
lea ecx, [ebp - 0x40]
call fcn.10020250
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
mov ecx, 0x102454b4
call fcn.100212a0
lea ecx, [ebp - 0x40]
call fcn.100208c0
mov byte [0x10213c27], 1
cmp byte [0x10211c64], 0
je 0x1001d0af
mov byte [0x10213c26], 1
mov byte [0x10213c25], 1
jmp 0x1001d0c5
cmp byte [0x10213c27], 0
je 0x1001d1fc
mov esi, dword [0x102454b4]
mov ecx, dword [0x102454b8]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
movss xmm1, dword [ebx + 0xc]
subss xmm1, dword [esi + 0x1c]
movss xmm2, dword [ebx + 0x10]
subss xmm2, dword [esi + 0x20]
movss xmm0, dword [ebx + 0x14]
subss xmm0, dword [esi + 0x24]
mov dword [ebp - 0x50], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
movss dword [ebp - 0x2c], xmm2
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [0x102091b4]
comiss xmm0, dword [ebp - 0x50]
jb 0x1001d147
mov byte [0x10213c27], 0
mov esi, dword [0x102454b4]
mov ecx, dword [0x102454b8]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
movss xmm0, dword [ebx + 0xc]
subss xmm0, dword [esi + 0x1c]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebx + 0x10]
subss xmm0, dword [esi + 0x20]
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [edi + 0x10]
mulss xmm0, dword [0x10209178]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x10209300]
movaps xmm0, xmm1
call fcn.10177c70
movaps xmm1, xmm0
shufpd xmm1, xmm0, 1
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm2, xmm1
mulss xmm2, dword [ebp - 0x2c]
movaps xmm0, xmm3
mulss xmm0, dword [ebp - 0x28]
addss xmm2, xmm0
mulss xmm3, dword [ebp - 0x2c]
mulss xmm1, dword [ebp - 0x28]
subss xmm3, xmm1
mulss xmm2, dword [0x102095b4]
movss dword [edi + 0x24], xmm2
mulss xmm3, dword [0x102093c4]
movss dword [edi + 0x28], xmm3
movss xmm2, dword [0x102091b4]
mov al, byte [0x10213c26]
test al, al
je 0x1001d2d8
xor eax, eax
mov dword [edi + 0x44], eax
mov ecx, dword [0x102454b8]
sub ecx, dword [0x102454b4]
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
mov eax, dword [0x102454b4]
movss xmm1, dword [eax + 4]
lea esi, [edi + 0xc]
movss xmm0, dword [eax]
subss xmm0, dword [esi]
subss xmm1, dword [edi + 0x10]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
mov dword [ebp - 0x34], 0
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10004710
comiss xmm2, xmm0
ja 0x1001d283
cmp byte [0x10211c64], 0
jne 0x1001d28a
mov byte [0x10213c26], 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.10113730
movss xmm1, dword [0x10209290]
divss xmm1, dword [0x10211c5c]
movaps xmm0, xmm1
mulss xmm0, dword [ebp - 0x3c]
addss xmm0, dword [esi]
movss dword [esi], xmm0
mulss xmm1, dword [ebp - 0x38]
addss xmm1, dword [edi + 0x10]
movss dword [edi + 0x10], xmm1
mov ecx, dword [0x10213bfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
push esi
call eax
mov al, byte [0x10213c26]
cmp byte [0x10213c25], 0
je 0x1001d430
test al, al
jne 0x1001d430
cmp byte [0x10213c27], al
jne 0x1001d430
mov ecx, dword [0x102454b4]
mov edx, dword [0x102454b8]
cmp ecx, edx
je 0x1001d430
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
movss xmm1, dword [ebx + 0xc]
subss xmm1, dword [ecx + 0x1c]
movss xmm2, dword [ebx + 0x10]
subss xmm2, dword [ecx + 0x20]
movss xmm0, dword [ebx + 0x14]
subss xmm0, dword [ecx + 0x24]
mov dword [ebp - 0x50], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
movss dword [ebp - 0x2c], xmm2
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x50], xmm0
movss xmm2, dword [0x102091b4]
comiss xmm2, dword [ebp - 0x50]
jbe 0x1001d430
mov esi, dword [0x102454b4]
mov ecx, dword [0x102454b8]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1001d7cd
movss xmm1, dword [esi + 4]
movss xmm0, dword [esi]
subss xmm0, dword [edi + 0xc]
subss xmm1, dword [edi + 0x10]
mov dword [ebp - 0x50], 0
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
sqrtss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x50], xmm0
comiss xmm2, dword [ebp - 0x50]
ja 0x1001d3e9
cmp byte [0x10211c64], 0
jne 0x1001d430
mov byte [0x10210574], 1
mov ecx, dword [0x1021057c]
cmp ecx, 0x102454b4
je 0x1001d424
mov esi, dword [0x102454b4]
mov edx, dword [0x102454b8]
sub edx, esi
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.100212a0
mov byte [0x10213c25], 0
jmp 0x1001d7b2
push dword [0x1024a38c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001d4bf
cmp byte [0x10210574], 0
je 0x1001d4bf
cmp byte [0x102454b0], 0
jne 0x1001d4bf
mov byte [0x10213c27], 0
mov byte [0x10213c26], 0
mov eax, dword [0x1021057c]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x10210578]
cmp ecx, edx
jbe 0x1001d7cd
lea eax, [edx + edx*4]
movss xmm1, dword [esi + eax*8]
lea eax, [edx + edx*4]
movss xmm0, dword [esi + eax*8 + 4]
movss dword [edi + 0xc], xmm1
movss dword [edi + 0x10], xmm0
mov dword [edi + 0x14], 0
mov byte [0x10210574], 0
mov dword [0x10210578], 0
cmp byte [ebp - 0x19], 0
je 0x1001d626
mov eax, dword [0x1024a23c]
mov esi, dword [eax + 0x1c]
dec esi
mov ecx, dword [0x10213bc0]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1024aef0]
cmp eax, dword [ecx + 4]
jle 0x1001d525
push 0x1024aef0
call fcn.10177088
add esp, 4
cmp dword [0x1024aef0], 0xffffffff
jne 0x1001d525
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10007a50
mov dword [0x1024aef4], eax
push 0x1024aef0
call fcn.10177037
add esp, 4
push esi
push 0
call dword [0x1024aef4]
mov ecx, dword [0x10249c14]
mov dword [ebp - 0x2c], ecx
mov eax, dword [0x10249ba8]
test eax, eax
jne 0x1001d571
mov edx, 0xe80c2f78
mov ecx, 0x101e73c5
call fcn.10004820
mov esi, eax
mov edx, 0xc10bf213
mov ecx, 0x101e73d1
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov dword [0x10249ba8], eax
mov ecx, dword [ebp - 0x2c]
movq xmm0, qword [ecx + eax]
movq qword [ebp - 0x3c], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [ebp - 0x34], eax
movss xmm0, dword [edi + 0xc]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [edi + 0x10]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [edi + 0x24]
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [edi + 0x28]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [edi + 0x2c]
movss dword [ebp - 0x68], xmm0
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x64], eax
movzx eax, word [edi + 0x44]
mov word [ebp - 0x60], ax
movzx eax, word [edi + 0x46]
mov word [ebp - 0x5e], ax
movss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x5c], xmm0
movss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x58], xmm0
movss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x54], xmm0
mov eax, dword [0x102454b8]
cmp eax, dword [0x102454bc]
je 0x1001d617
movups xmm0, xmmword [ebp - 0x78]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x68]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [ebp - 0x58]
movq qword [eax + 0x20], xmm0
add dword [0x102454b8], 0x28
jmp 0x1001d626
lea ecx, [ebp - 0x78]
push ecx
push eax
mov ecx, 0x102454b4
call fcn.10021fe0
cmp byte [ebp - 0x1a], 0
je 0x1001d768
mov ecx, dword [0x10210578]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 0
wait
lea esi, [edi + 0xc]
movq xmm0, qword [esi]
movq qword [ebp - 0x3c], xmm0
mov eax, dword [esi + 8]
mov dword [ebp - 0x34], eax
push ecx
mov ecx, 0x102454b4
call fcn.10020210
mov edx, eax
mov ecx, dword [edx]
mov dword [esi], ecx
movss xmm0, dword [edx + 4]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [edx + 8]
movss dword [edi + 0x24], xmm0
movss xmm0, dword [edx + 0xc]
movss dword [edi + 0x28], xmm0
movss xmm0, dword [edx + 0x10]
movss dword [edi + 0x2c], xmm0
mov eax, dword [edx + 0x14]
mov dword [edi + 0x30], eax
movzx eax, word [edx + 0x18]
mov word [edi + 0x44], ax
movzx eax, word [edx + 0x1a]
mov word [edi + 0x46], ax
movq xmm0, qword [esi]
movq qword [ebp - 0x4c], xmm0
mov eax, dword [esi + 8]
mov dword [ebp - 0x44], eax
cmp byte [0x10211c64], 0
je 0x1001d6ca
mov ecx, dword [0x10213bfc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
push esi
call eax
jmp 0x1001d6f1
movss xmm0, dword [ebp - 0x3c]
movss dword [esi], xmm0
movss xmm0, dword [ebp - 0x38]
movss dword [edi + 0x10], xmm0
movss xmm0, dword [ebp - 0x34]
movss dword [edi + 0x14], xmm0
lea eax, [ebp - 0x4c]
push eax
push edi
call fcn.1001bd50
mov esi, dword [ebp - 0x2c]
inc esi
mov ecx, dword [0x102454b8]
sub ecx, dword [0x102454b4]
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jne 0x1001d731
mov byte [0x10210574], 0
mov dword [0x10210578], 0
wait
mov dword [ebp - 4], 0xffffffff
jmp 0x1001d768
mov dword [0x10210578], esi
wait
mov dword [ebp - 4], 0xffffffff
jmp 0x1001d768
push dword [0x1024a394]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001d7a6
cmp byte [0x102100c4], 0
jne 0x1001d7a6
cmp byte [0x102454b0], 0
jne 0x1001d7a6
cmp byte [0x10210574], 0
jne 0x1001d7a6
mov eax, dword [0x102454b4]
cmp eax, dword [0x102454b8]
je 0x1001d7a6
mov dword [0x102454b8], eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [edi + 0xc]
call fcn.10113730
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
call fcn.100208b0
call fcn.100208b0
int3