Function at 0x100051b0
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa8
mov eax, dword [0x10042040]
xor eax, esp
mov dword [esp + 0xa4], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [0x100432a8]
push esi
push edi
mov edi, dword [0x100432a4]
sub ecx, edi
sar ecx, 2
test ecx, ecx
je 0x10005c21
movss xmm2, dword [0x100425a4]
xorps xmm0, xmm0
comiss xmm0, xmm2
movss xmm5, dword [0x100425a0]
movss xmm6, dword [0x1004259c]
movss xmm7, dword [0x100425a8]
movss xmm1, dword [0x1003f228]
jbe 0x1000521e
xorps xmm4, xmm4
jmp 0x10005225
movaps xmm4, xmm1
minss xmm4, xmm2
comiss xmm0, xmm5
movss xmm3, dword [0x1003f2d8]
movss xmm2, dword [0x1003f1f8]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si edx, xmm4
jbe 0x1000524b
xorps xmm4, xmm4
jmp 0x10005252
movaps xmm4, xmm1
minss xmm4, xmm5
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 8
or edx, eax
comiss xmm0, xmm6
jbe 0x1000526d
xorps xmm4, xmm4
jmp 0x10005274
movaps xmm4, xmm1
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x10
or edx, eax
comiss xmm0, xmm7
jbe 0x1000528f
xorps xmm4, xmm4
jmp 0x10005296
movaps xmm4, xmm1
minss xmm4, xmm7
movss xmm5, dword [0x10042590]
movss xmm6, dword [0x1004258c]
movss xmm7, dword [0x10042588]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x18
or eax, edx
comiss xmm0, xmm5
mov dword [esp + 0x40], eax
jbe 0x100052cd
xorps xmm4, xmm4
jmp 0x100052d4
movaps xmm4, xmm1
minss xmm4, xmm5
comiss xmm0, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si edx, xmm4
jbe 0x100052ea
xorps xmm4, xmm4
jmp 0x100052f1
movaps xmm4, xmm1
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 8
or edx, eax
comiss xmm0, xmm7
jbe 0x1000530c
xorps xmm4, xmm4
jmp 0x10005313
movaps xmm4, xmm1
minss xmm4, xmm7
movss xmm5, dword [0x10042594]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x10
or edx, eax
comiss xmm0, xmm5
jbe 0x10005336
xorps xmm4, xmm4
jmp 0x1000533d
movaps xmm4, xmm1
minss xmm4, xmm5
movss xmm5, dword [0x100426d4]
movss xmm6, dword [0x100426d0]
movss xmm7, dword [0x100426cc]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x18
or eax, edx
comiss xmm0, xmm5
mov dword [esp + 0x3c], eax
jbe 0x10005374
xorps xmm4, xmm4
jmp 0x1000537b
movaps xmm4, xmm1
minss xmm4, xmm5
comiss xmm0, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si edx, xmm4
jbe 0x10005391
xorps xmm4, xmm4
jmp 0x10005398
movaps xmm4, xmm1
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 8
or edx, eax
comiss xmm0, xmm7
jbe 0x100053b3
xorps xmm4, xmm4
jmp 0x100053ba
movaps xmm4, xmm1
minss xmm4, xmm7
movss xmm5, dword [0x100426d8]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x10
or edx, eax
comiss xmm0, xmm5
jbe 0x100053dd
xorps xmm4, xmm4
jmp 0x100053e4
movaps xmm4, xmm1
minss xmm4, xmm5
movss xmm5, dword [0x100425f0]
movss xmm6, dword [0x100425ec]
movss xmm7, dword [0x100425e8]
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 0x18
or eax, edx
comiss xmm0, xmm5
mov dword [esp + 0x20], eax
jbe 0x1000541b
xorps xmm4, xmm4
jmp 0x10005422
movaps xmm4, xmm1
minss xmm4, xmm5
comiss xmm0, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si edx, xmm4
jbe 0x10005438
xorps xmm4, xmm4
jmp 0x1000543f
movaps xmm4, xmm1
minss xmm4, xmm6
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
shl eax, 8
or edx, eax
comiss xmm0, xmm7
jbe 0x1000545a
xorps xmm4, xmm4
jmp 0x10005461
movaps xmm4, xmm1
minss xmm4, xmm7
mulss xmm4, xmm3
addss xmm4, xmm2
cvttss2si eax, xmm4
movss xmm4, dword [0x100425f4]
shl eax, 0x10
or edx, eax
comiss xmm0, xmm4
jbe 0x10005484
xorps xmm1, xmm1
jmp 0x10005488
minss xmm1, xmm4
movsd xmm0, qword [0x1003f2a0]
xor esi, esi
mulss xmm1, xmm3
mov dword [esp + 0x1c], 0xffffffff
movsd qword [esp + 0x28], xmm0
mov dword [esp + 0x10], esi
addss xmm1, xmm2
cvttss2si eax, xmm1
shl eax, 0x18
or eax, edx
mov edx, dword [0x10042f60]
mov dword [esp + 0x38], eax
mov eax, dword [0x10042f5c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1003f420]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [esp + 0x18], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm3, xmm0
mulss xmm3, xmm2
movss dword [esp + 0xc], xmm3
test ecx, ecx
je 0x10005c13
nop dword [eax]
nop word [eax + eax]
mov eax, dword [0x10042580]
lea ecx, [esi*4]
mov dword [esp + 0x14], ecx
cmp eax, 2
je 0x10005556
movd xmm1, eax
mov eax, dword [ecx + edi]
cvtdq2ps xmm1, xmm1
movd xmm0, dword [eax + 0x2c]
cvtdq2ps xmm0, xmm0
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x10005afb
jmp 0x1000555a
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + edi]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movss xmm1, dword [eax + 0x1c]
subss xmm1, dword [eax + 0x10]
mov eax, edx
shr eax, 0x1f
movss dword [esp + 0x24], xmm1
addsd xmm0, qword [eax*8 + 0x1003f420]
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x10005a1e
cmp byte [0x100426c8], 0
je 0x10005600
mov ecx, dword [ecx + edi]
push 0
cvttss2si eax, dword [ecx + 4]
sub edx, eax
cvttss2si eax, dword [ecx]
mov ecx, dword [esp + 0x38]
push ecx
mov dword [esp], 0
mov dword [esp + 0xa8], edx
push dword [esp + 0x28]
mov dword [esp + 0xa8], eax
add eax, 2
mov dword [esp + 0xb0], eax
lea eax, [edx + 2]
push 3
lea edx, [esp + 0xac]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx]
push edx
push 1
push ecx
call dword [eax + 0xac]
mov edi, dword [0x100432a4]
mov edx, dword [0x10042f60]
mov ecx, dword [esp + 0x14]
cmp byte [0x100426c9], 0
je 0x10005636
mov ecx, dword [ecx + edi]
push dword [esp + 0x20]
sub esp, 8
cvttss2si eax, dword [ecx + 4]
push 4
push 7
cvttss2si ecx, dword [ecx]
sub edx, eax
call fcn.10004830
mov edi, dword [0x100432a4]
add esp, 0x14
mov edx, dword [0x10042f60]
cmp byte [0x100425e4], 0
je 0x10005704
mov eax, dword [esp + 0x14]
mov esi, dword [0x10042fec]
push ecx
mov eax, dword [eax + edi]
movss xmm0, dword [eax]
movss dword [esp + 0xc], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x1003f420]
mov dword [esp], 0x3f800000
push esi
cvtpd2ps xmm0, xmm0
subss xmm0, dword [eax + 4]
mov eax, dword [esi]
addss xmm0, dword [0x1003f29c]
movss dword [esp + 0x1c], xmm0
call dword [eax + 0x2c]
mov eax, dword [esi]
push 0
push esi
call dword [eax + 0x34]
mov eax, dword [esi]
push 1
push esi
call dword [eax + 0x3c]
movss xmm0, dword [esp + 0x18]
mov eax, dword [esi]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0xc]
addss xmm0, xmm0
push esi
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0xc]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [esp + 0x5c], xmm0
call dword [eax + 0x10]
push dword [esp + 0x38]
mov eax, dword [esi]
lea ecx, [esp + 0x50]
push 2
push ecx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0x44]
mov edi, dword [0x100432a4]
mov edx, dword [0x10042f60]
mov esi, dword [esp + 0x10]
cmp byte [0x10042690], 0
je 0x1000583b
movss xmm3, dword [0x10042694]
xorps xmm0, xmm0
comiss xmm0, xmm3
movss xmm2, dword [0x1003f228]
jbe 0x1000572e
xorps xmm1, xmm1
jmp 0x10005735
movaps xmm1, xmm2
minss xmm1, xmm3
movss xmm4, dword [0x1003f2d8]
movss xmm3, dword [0x1003f1f8]
movss xmm5, dword [0x10042698]
comiss xmm0, xmm5
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si ecx, xmm1
jbe 0x10005763
xorps xmm1, xmm1
jmp 0x1000576a
movaps xmm1, xmm2
minss xmm1, xmm5
movss xmm5, dword [0x1004269c]
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm0, xmm5
jbe 0x1000578d
xorps xmm1, xmm1
jmp 0x10005794
movaps xmm1, xmm2
minss xmm1, xmm5
movss xmm5, dword [0x100426a0]
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si eax, xmm1
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm5
mov dword [esp + 8], ecx
jbe 0x100057bb
xorps xmm1, xmm1
jmp 0x100057c2
movaps xmm1, xmm2
minss xmm1, xmm5
mov ecx, dword [edi + esi*4]
sub esp, 8
mulss xmm1, xmm4
movss xmm0, dword [ecx + 0x24]
cvtps2pd xmm0, xmm0
addss xmm1, xmm3
movsd qword [esp], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
push str.__0.0fm_
cvttss2si eax, xmm1
addsd xmm0, qword [edx*8 + 0x1003f420]
shl eax, 0x18
or eax, dword [esp + 0x14]
push eax
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ecx + 4]
cvttss2si eax, xmm0
movss xmm0, dword [ecx]
addss xmm0, dword [0x1003f27c]
push eax
cvttss2si eax, xmm0
push eax
push dword [0x10042f78]
call fcn.10004c30
mov edi, dword [0x100432a4]
add esp, 0x1c
mov edx, dword [0x10042f60]
cmp byte [0x10042584], 0
je 0x100058b4
movss xmm1, dword [esp + 0x24]
push dword [esp + 0x3c]
mov ecx, dword [edi + esi*4]
movaps xmm0, xmm1
addss xmm0, dword [0x1003f294]
cvttss2si eax, xmm1
movss xmm2, dword [ecx + 0xc]
push eax
push ecx
movss dword [esp], xmm0
subss xmm2, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x1003f420]
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm1
subss xmm3, dword [ecx + 0x10]
mulss xmm0, dword [0x1003f1ec]
subss xmm3, xmm1
addss xmm2, xmm0
call fcn.100049b0
mov edi, dword [0x100432a4]
add esp, 0xc
mov edx, dword [0x10042f60]
cmp byte [0x10042598], 0
je 0x10005a18
mov eax, dword [esp + 0x10]
movss xmm1, dword [esp + 0x24]
movaps xmm0, xmm1
mov esi, dword [0x10042fec]
mulss xmm0, dword [0x1003f1ec]
mov eax, dword [edi + eax*4]
push ecx
movss xmm4, dword [eax + 0xc]
subss xmm4, xmm1
addss xmm4, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
movss dword [esp + 0x60], xmm4
addsd xmm0, qword [edx*8 + 0x1003f420]
mov dword [esp], 0x3f800000
push esi
movss dword [esp + 0x6c], xmm4
movss dword [esp + 0x84], xmm4
cvtpd2ps xmm3, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x94], xmm4
subss xmm3, dword [eax + 0x10]
addss xmm0, dword [0x1003f294]
cvttss2si eax, xmm1
subss xmm3, xmm1
movaps xmm1, xmm4
addss xmm1, xmm0
movd xmm2, eax
mov eax, dword [esi]
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x68], xmm3
addss xmm2, xmm3
movss dword [esp + 0x74], xmm1
movss dword [esp + 0x78], xmm3
movss dword [esp + 0x7c], xmm1
movss dword [esp + 0x88], xmm3
movss dword [esp + 0x8c], xmm1
movss dword [esp + 0x70], xmm2
movss dword [esp + 0x80], xmm2
movss dword [esp + 0x90], xmm3
movss dword [esp + 0x98], xmm2
movss dword [esp + 0x9c], xmm1
movss dword [esp + 0xa0], xmm2
call dword [eax + 0x2c]
mov eax, dword [esi]
push 0
push esi
call dword [eax + 0x34]
mov eax, dword [esi]
push 0
push esi
call dword [eax + 0x3c]
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
mov edi, dword [esp + 0x40]
lea ecx, [esp + 0x5c]
mov eax, dword [esi]
push edi
push 2
push ecx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
lea ecx, [esp + 0x6c]
push edi
push 2
push ecx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
lea ecx, [esp + 0x7c]
push edi
push 2
push ecx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
push edi
push 2
lea ecx, [esp + 0x94]
push ecx
push esi
call dword [eax + 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0x44]
mov edi, dword [0x100432a4]
movss xmm3, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
movss xmm0, dword [0x100420d0]
movss xmm1, dword [esp + 0x18]
movss dword [esp + 8], xmm0
movaps xmm0, xmm3
mov esi, dword [edi + eax*4]
subss xmm0, dword [esi + 4]
subss xmm1, dword [esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x10005a64
sqrtsd xmm0, xmm0
jmp 0x10005a69
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm3, dword [esp + 0x18]
movss xmm1, dword [esp + 8]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x28], xmm0
movaps xmm0, xmm3
mov edi, dword [0x100432a4]
subss xmm0, xmm1
mov esi, dword [esp + 0x10]
mov eax, dword [edi + esi*4]
movss xmm2, dword [eax]
comiss xmm2, xmm0
jb 0x10005aef
movaps xmm0, xmm1
addss xmm0, xmm3
movss xmm3, dword [esp + 0xc]
comiss xmm0, xmm2
jb 0x10005af5
movss xmm2, dword [eax + 4]
movaps xmm0, xmm3
subss xmm0, xmm1
comiss xmm2, xmm0
jb 0x10005af5
addss xmm1, xmm3
comiss xmm1, xmm2
jb 0x10005af5
movss xmm0, dword [eax + 0x28]
movsd xmm1, qword [esp + 0x28]
cvtps2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x10005af5
mov edx, dword [0x10042f60]
mov ecx, esi
movsd qword [esp + 0x28], xmm0
mov dword [esp + 0x1c], ecx
jmp 0x10005aff
movss xmm3, dword [esp + 0xc]
mov edx, dword [0x10042f60]
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x100432a8]
inc esi
sub eax, edi
mov dword [esp + 0x10], esi
sar eax, 2
cmp esi, eax
jb 0x10005520
cmp ecx, 0xffffffff
je 0x10005c13
mov eax, dword [edi + ecx*4]
movss xmm0, dword [esp + 0x18]
movss xmm1, dword [0x100420d8]
cvtps2pd xmm0, xmm0
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm2, dword [eax]
cvtps2pd xmm2, xmm2
push dword [0x100420a0]
subsd xmm2, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmmword [0x1003f470]
divsd xmm2, xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x44], xmm2
movss xmm2, dword [eax + 4]
cvtps2pd xmm2, xmm2
cvtss2sd xmm0, xmm3
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
divsd xmm2, xmm0
movsd qword [esp + 0x2c], xmm2
call esi
mov edi, dword [sym.imp.USER32.dll_mouse_event]
test ax, ax
js 0x10005b9c
push dword [0x100420e0]
call esi
test ax, ax
jns 0x10005bbc
movsd xmm0, qword [esp + 0x28]
push 0
push 0
call fcn.10038760
movsd xmm0, qword [esp + 0x48]
push eax
call fcn.10038760
push eax
push 1
call edi
push 1
call esi
test ax, ax
jne 0x10005bdb
cmp byte [0x10042fb3], 1
jne 0x10005bdb
push dword [0x100420a0]
call esi
test ax, ax
js 0x10005be8
push dword [0x100420e0]
call esi
test ax, ax
jns 0x10005c0d
cmp byte [0x10042fb3], 1
jne 0x10005c0d
cmp byte [0x10042f24], 0
jne 0x10005c0d
push 0
push 0
push 0
push 0
push 2
mov byte [0x10042f24], 1
call edi
mov edi, dword [0x100432a4]
cmp edi, dword [0x100432a8]
je 0x10005c21
mov dword [0x100432a8], edi
mov ecx, dword [esp + 0xac]
pop edi
pop esi
xor ecx, esp
call fcn.10037580
mov esp, ebp
pop ebp
ret