Function at 0x439dd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x38
push esi
push edi
mov edi, dword [0x462018]
push 0
push 0xb371a0
call fcn.00405970
add esp, 8
test eax, eax
je 0x439e98
cmp byte [0x46bd01], 0
je 0x439e98
mov eax, dword [0x461fe8]
mov edx, 1
push str.Foreground
mov eax, dword [eax + 0x47d4]
mov ecx, dword [eax]
call fcn.0041ae60
mov esi, eax
movss xmm2, dword [0x457890]
mov eax, dword [0x46bcb0]
add esp, 4
cdq
xorps xmm3, xmm3
sub eax, edx
sar eax, 1
push 0x1f
push ecx
mov dword [esp], 0x40c2c75c
mov ecx, esi
movd xmm0, eax
mov eax, dword [0x46bcb4]
cdq
cvtdq2ps xmm0, xmm0
sub eax, edx
sar eax, 1
movss dword [esp + 0x18], xmm0
movd xmm0, eax
lea eax, [esp + 0x18]
cvtdq2ps xmm0, xmm0
push eax
movss dword [esp + 0x20], xmm0
call fcn.00425880
push ecx
mov dword [esp], 0x3f800000
mov ecx, esi
push 1
push 0xff0000ff
push dword [esi + 0x54]
push dword [esi + 0x5c]
call fcn.0042f9e0
mov dword [esi + 0x54], 0
cmp byte [0x46bcfe], 0
je 0x43a100
push 0
push 0xb371a0
call fcn.00405970
add esp, 8
test eax, eax
je 0x43a100
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x43a100
call fcn.0043a180
mov esi, eax
cmp esi, 0xffffffff
je 0x43a100
sub esp, 0xc
mov dword [esp + 0x18], 0x71a08
mov ecx, esp
lea eax, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push eax
push edx
call fcn.00405340
mov ecx, 0xb360c4
call fcn.0043b300
add esp, 0xc
push 0
push eax
call fcn.00405970
add esp, 8
mov ecx, esi
cmp eax, 1
jne 0x439fe0
call fcn.0043b1b0
cmp eax, 0xffffffff
je 0x43a100
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.0043b220
movss xmm1, dword [0x457818]
mov edx, eax
add esp, 4
movq xmm0, qword [edx]
mov ecx, dword [edx + 8]
movq qword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x24]
ucomiss xmm0, xmm1
mov dword [esp + 0x2c], ecx
lahf
test ah, 0x44
jnp 0x43a100
movss xmm0, dword [esp + 0x28]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x43a100
movq xmm0, qword [edx]
sub esp, 0xc
mov eax, dword [edx + 8]
mov ecx, esp
lea edx, [esp + 0x30]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x462018]
call fcn.0043a940
add esp, 0xc
test al, al
je 0x43a100
call fcn.0043bbd0
push 0
lea edx, [esp + 0x34]
mov ecx, dword [eax + 0x2c]
push ecx
mov dword [esp], 0
push 0x457112
movss xmm2, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push 0x45710c
push edx
push 0xff0000ff
lea edx, [esp + 0x28]
push edx
jmp 0x43a0a8
call fcn.0043b1b0
cmp eax, 0xffffffff
je 0x43a100
mov ecx, esi
call fcn.0043b1e0
test al, al
je 0x43a100
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.0043b220
movss xmm1, dword [0x457818]
mov esi, eax
add esp, 4
movq xmm0, qword [esi]
mov ecx, dword [esi + 8]
movq qword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x24]
ucomiss xmm0, xmm1
mov dword [esp + 0x2c], ecx
lahf
test ah, 0x44
jnp 0x43a100
movss xmm0, dword [esp + 0x28]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x43a100
movq xmm0, qword [esi]
sub esp, 0xc
mov edx, esp
mov eax, ecx
mov ecx, edi
movq qword [edx], xmm0
mov dword [edx + 8], eax
lea edx, [esp + 0x30]
call fcn.0043a940
add esp, 0xc
test al, al
je 0x43a100
call fcn.0043bbd0
push 0
push ecx
mov dword [esp], 0
lea ecx, [esp + 0x38]
mov edx, dword [eax + 0x2c]
push 0x45711a
push str.Target
push ecx
movss xmm2, dword [edx + 0xc]
lea ecx, [esp + 0x24]
push 0xff0000ff
push ecx
mov ecx, dword [edx + 8]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x30], xmm0
movups xmm0, xmmword [eax + 0x60]
push eax
movups xmmword [esp + 0x50], xmm0
call fcn.00420c40
cmp byte [0x46bd01], 0
je 0x43a0e4
cmp dword [0x45b06c], 0xc8
jge 0x43a100
movss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x24]
push ecx
mov dword [esp], 0x40000000
call fcn.0043a790
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret