Function at 0x10004bb0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100da6bd
mov eax, dword fs:[0]
push eax
mov eax, 0x186c
call fcn.100d97c0
mov eax, dword [0x1010502c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1850], ecx
mov edi, dword [ebp + 0xc]
xor ebx, ebx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1830], ebx
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10106354]
mov dword [ebp - 0x1854], edi
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10106390]
cmp eax, dword [ecx + 4]
jle 0x10004c50
push 0x10106390
call fcn.100d8ed3
add esp, 4
cmp dword [0x10106390], 0xffffffff
jne 0x10004c50
push str.client.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add eax, 0x151a0
push 0x10106390
mov dword [0x10106394], eax
call fcn.100d8e89
add esp, 4
mov eax, dword [0x10106394]
mov ecx, edi
call eax
push dword [0x101055c0]
lea edi, [eax + 0x56]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x10004c87
cmp byte [0x101055f4], bl
je 0x10005857
cmp byte [0x10106362], bl
jne 0x10005857
cmp dword [0x101055bc], 2
jne 0x10004c9a
test byte [esi + 0x24], 0x20
jne 0x10005857
mov eax, dword [0x10105620]
test eax, eax
jne 0x10004cbe
push dword [ebp - 0x1854]
mov ecx, dword [ebp - 0x1850]
call fcn.10005880
mov edx, eax
mov dword [0x1010783c], edx
jmp 0x10004ce4
cmp eax, 1
jne 0x10004cde
push dword [ebp - 0x1854]
mov ecx, dword [ebp - 0x1850]
call fcn.10005f90
mov edx, eax
mov dword [0x1010783c], edx
jmp 0x10004ce4
mov edx, dword [0x1010783c]
cmp edx, 0x539
je 0x10005857
mov eax, dword [0x10107740]
push edx
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [0x100ecac4]
mov dword [ebp - 0x1834], eax
mov eax, dword [ebp - 0x1850]
mov edx, dword [eax]
mov eax, dword [0x100f50a8]
movq xmm0, qword [ecx + edx]
mov ecx, dword [ecx + edx + 8]
movq qword [ebp - 0x1840], xmm0
movq xmm0, qword [eax + edx]
mov eax, dword [eax + edx + 8]
movq qword [ebp - 0x181c], xmm0
movss xmm0, dword [ebp - 0x181c]
addss xmm0, dword [ebp - 0x1840]
mov dword [ebp - 0x1838], ecx
mov ecx, dword [0x10106354]
mov dword [ebp - 0x1814], eax
mov eax, dword fs:[0x2c]
movss dword [ebp - 0x185c], xmm0
movss xmm0, dword [ebp - 0x1818]
addss xmm0, dword [ebp - 0x183c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10107840]
movss dword [ebp - 0x1860], xmm0
movss xmm0, dword [ebp - 0x1814]
addss xmm0, dword [ebp - 0x1838]
movss dword [ebp - 0x1858], xmm0
cmp eax, dword [ecx + 4]
jle 0x10004dcc
push 0x10107840
call fcn.100d8ed3
add esp, 4
cmp dword [0x10107840], 0xffffffff
jne 0x10004dcc
push 0x10107840
call fcn.100d8e89
add esp, 4
cmp dword [0x1010567c], ebx
jne 0x10004e2c
push str.Claws
lea ecx, [ebp - 0x1828]
call fcn.10007b20
mov dword [ebp - 4], 0
mov ebx, 1
mov edx, edi
mov dword [ebp - 0x1830], ebx
mov ecx, eax
call fcn.10007000
test al, al
jne 0x10004e2c
push str.Huge_Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
mov ebx, 3
call fcn.10007000
mov byte [ebp - 0x1829], 1
test al, al
je 0x10004e33
mov byte [ebp - 0x1829], 0
test bl, 2
je 0x10004e8c
mov ecx, dword [ebp - 0x1838]
and ebx, 0xfffffffd
cmp ecx, 0x10
jb 0x10004e71
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004e67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10004ec7
push ecx
push edx
call fcn.100d8ffc
add esp, 8
mov dword [ebp - 0x183c], 0
mov dword [ebp - 0x1838], 0xf
mov byte [ebp - 0x184c], 0
mov dword [ebp - 4], 0xffffffff
test bl, 1
je 0x10004ed7
mov ecx, dword [ebp - 0x1814]
and ebx, 0xfffffffe
cmp ecx, 0x10
jb 0x10004ed7
mov edx, dword [ebp - 0x1828]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004ecd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10004ecd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
cmp byte [ebp - 0x1829], 0
je 0x10004f40
mov ecx, dword [ebp - 0x1834]
call fcn.10095cd0
mov byte [ebp - 0x1830], al
sub al, 4
cmp al, 0xb
ja 0x10005857
push dword [ebp - 0x1830]
mov edx, dword [ebp - 0x1834]
lea ecx, [ebp - 0x1840]
call fcn.10095920
add esp, 4
movss xmm0, dword [eax]
movss dword [0x10107844], xmm0
movss xmm1, dword [eax + 4]
movss dword [0x10107848], xmm1
movss xmm2, dword [eax + 8]
movss dword [0x1010784c], xmm2
jmp 0x10005130
cmp dword [0x1010567c], 0
jne 0x10004f9d
push str.Claws
lea ecx, [ebp - 0x1828]
call fcn.10007b20
mov dword [ebp - 4], 1
or ebx, 4
mov edx, edi
mov dword [ebp - 0x1830], ebx
mov ecx, eax
call fcn.10007000
test al, al
jne 0x10004f9d
push str.Huge_Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
or ebx, 8
call fcn.10007000
mov byte [ebp - 0x1829], 0
test al, al
je 0x10004fa4
mov byte [ebp - 0x1829], 1
test bl, 8
je 0x10004ffd
mov ecx, dword [ebp - 0x1838]
and ebx, 0xfffffff7
cmp ecx, 0x10
jb 0x10004fe2
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004fd8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005038
push ecx
push edx
call fcn.100d8ffc
add esp, 8
mov dword [ebp - 0x183c], 0
mov dword [ebp - 0x1838], 0xf
mov byte [ebp - 0x184c], 0
mov dword [ebp - 4], 0xffffffff
test bl, 4
je 0x10005048
mov ecx, dword [ebp - 0x1814]
and ebx, 0xfffffffb
cmp ecx, 0x10
jb 0x10005048
mov edx, dword [ebp - 0x1828]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000503e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000503e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
cmp byte [ebp - 0x1829], 0
je 0x10005118
push dword [ebp - 0x1834]
mov ecx, dword [ebp - 0x1850]
call fcn.10001f10
mov ecx, dword [ebp - 0x1834]
lea edx, [ebp - 0x1810]
add ecx, 4
movzx eax, al
push ecx
mov dword [ebp - 0x1830], eax
mov dword [esp], 0
mov eax, dword [ecx]
push 0x80
push 0x80
push edx
mov eax, dword [eax + 0x34]
call eax
test al, al
jne 0x100050d8
mov ecx, dword [ebp - 0x1834]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1840], xmm0
movss xmm0, dword [ebp - 0x1840]
movss xmm1, dword [ebp - 0x183c]
mov dword [ebp - 0x1838], eax
movss xmm2, dword [ebp - 0x1838]
jmp 0x100050fe
mov eax, dword [ebp - 0x1830]
lea eax, [eax + eax*2]
add eax, eax
movss xmm0, dword [ebp + eax*8 - 0x1804]
movss xmm1, dword [ebp + eax*8 - 0x17f4]
movss xmm2, dword [ebp + eax*8 - 0x17e4]
movss dword [0x10107844], xmm0
movss dword [0x10107848], xmm1
movss dword [0x1010784c], xmm2
jmp 0x10005130
movss xmm2, dword [0x1010784c]
movss xmm1, dword [0x10107848]
movss xmm0, dword [0x10107844]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x10005857
ucomiss xmm1, xmm1
lahf
test ah, 0x44
jp 0x10005857
ucomiss xmm2, xmm2
lahf
test ah, 0x44
jp 0x10005857
movss xmm3, dword [ebp - 0x185c]
lea edx, [ebp - 0x181c]
subss xmm3, xmm0
movss xmm0, dword [ebp - 0x1860]
subss xmm0, xmm1
lea ecx, [ebp - 0x1840]
movss dword [ebp - 0x1840], xmm3
movss dword [ebp - 0x183c], xmm0
movss xmm0, dword [ebp - 0x1858]
subss xmm0, xmm2
movss dword [ebp - 0x1838], xmm0
call fcn.10007e00
movss xmm1, dword [ebp - 0x181c]
ucomiss xmm1, xmm1
lahf
test ah, 0x44
jp 0x10005857
movss xmm2, dword [ebp - 0x1818]
ucomiss xmm2, xmm2
lahf
test ah, 0x44
jp 0x10005857
movss xmm0, dword [ebp - 0x1814]
ucomiss xmm0, xmm0
lahf
test ah, 0x44
jp 0x10005857
movss xmm7, dword [0x100ff3c8]
comiss xmm1, xmm7
movss xmm0, dword [0x100ff430]
jbe 0x10005209
nop dword [eax + eax]
subss xmm1, xmm0
comiss xmm1, xmm7
ja 0x10005200
movss xmm5, dword [0x100ff59c]
comiss xmm5, xmm1
jbe 0x1000521f
addss xmm1, xmm0
comiss xmm5, xmm1
ja 0x10005216
comiss xmm2, xmm0
movss xmm4, dword [0x100ff48c]
jbe 0x10005239
nop dword [eax]
subss xmm2, xmm4
comiss xmm2, xmm0
ja 0x10005230
movss xmm6, dword [0x100ff5a8]
comiss xmm6, xmm2
jbe 0x1000524f
addss xmm2, xmm4
comiss xmm6, xmm2
ja 0x10005246
comiss xmm2, xmm0
jbe 0x10005259
movaps xmm2, xmm0
jmp 0x10005261
comiss xmm6, xmm2
jbe 0x10005261
movaps xmm2, xmm6
comiss xmm1, xmm7
jbe 0x1000526b
movaps xmm1, xmm7
jmp 0x10005273
comiss xmm5, xmm1
jbe 0x10005273
movaps xmm1, xmm5
cmp dword [0x10105624], 1
jle 0x10005395
subss xmm1, dword [esi + 0xc]
subss xmm2, dword [esi + 0x10]
xorps xmm4, xmm4
subss xmm4, dword [esi + 0x14]
comiss xmm1, xmm7
movaps xmm3, xmm1
movss dword [ebp - 0x1830], xmm1
movss dword [ebp - 0x1858], xmm4
movss xmm4, dword [0x100ff48c]
movss dword [ebp - 0x1834], xmm2
jbe 0x100052d1
nop word [eax + eax]
subss xmm3, xmm0
comiss xmm3, xmm7
ja 0x100052c0
movss dword [ebp - 0x1830], xmm3
comiss xmm5, xmm3
jbe 0x100052e7
addss xmm3, xmm0
comiss xmm5, xmm3
ja 0x100052d6
movss dword [ebp - 0x1830], xmm3
comiss xmm2, xmm0
jbe 0x10005301
nop dword [eax]
subss xmm2, xmm4
comiss xmm2, xmm0
ja 0x100052f0
movss dword [ebp - 0x1834], xmm2
comiss xmm6, xmm2
jbe 0x10005317
addss xmm2, xmm4
comiss xmm6, xmm2
ja 0x10005306
movss dword [ebp - 0x1834], xmm2
movaps xmm1, xmm2
movaps xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss xmm1, dword [ebp - 0x1858]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10007d70
comiss xmm0, dword [0x100ff06c]
movss xmm2, dword [ebp - 0x1830]
jbe 0x1000537b
movd xmm0, dword [0x10105624]
movss xmm1, dword [0x100ff0d0]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm2, xmm0
movss xmm0, dword [ebp - 0x1834]
mulss xmm0, xmm1
jmp 0x10005383
movss xmm0, dword [ebp - 0x1834]
movss xmm1, dword [esi + 0xc]
addss xmm1, xmm2
movss xmm2, dword [esi + 0x10]
addss xmm2, xmm0
movss dword [esi + 0xc], xmm1
movss dword [esi + 0x10], xmm2
cmp byte [0x10105608], 0
je 0x100053ba
push dword [ebp - 0x1854]
mov ecx, dword [ebp - 0x1850]
push esi
call fcn.10006800
cmp dword [0x101056a8], 2
jne 0x1000540b
mov eax, dword [ebp - 0x1850]
mov ecx, dword [eax]
mov eax, dword [0x100f5178]
movq xmm0, qword [ecx + eax]
mov eax, dword [ecx + eax + 8]
movq qword [ebp - 0x1840], xmm0
movss xmm0, dword [esi + 0xc]
subss xmm0, dword [ebp - 0x1840]
mov dword [ebp - 0x1838], eax
movss dword [esi + 0xc], xmm0
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [ebp - 0x183c]
movss dword [esi + 0x10], xmm0
cmp byte [0x10106361], 0
jne 0x100054fb
cmp byte [0x10106360], 0
je 0x100054fb
push str.Claws
lea ecx, [ebp - 0x184c]
mov byte [0x10106360], 0
call fcn.10007b20
mov edx, edi
mov ecx, eax
call fcn.10007000
mov ecx, dword [ebp - 0x1838]
mov bl, al
cmp ecx, 0x10
jb 0x10005483
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005479
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10005479
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
test bl, bl
je 0x10005493
or dword [esi + 0x24], 0x800
jmp 0x10005849
push str.Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
call fcn.10007000
mov ecx, dword [ebp - 0x1838]
mov bl, al
cmp ecx, 0x10
jb 0x100054ea
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100054e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100054e0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
test bl, bl
jne 0x10005849
or dword [esi + 0x24], 1
jmp 0x10005849
push str.Claws
lea ecx, [ebp - 0x1828]
call fcn.10007b20
mov dword [ebp - 4], 2
or ebx, 0x10
mov edx, edi
mov dword [ebp - 0x1830], ebx
mov ecx, eax
call fcn.10007000
test al, al
jne 0x1000552e
test byte [esi + 0x24], 1
jne 0x10005571
push str.Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
or ebx, 0x20
call fcn.10007000
test al, al
je 0x10005557
test dword [esi + 0x24], 0x800
jne 0x10005571
push dword [0x101055c0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov byte [ebp - 0x1829], 0
jae 0x10005578
mov byte [ebp - 0x1829], 1
test bl, 0x20
je 0x100055d1
mov ecx, dword [ebp - 0x1838]
and ebx, 0xffffffdf
cmp ecx, 0x10
jb 0x100055b6
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100055ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000560c
push ecx
push edx
call fcn.100d8ffc
add esp, 8
mov dword [ebp - 0x183c], 0
mov dword [ebp - 0x1838], 0xf
mov byte [ebp - 0x184c], 0
mov dword [ebp - 4], 0xffffffff
test bl, 0x10
je 0x1000561c
mov ecx, dword [ebp - 0x1814]
and ebx, 0xffffffef
cmp ecx, 0x10
jb 0x1000561c
mov edx, dword [ebp - 0x1828]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005612
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10005612
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
cmp byte [ebp - 0x1829], 0
je 0x1000583b
push str.Claws
lea ecx, [ebp - 0x1828]
call fcn.10007b20
mov dword [ebp - 4], 3
or ebx, 0x40
mov edx, edi
mov dword [ebp - 0x1830], ebx
mov ecx, eax
call fcn.10007000
test al, al
jne 0x1000565c
test byte [esi + 0x24], 1
jne 0x100056a2
push str.Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
or ebx, 0x80
call fcn.10007000
test al, al
je 0x10005688
test dword [esi + 0x24], 0x800
jne 0x100056a2
push dword [0x101055c0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov byte [ebp - 0x1829], 1
jae 0x100056a9
mov byte [ebp - 0x1829], 0
test bl, bl
jns 0x10005704
mov ecx, dword [ebp - 0x1838]
and ebx, 0xffffff7f
cmp ecx, 0x10
jb 0x100056e9
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100056df
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000573c
push ecx
push edx
call fcn.100d8ffc
add esp, 8
mov dword [ebp - 0x183c], 0
mov dword [ebp - 0x1838], 0xf
mov byte [ebp - 0x184c], 0
mov dword [ebp - 4], 0xffffffff
test bl, 0x40
je 0x1000574c
mov ecx, dword [ebp - 0x1814]
cmp ecx, 0x10
jb 0x1000574c
mov edx, dword [ebp - 0x1828]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005742
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10005742
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
cmp byte [ebp - 0x1829], 0
je 0x10005768
mov al, 1
mov byte [0x10106360], 1
mov byte [0x10106361], al
jmp 0x10005849
push str.Claws
lea ecx, [ebp - 0x184c]
call fcn.10007b20
mov edx, edi
mov ecx, eax
call fcn.10007000
mov ecx, dword [ebp - 0x1838]
mov bl, al
cmp ecx, 0x10
jb 0x100057bf
mov edx, dword [ebp - 0x184c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100057b5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100057b5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
test bl, bl
je 0x100057d3
and dword [esi + 0x24], 0xfffff7ff
xor al, al
mov byte [0x10106361], al
jmp 0x10005849
push str.Claws
lea ecx, [ebp - 0x1878]
call fcn.10007b20
mov edx, edi
mov ecx, eax
call fcn.10007000
mov ecx, dword [ebp - 0x1864]
mov bl, al
cmp ecx, 0x10
jb 0x1000582a
mov edx, dword [ebp - 0x1878]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005820
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10005820
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100d8ffc
add esp, 8
test bl, bl
jne 0x10005832
and dword [esi + 0x24], 0xfffffffe
xor al, al
mov byte [0x10106361], al
jmp 0x10005849
mov byte [0x10106361], 0
mov byte [0x10106360], 0
cmp byte [0x10106360], 0
sete byte [0x10106360]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100d8a78
mov esp, ebp
pop ebp
ret 8