Function at 0x473b10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b1280
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x4bd040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x4bda50]
test esi, esi
jns 0x473b50
mov dword [0x4bda50], 0
jmp 0x473b71
mov ecx, dword [ebp + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp + 0x30]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x473b71
dec eax
mov dword [0x4bda50], eax
mov edi, dword [ebp + 0x14]
sub esp, 0x10
mov eax, esp
push edi
push 0x6e
push 0x46
push 0x14
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0xff
call fcn.00407780
sub esp, 0x10
mov eax, esp
mov dword [eax], 0x3c
mov dword [eax + 4], 0x3c
mov dword [eax + 8], 0x3c
mov dword [eax + 0xc], 0xff
lea eax, [edi - 2]
push eax
push 0x6c
push 0x47
push 0x15
call fcn.00407780
mov eax, 0x66666667
mov dword [ebp - 0x14], 0xa00
imul dword [0x4bdd8c]
mov eax, 0x66666667
mov dword [ebp - 0x54], 1
sar edx, 2
mov ecx, edx
mov dword [ebp - 0x30], 0x16
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2c], 0x48
imul dword [0x4bdd88]
movzx esi, cl
sar edx, 2
mov ecx, esi
mov eax, edx
shl ecx, 8
shr eax, 0x1f
add eax, edx
shl esi, 8
movzx eax, al
xor edx, edx
or ecx, eax
mov word [ebp - 0x22], dx
mov dword [ebp - 0x58], edx
mov eax, 0x66666667
imul dword [0x4bdd84]
shl ecx, 8
sar edx, 2
mov eax, edx
mov dword [ebp - 0x20], 0x80
shr eax, 0x1f
add eax, edx
mov word [ebp - 0x24], si
movzx eax, al
or ecx, eax
mov dword [ebp - 0x18], 0xa000a00
lea eax, [edi + 0x44]
mov dword [ebp - 0x1c], eax
movzx eax, cl
and ecx, 0xff00
push 1
shl ax, 8
push 1
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x58]
push eax
push 2
lea eax, [ebp - 0x30]
mov word [ebp - 0x26], cx
push eax
push dword [0x4bdda4]
call dword [sym.imp.MSIMG32.dll_GradientFill]
push ecx
push 0x2bc
push 0xe
sub esp, 0x18
mov ecx, esp
xorps xmm0, xmm0
push 0xb
push str.Small_Fonts
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.004ae170
sub esp, 0x10
lea edx, [ebp + 0x18]
mov eax, esp
xorps xmm0, xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0xff
cmp dword [ebp + 0x2c], 0xf
cmova edx, dword [ebp + 0x18]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473d08
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.004ae170
push 0x40
push 0x24
call fcn.00407920
push ecx
push 0x2bc
push 0xe
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0xb
movups xmmword [ecx], xmm0
push str.Small_Fonts
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.004ae170
sub esp, 0x10
lea edx, [ebp + 0x18]
mov eax, esp
xorps xmm0, xmm0
mov dword [eax], 0xc8
mov dword [eax + 4], 0xc8
mov dword [eax + 8], 0xc8
mov dword [eax + 0xc], 0xff
cmp dword [ebp + 0x2c], 0xf
cmova edx, dword [ebp + 0x18]
sub esp, 0x18
mov esi, esp
mov ecx, edx
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
lea edi, [ecx + 1]
mov dword [esi + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x473da0
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.004ae170
push 0x3f
push 0x23
call fcn.00407920
mov ecx, dword [ebp + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp + 0x30]
imul ecx
mov dword [ebp - 0x54], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x474322
xor esi, esi
mov dword [ebp - 0x7c], esi
mov eax, dword [0x4bdda8]
mov edi, esi
shl edi, 4
sub edi, esi
add edi, edi
mov dword [ebp - 0x78], edi
lea esi, [edi + 0x54]
cmp eax, dword [0x4bddb0]
jl 0x47408e
cmp eax, dword [0x4bddb8]
jg 0x47408e
mov ecx, dword [0x4bddac]
mov edx, dword [0x4bddb4]
cmp ecx, edx
jl 0x47408e
cmp ecx, dword [0x4bddbc]
jg 0x47408e
sub eax, dword [0x4bddb0]
sub eax, 0x14
cmp eax, 0x6e
ja 0x47408e
sub ecx, edx
cmp ecx, esi
jl 0x47408e
lea eax, [esi + 0x17]
cmp ecx, eax
jg 0x47408e
mov eax, 0x66666667
mov dword [ebp - 0x14], 0x1400
imul dword [0x4bdd8c]
mov eax, 0x66666667
mov dword [ebp - 0x5c], 1
sar edx, 1
lea esi, [edi + 0x56]
mov ecx, edx
mov dword [ebp - 0x30], 0x16
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2c], esi
imul dword [0x4bdd88]
movzx edi, cl
sar edx, 1
mov ecx, edi
mov eax, edx
shl ecx, 8
shr eax, 0x1f
add eax, edx
shl edi, 8
movzx eax, al
xor edx, edx
or ecx, eax
mov word [ebp - 0x22], dx
mov dword [ebp - 0x60], edx
mov eax, 0x66666667
imul dword [0x4bdd84]
shl ecx, 8
sar edx, 1
mov eax, edx
mov dword [ebp - 0x20], 0x80
shr eax, 0x1f
add eax, edx
mov word [ebp - 0x24], di
movzx eax, al
or ecx, eax
mov dword [ebp - 0x18], 0x14001400
lea eax, [esi + 0x17]
mov dword [ebp - 0x1c], eax
movzx eax, cl
and ecx, 0xff00
push 0
shl ax, 8
push 1
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x60]
push eax
push 2
lea eax, [ebp - 0x30]
mov word [ebp - 0x26], cx
push eax
push dword [0x4bdda4]
call dword [sym.imp.MSIMG32.dll_GradientFill]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x4bdd94]
jne 0x474083
cmp dword [0x4bddc8], 0
jne 0x474083
cmp dword [0x4bddcc], 0
jne 0x474083
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 1
call esi
bt ax, 0xf
jae 0x473f6b
push 0
push 0
push 0
push 0
push 4
call dword [sym.imp.USER32.dll_mouse_event]
mov eax, dword [ebp - 0x7c]
mov dword [0x4bda50], eax
push 0x26
call esi
bt ax, 0xf
jae 0x473f93
push 0
push 2
push 0
push 0x26
call dword [sym.imp.USER32.dll_keybd_event]
mov esi, dword [0x4bda50]
dec esi
mov dword [0x4bda50], esi
jmp 0x473fc1
push 0x28
call esi
bt ax, 0xf
jae 0x473fbb
push 0
push 2
push 0
push 0x28
call dword [sym.imp.USER32.dll_keybd_event]
mov esi, dword [0x4bda50]
inc esi
mov dword [0x4bda50], esi
jmp 0x473fc1
mov esi, dword [0x4bda50]
test esi, esi
jns 0x47405c
xor esi, esi
mov dword [0x4bda50], esi
mov edi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x7c]
cmp esi, eax
jne 0x47422c
lea eax, [edi + 0x56]
movd xmm2, eax
mov eax, dword fs:[0x2c]
cvtdq2ps xmm2, xmm2
mov ecx, dword [eax]
mov eax, dword [0x4beae8]
movss dword [ebp - 0x74], xmm2
cmp eax, dword [ecx + 4]
jle 0x474038
push 0x4beae8
call fcn.004af27e
add esp, 4
cmp dword [0x4beae8], 0xffffffff
jne 0x474033
movss xmm0, dword [ebp - 0x74]
push 0x4beae8
movss dword [0x4be9ec], xmm0
call fcn.004af22d
add esp, 4
movss xmm2, dword [ebp - 0x74]
movss xmm1, dword [0x4be9ec]
comiss xmm2, xmm1
movss dword [ebp - 0x74], xmm1
jbe 0x474099
subss xmm2, xmm1
divss xmm2, dword [0x4b4bc4]
addss xmm1, xmm2
jmp 0x4740b1
mov ecx, dword [ebp + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp + 0x30]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x473fd1
lea esi, [eax - 1]
jmp 0x473fcb
mov esi, dword [0x4bda50]
jmp 0x473fd1
mov esi, dword [0x4bda50]
jmp 0x473fd4
comiss xmm1, xmm2
jbe 0x4740be
movaps xmm0, xmm1
subss xmm0, xmm2
divss xmm0, dword [0x4b4bc4]
subss xmm1, xmm0
movss dword [0x4be9ec], xmm1
movss dword [ebp - 0x74], xmm1
mov eax, dword [0x4bdd8c]
cdq
and edx, 3
mov dword [ebp - 0x24], 0x1400
cvttss2si esi, xmm1
push 0
push 1
lea ecx, [edx + eax]
mov dword [ebp - 0x64], 1
mov eax, dword [0x4bdd88]
cdq
sar ecx, 2
and edx, 3
add eax, edx
movzx edi, cl
sar eax, 2
mov ecx, edi
movzx eax, al
xor edx, edx
shl ecx, 8
or ecx, eax
mov word [ebp - 0x12], dx
mov eax, dword [0x4bdd84]
mov dword [ebp - 0x68], edx
cdq
and edx, 3
shl ecx, 8
add eax, edx
shl edi, 8
sar eax, 2
movzx eax, al
or ecx, eax
mov dword [ebp - 0x30], 0x16
lea eax, [esi + 0x19]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], eax
movzx eax, cl
and ecx, 0xff00
shl ax, 8
mov word [ebp - 0x18], ax
lea eax, [ebp - 0x68]
push eax
push 2
lea eax, [ebp - 0x30]
mov dword [ebp - 0x20], 0x80
push eax
push dword [0x4bdda4]
mov dword [ebp - 0x28], 0x14001400
mov word [ebp - 0x16], cx
mov word [ebp - 0x14], di
call dword [sym.imp.MSIMG32.dll_GradientFill]
mov eax, dword [0x4bdd8c]
cdq
movss xmm0, dword [ebp - 0x74]
and edx, 3
addss xmm0, dword [0x4b4b04]
mov dword [ebp - 0x34], 0x1400
mov dword [ebp - 0x6c], 1
lea ecx, [edx + eax]
mov eax, dword [0x4bdd88]
cdq
sar ecx, 2
and edx, 3
add eax, edx
movzx edi, cl
sar eax, 2
xor edx, edx
movzx eax, al
mov ecx, edi
shl ecx, 8
or ecx, eax
mov word [ebp - 0x42], dx
mov eax, dword [0x4bdd84]
mov dword [ebp - 0x70], edx
cdq
and edx, 3
shl ecx, 8
add eax, edx
sar eax, 2
cvttss2si esi, xmm0
movzx eax, al
or ecx, eax
shl edi, 8
lea eax, [esi + 0x17]
mov dword [ebp - 0x50], 0x16
mov dword [ebp - 0x3c], eax
movzx eax, cl
and ecx, 0xff00
push 0
shl ax, 8
push 1
mov word [ebp - 0x48], ax
lea eax, [ebp - 0x70]
push eax
push 2
lea eax, [ebp - 0x50]
mov dword [ebp - 0x4c], esi
push eax
push dword [0x4bdda4]
mov dword [ebp - 0x40], 0x80
mov word [ebp - 0x46], cx
mov word [ebp - 0x44], di
mov dword [ebp - 0x38], 0x14001400
call dword [sym.imp.MSIMG32.dll_GradientFill]
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp + 0x30]
lea edi, [eax + eax*2]
movzx eax, word [0x4bdd80]
push ecx
push 0x190
add ax, 2
shl edi, 3
movzx eax, ax
add esi, edi
push eax
sub esp, 0x18
mov ecx, esp
push 0x4bdd68
call fcn.00440d20
sub esp, 0x10
mov eax, esp
sub esp, 0x18
mov ecx, esp
push esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0xff
call fcn.00440d20
mov ecx, dword [ebp - 0x78]
lea eax, [ecx + 0x5b]
push eax
push 0x2e
call fcn.00407920
movzx eax, word [0x4bdd80]
mov esi, dword [ebp + 0x30]
add ax, 2
push ecx
push 0x190
movzx eax, ax
add esi, edi
push eax
sub esp, 0x18
mov ecx, esp
push 0x4bdd68
call fcn.00440d20
sub esp, 0x10
mov eax, esp
sub esp, 0x18
mov ecx, esp
push esi
mov dword [eax], 0xdc
mov dword [eax + 4], 0xdc
mov dword [eax + 8], 0xdc
mov dword [eax + 0xc], 0xff
call fcn.00440d20
mov eax, dword [ebp - 0x78]
add eax, 0x5a
push eax
push 0x2d
call fcn.00407920
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp + 0x34]
inc eax
sub ecx, dword [ebp + 0x30]
movsx esi, ax
mov dword [ebp - 0x54], eax
mov eax, 0x2aaaaaab
imul ecx
mov dword [ebp - 0x7c], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x473de4
mov esi, dword [0x4bdda8]
mov eax, esi
mov edi, dword [0x4bddb0]
sub eax, edi
mov edx, dword [0x4bddac]
cmp eax, 0x14
jl 0x47435b
cmp eax, 0x82
jg 0x47435b
mov ecx, edx
sub ecx, dword [0x4bddb4]
cmp ecx, 0x46
jl 0x47435b
mov eax, dword [ebp + 0x14]
add eax, 0x46
cmp ecx, eax
jle 0x474377
cmp esi, edi
jl 0x474377
cmp esi, dword [0x4bddb8]
jg 0x474377
cmp edx, dword [0x4bddb4]
jl 0x474377
cmp edx, dword [0x4bddbc]
jle 0x474381
mov dword [0x4bddc4], 1
mov ecx, dword [ebp + 0x2c]
mov esi, dword [0x4bda50]
cmp ecx, 0xf
jbe 0x4743bd
mov edx, dword [ebp + 0x18]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4743b3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4743b3
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004af678
add esp, 8
lea ecx, [ebp + 0x30]
mov dword [ebp + 0x28], 0
mov dword [ebp + 0x2c], 0xf
mov byte [ebp + 0x18], 0
call fcn.0043f250
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004af21a
mov esp, ebp
pop ebp
ret 0x3c