Function at 0x460300
Capabilities:
Capture microphone audio
Check for time delay via queryperformancecounter

Disassembly:
sub esp, 0x20
mov ecx, dword [esp + 0x24]
xor eax, eax
push esi
mov esi, dword [ecx + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
cmp esi, eax
jne 0x460323
mov eax, 0xffffd8fd
pop esi
add esp, 0x20
ret
push ebx
push ebp
mov edx, 1
add dword [ecx + 0x64], edx
push edi
jmp 0x460337
mov ecx, ebx
mov edx, 1
mov eax, dword [ecx + 0x4c]
test eax, eax
jne 0x4604c9
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x10], ebp
cmp dword [ecx + 0x1c], ebp
jle 0x46036a
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
shl eax, 5
test byte [eax + edi + 0x10], 1
je 0x4604c9
mov edi, dword [eax + edi]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebp
cmp dword [ecx + 0x18], ebp
jle 0x46038c
mov eax, dword [esi + 8]
mov ebx, dword [esi + 4]
shl eax, 5
test byte [eax + ebx + 0x10], 1
je 0x46038c
mov ebp, dword [eax + ebx]
mov dword [esp + 0x1c], edx
jmp 0x460396
cmp dword [esp + 0x10], ebp
je 0x4604c9
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x4603a7
add eax, 0x38
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xor ebx, ebx
cmp dword [esi + 0x50], ebx
jle 0x460408
mov edi, edi
cmp dword [esp + 0x18], 0
je 0x4603cf
cmp dword [esp + 0x10], 0
je 0x4603ee
mov ecx, dword [esi + 0x24]
push ecx
push 0
push edi
call fcn.004a6ff0
add esp, 0xc
jmp 0x4603ee
mov edx, dword [esp + 0x34]
push edi
push ebp
push edx
call fcn.0045f810
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x4603ee
mov dword [esp + 0x18], 1
cmp dword [esp + 0x1c], 0
je 0x4603f8
add ebp, dword [esi + 0x10]
cmp dword [esp + 0x10], 0
je 0x460402
add edi, dword [esi + 0x24]
inc ebx
cmp ebx, dword [esi + 0x50]
jl 0x4603b0
mov ebx, dword [esp + 0x34]
mov edi, dword [ebx + 0x3c]
test edi, edi
je 0x460459
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x460459
mov ecx, dword [esp + 0x20]
sub ecx, dword [edi + 0x38]
mov edx, dword [esp + 0x24]
sbb edx, dword [edi + 0x3c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fmul qword [edi + 0x40]
fmul qword [0x4cb530]
fld qword [ebx + 0x80]
fmul qword [0x4cb528]
faddp st(1)
fstp qword [ebx + 0x80]
cmp dword [esp + 0x1c], 0
je 0x46048b
mov eax, dword [esi + 8]
mov ecx, dword [esi]
shl eax, 5
add eax, dword [esi + 4]
push 0x20
push eax
push ecx
call dword [sym.imp.WINMM.dll_waveInAddBuffer]
test eax, eax
jne 0x4604dc
mov eax, dword [esi + 8]
inc eax
xor edx, edx
cmp eax, dword [esi + 0x48]
setge dl
dec edx
and eax, edx
mov dword [esi + 8], eax
cmp dword [esp + 0x10], 0
je 0x4604be
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
shl eax, 5
add eax, dword [esi + 0x18]
push 0x20
push eax
push ecx
call dword [sym.imp.WINMM.dll_waveOutWrite]
test eax, eax
jne 0x4604dc
mov eax, dword [esi + 0x1c]
inc eax
xor edx, edx
cmp eax, dword [esi + 0x48]
setge dl
dec edx
and eax, edx
mov dword [esi + 0x1c], eax
cmp dword [esp + 0x18], 0
je 0x460330
cmp dword [esp + 0x14], 0
je 0x4604f5
mov eax, dword [esp + 0x14]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
pop edi
pop ebp
mov dword [esp + 0xc], 0xffffd8f0
pop ebx
mov dword [0x6bbfbc], eax
mov eax, dword [esp + 8]
pop esi
add esp, 0x20
ret
mov eax, dword [esp + 0x18]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret