Function at 0x58fa20
Capabilities:
Log keystrokes via polling
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63e609
mov eax, dword fs:[0]
push eax
sub esp, 0x45c
mov eax, dword [0x79b5e0]
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 bl, dl
mov edi, ecx
movss dword [ebp - 0x450], xmm1
movaps xmm2, xmm0
addss xmm2, dword [0x6eee48]
mov eax, dword [ebp + 8]
lea esi, [ecx + 1]
mov dword [ebp - 0x458], eax
xor edx, edx
mov dword [ebp - 0x468], 0xff000000
movss dword [ebp - 0x44c], xmm2
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fa85
sub ecx, esi
je 0x58faad
mov ecx, edi
mov byte [ebp + edx - 0x410], 0x2a
inc edx
lea esi, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58faa0
sub ecx, esi
cmp edx, ecx
jb 0x58fa90
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fab2
sub ecx, edx
cmp ecx, 0x200
jae 0x58fffe
cmp dword [ebp - 0x458], 1
lea esi, [ebp - 0x410]
mov byte [ebp + ecx - 0x410], al
mov edx, 4
cmovne esi, edi
lea eax, [ebp - 0x468]
push esi
push 0x6e9114
push eax
xor eax, eax
cmp dword [ebp - 0x458], 1
cmove eax, edx
sub esp, 8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
push dword [0x847824]
call fcn.005fac70
add esp, 0x18
test bl, bl
je 0x58ffa8
mov eax, dword [0x849ae8]
test al, 1
jne 0x58fb6f
or eax, 1
mov dword [0x849ae8], eax
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6eeec0]
mov eax, dword [0x849ae8]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x6eee8c]
movss dword [0x849ae0], xmm0
test al, 2
jne 0x58fb94
or eax, 2
mov dword [0x849ae8], eax
mov dword [ebp - 4], 0
call fcn.005f1ff0
fstp dword [0x849aec]
mov dword [ebp - 4], 0xffffffff
call fcn.005f1ff0
movss xmm1, dword [0x849aec]
fstp dword [ebp - 0x454]
movss xmm0, dword [ebp - 0x454]
comiss xmm0, xmm1
jbe 0x58fbd4
addss xmm1, dword [0x849ae0]
xor eax, eax
cmp dword [0x8498c4], eax
sete al
movss dword [0x849aec], xmm1
mov dword [0x8498c4], eax
push esi
lea eax, [ebp - 0x210]
push 0x6e92d8
push eax
call fcn.00592550
movdqa xmm0, xmmword [0x6eeeb0]
lea esi, [ebp - 0x210]
mov ebx, dword [0x847824]
lea ecx, [esi + 1]
add esp, 0xc
movdqu xmmword [ebp - 0x438], xmm0
mov al, byte [esi]
inc esi
test al, al
jne 0x58fc08
sub esi, ecx
cmp dword [ebx + 0x668], 0
jne 0x58fc30
push 0
push 0x58
push str.e:ihumz_srceternityincluded3dFont.h
push str.fnt_pD3DXFont
call fcn.005f2580
add esp, 0x10
mov eax, dword [ebx + 0x668]
lea edx, [ebp - 0x438]
push 0xffffffffffffffff
push 0x400
push edx
mov ecx, dword [eax]
lea edx, [ebp - 0x210]
push esi
push edx
push 0
push eax
call dword [ecx + 0x38]
mov ebx, dword [0x847824]
mov esi, dword [ebp - 0x430]
sub esi, dword [ebp - 0x438]
movdqa xmm0, xmmword [0x6eeeb0]
cmp dword [ebx + 0x668], 0
movdqu xmmword [ebp - 0x448], xmm0
jne 0x58fc95
push 0
push 0x58
push str.e:ihumz_srceternityincluded3dFont.h
push str.fnt_pD3DXFont
call fcn.005f2580
add esp, 0x10
mov eax, dword [ebx + 0x668]
lea edx, [ebp - 0x448]
push 0xffffffffffffffff
push 0x400
push edx
mov ecx, dword [eax]
push 1
push 0x6e92dc
push 0
push eax
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x448]
cmp dword [0x8498c4], 0
je 0x58fd29
movss xmm0, dword [ebp - 0x450]
lea ecx, [ebp - 0x454]
addss xmm0, dword [0x6eee40]
push 0
push 0
push ecx
sub esp, 0x10
mov dword [ebp - 0x454], 0xff000000
sub esi, eax
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x3f800000
movss dword [esp + 4], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x44c]
movss dword [esp], xmm0
call fcn.00601830
add esp, 0x1c
call dword [sym.imp.USER32.dll_GetFocus]
mov ebx, dword [ebp + 0xc]
cmp eax, dword [0x7a3470]
jne 0x58fe1d
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x56
call esi
test al, al
jns 0x58fe1d
cmp byte [0x849ac8], 0
jne 0x58fe1d
push 0x11
mov byte [0x849ac8], 1
call esi
test al, al
jns 0x58fe24
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x58fe24
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x58fe0e
push eax
lea ecx, [ebp - 0x428]
call fcn.0058c570
lea ecx, [ebp - 0x428]
mov dword [ebp - 4], 1
call fcn.0058f960
mov ecx, eax
call fcn.0058f8d0
lea ecx, [ebp - 0x428]
cmp ecx, eax
je 0x58fdce
push 0xffffffffffffffff
push 0
push eax
call fcn.0058c600
cmp dword [ebp - 0x414], 0x10
lea eax, [ebp - 0x428]
cmovae eax, dword [ebp - 0x428]
test ebx, ebx
je 0x58fe03
cmp ebx, 0x7fffffff
ja 0x58fdfc
push ecx
push eax
push ecx
mov edx, ebx
mov ecx, edi
call fcn.0058de20
jmp 0x58fe03
test ebx, ebx
je 0x58fe03
mov byte [edi], 0
lea ecx, [ebp - 0x428]
call fcn.0058c5d0
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x58fe24
mov byte [0x849ac8], 0
mov eax, dword [0x79e96c]
cmp eax, dword [0x79e968]
je 0x58ffa8
mov eax, dword [0x79e968]
mov esi, dword [eax]
add dword [0x79e968], 4
cmp dword [0x79e968], 0x847cf0
jb 0x58fe59
mov dword [0x79e968], 0x847c70
test esi, esi
je 0x58ffa8
cmp esi, 8
jne 0x58fe7d
cmp byte [edi], 0
je 0x58fe7d
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fe70
sub ecx, edx
mov byte [ecx + edi - 1], al
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fe82
sub ecx, edx
cmp ecx, ebx
jae 0x58ffa8
cmp dword [ebp - 0x458], 2
jne 0x58ffc6
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fea5
sub ecx, edx
cmp ecx, 0x13
jge 0x58ffa8
cmp ecx, 4
je 0x58ff6f
cmp ecx, 9
je 0x58ff6f
cmp ecx, 0xe
je 0x58ff6f
lea eax, [esi - 0x30]
cmp eax, 9
ja 0x58fefe
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58fee0
sub ecx, edx
push esi
lea eax, [ecx + edi]
mov dword [ebp - 0x44c], eax
lea eax, [ebp - 0x44c]
jmp 0x58ff9a
lea eax, [esi - 0x61]
cmp eax, 0x19
ja 0x58ff2e
mov ecx, edi
lea edx, [ecx + 1]
jmp 0x58ff10
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58ff10
sub ecx, edx
lea eax, [ecx + edi]
mov dword [ebp - 0x450], eax
lea eax, [esi - 0x20]
push eax
lea eax, [ebp - 0x450]
jmp 0x58ff9a
lea eax, [esi - 0x41]
cmp eax, 0x19
ja 0x58ff5b
mov ecx, edi
lea edx, [ecx + 1]
jmp 0x58ff40
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58ff40
sub ecx, edx
push esi
lea eax, [ecx + edi]
mov dword [ebp - 0x464], eax
lea eax, [ebp - 0x464]
jmp 0x58ff9a
cmp esi, 9
je 0x58fffa
cmp esi, 0xd
je 0x58fffa
jmp 0x58ffa8
cmp esi, 0x2d
jne 0x58ffa8
mov ecx, edi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58ff80
sub ecx, edx
push 0x2d
lea eax, [ecx + edi]
mov dword [ebp - 0x460], eax
lea eax, [ebp - 0x460]
push 0x6e92e0
push eax
call fcn.00592570
add esp, 0xc
xor eax, eax
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.0061b9b8
mov esp, ebp
pop ebp
ret
lea eax, [esi - 0x20]
cmp eax, 0x5f
ja 0x58fffa
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x58ffd3
sub ecx, edx
push esi
push 0x6e92e0
lea eax, [ecx + edi]
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x45c]
push eax
call fcn.00592570
add esp, 0xc
mov eax, esi
jmp 0x58ffaa
call fcn.0061d3f4
int3