Function at 0x10007dd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10044281
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x10054040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [0x10056730]
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
test eax, eax
je 0x10007e22
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000813e
mov ecx, dword [0x10056730]
mov eax, dword [ecx + 8]
cmp byte [eax], 0
je 0x1000813e
cmp byte [0x100552ac], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [0x10056734]
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [0x10056734]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
je 0x1000813e
mov eax, dword [0x10056730]
mov eax, dword [eax]
cmp byte [eax + 1], 0
je 0x10007e70
or dword [edi + 0x24], 1
test byte [edi + 0x24], 1
je 0x1000813e
mov ecx, dword [ebx + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx + 0x30]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb 0x10007fc3
mov ecx, dword [0x10055274]
test ecx, ecx
jne 0x10007ea8
mov dword [ebp - 0x14], ecx
jmp 0x10007eb0
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov ecx, dword [ebx + 0x34]
mov eax, 0x2aaaaaab
sub ecx, dword [ebx + 0x30]
imul ecx
fstp dword [ebp - 0x10]
mov dword [ebp - 0x28], 0
sar edx, 1
mov eax, edx
mov dword [ebp - 0x24], 0
shr eax, 0x1f
mov dword [ebp - 0x20], 0
add eax, edx
je 0x10007f6d
cmp eax, 0x15555555
ja 0x10008152
lea esi, [eax + eax*2]
shl esi, 2
test esi, esi
jne 0x10007f00
xor edx, edx
jmp 0x10007f3c
cmp esi, 0x1000
jb 0x10007f31
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x10008157
push eax
call fcn.10042667
add esp, 4
test eax, eax
je 0x10007f2b
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov dword [edx - 4], eax
jmp 0x10007f3c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push esi
call fcn.10042667
add esp, 4
mov edx, eax
lea ecx, [esi + edx]
mov dword [ebp - 0x28], edx
mov esi, dword [ebx + 0x34]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebx + 0x30]
cmp ecx, esi
je 0x10007f6a
nop
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
add ecx, 0xc
mov dword [edx + 8], eax
add edx, 0xc
cmp ecx, esi
jne 0x10007f50
mov dword [ebp - 0x24], edx
vmovss xmm0, dword [ebp - 0x10]
lea esi, [ebx + 0x3c]
lea eax, [ebp - 0x28]
vmovss dword [ebp - 0x1c], xmm0
cmp esi, eax
je 0x10007fb3
mov ecx, esi
call fcn.10002e20
mov eax, dword [ebp - 0x28]
vmovss xmm0, dword [ebp - 0x1c]
mov dword [esi], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 8], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x28]
vmovss dword [esi + 0xc], xmm0
call fcn.10002e20
mov esi, dword [ebp + 0xc]
vmovss xmm2, dword [edi + 0x1c]
vmovss xmm1, dword [edi + 0x18]
vxorps xmm0, xmm0, xmm0
vsubss xmm2, xmm2, xmm0
vucomiss xmm2, xmm0
vsubss xmm1, xmm1, xmm0
lahf
test ah, 0x44
jp 0x10007fed
vucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x10007ffe
vmovaps xmm0, xmm2
call fcn.100018e0
vmulss xmm0, xmm0, dword [0x1004c964]
vmovsd xmm1, qword [0x1004c918]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [edi + 0x18]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
vmovsd xmm1, qword [0x1004c918]
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [edi + 0x1c]
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
vcvtsd2ss xmm0, xmm0, xmm0
vaddss xmm0, xmm0, dword [ebp - 0x10]
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10008055
vsqrtsd xmm0, xmm0, xmm0
jmp 0x1000805a
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [esi + 0x14]
vsubss xmm0, xmm0, dword [edi + 0x10]
vaddss xmm0, xmm0, dword [ebp - 0x14]
vmulss xmm0, xmm0, dword [0x1004c898]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
vcvtsd2ss xmm1, xmm0, xmm0
vmulss xmm1, xmm1, dword [ebp - 0x10]
vmovsd xmm0, qword [ebp - 0x18]
vmovss dword [edi + 0x18], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [ebp - 0x10]
vmovss dword [edi + 0x1c], xmm0
mov eax, dword [esi + 0x10]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x14], eax
cmp byte [ebx + 0x15], 0
je 0x1000813e
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10055238]
mov esi, dword [0x1005528c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10055328]
cmp eax, dword [ecx + 4]
jle 0x10008126
push 0x10055328
call fcn.10042603
add esp, 4
cmp dword [0x10055328], 0xffffffff
jne 0x10008126
push str.m_flChargeBeginTime
push str.CTFPipebombLauncher
mov dword [ebp - 4], 0
call fcn.10033440
push 0x10055328
mov dword [0x1005531c], eax
call fcn.100425b2
add esp, 4
mov eax, dword [0x1005531c]
vxorps xmm1, xmm1, xmm1
vmovss xmm0, dword [esi + eax]
vcomiss xmm0, xmm1
jbe 0x1000813e
and dword [edi + 0x24], 0xfffffffe
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.100032d0
call fcn.10001a10
int3