Function at 0x43121d
Capabilities:
Capture microphone audio

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffed4
mov esi, ecx
mov edi, esi
mov ebx, eax
mov dword [esp], edx
test byte [edi + 0x10], 1
je 0x431b48
and dword [edi + 0x10], 0xfffffffe
mov eax, dword [ebx + 0xf]
test eax, eax
jne 0x43124c
xor eax, eax
jmp 0x431b4a
mov edx, dword [edi]
mov ecx, dword [ebx + 0x124]
mov eax, dword [ebx + 0x118]
call fcn.00426286
push 0x20
push edi
push dword [esp + 8]
call sub.WINMM.dll_waveInAddBuffer
lea eax, [ebx + 0x13]
mov edx, dword [eax]
test edx, edx
je 0x43127b
mov ecx, dword [eax]
mov al, byte [ecx + 0x10]
jmp 0x43127d
mov al, 1
mov byte [esp + 4], al
mov dl, byte [esp + 4]
mov byte [ebx + 0x17], dl
mov byte [esp + 5], 0
lea esi, [ebx + 0x18]
jmp 0x43136a
mov al, byte [esp + 5]
mov byte [esp + 6], al
lea eax, [ebx + 0x13]
mov edx, dword [ebx + 0x118]
mov dword [esp + 8], edx
mov ecx, dword [ebx + 0x120]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
test ecx, ecx
je 0x4312cd
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
mov cl, byte [edx + 0x10]
jmp 0x4312cf
mov cl, 1
mov byte [esp + 0x14], cl
mov al, byte [esp + 0x14]
push eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov al, byte [esp + 0xa]
call fcn.00433490
mov edi, eax
test edi, edi
jne 0x4312fa
mov byte [esp + 0x58], 0x81
lea eax, [esp + 0x58]
jmp 0x43135d
mov dword [esp + 0x128], edi
fild dword [esp + 0x128]
fmul dword [0x431b55]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0044abd4
add esp, 8
fmul dword [0x431b59]
cmp edi, 0x20000
jl 0x431332
fld qword [0x431b5d]
jmp 0x431338
fld qword [0x431b65]
faddp st(1)
call fcn.0044aad4
mov ebp, eax
cmp ebp, 0x7f
jle 0x43134a
mov dl, 0x7f
jmp 0x431355
cmp ebp, 0xffffff81
jge 0x431353
mov dl, 0x81
jmp 0x431355
mov edx, ebp
mov byte [esp + 0x58], dl
lea eax, [esp + 0x58]
lea ecx, [esp + 0x58]
mov al, byte [ecx]
mov byte [esi], al
inc byte [esp + 5]
inc esi
mov dl, byte [esp + 5]
mov cl, byte [ebx + 0x17]
cmp dl, cl
jb 0x431295
lea eax, [ebx + 0x17]
mov dl, byte [eax]
test dl, dl
jne 0x43138d
mov byte [esp + 0x5c], 0x81
lea ecx, [esp + 0x5c]
jmp 0x4313d7
mov dl, byte [eax]
cmp dl, 1
jne 0x4313ab
lea ecx, [eax + 1]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x60]
mov cl, byte [edx]
mov byte [esp + 0x5c], cl
lea ecx, [esp + 0x5c]
jmp 0x4313d7
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
cmp dl, cl
setg dl
and edx, 1
test dl, dl
je 0x4313c2
lea edx, [eax + 1]
jmp 0x4313c5
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x64]
mov cl, byte [eax]
mov byte [esp + 0x5c], cl
lea ecx, [esp + 0x5c]
mov eax, dword [ebx + 0xf]
dec eax
jne 0x4317d2
mov dl, byte [esp + 0x5c]
mov al, byte [ebx + 0x564]
cmp dl, al
setge dl
and edx, 1
test dl, dl
je 0x43178f
mov byte [esp + 0x68], 0
lea esi, [ebx + 0x18]
jmp 0x4314df
mov al, byte [esp + 0x68]
mov byte [esp + 0x69], al
lea eax, [ebx + 0x13]
mov edx, dword [ebx + 0x118]
mov dword [esp + 0x6c], edx
mov ecx, dword [ebx + 0x120]
sar ecx, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [edx]
test ecx, ecx
je 0x431442
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov cl, byte [edx + 0x10]
jmp 0x431444
mov cl, 1
mov byte [esp + 0x78], cl
mov al, byte [esp + 0x78]
push eax
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov al, byte [esp + 0x6d]
call fcn.00433490
mov edi, eax
test edi, edi
jne 0x43146f
mov byte [esp + 0x7c], 0x81
lea eax, [esp + 0x7c]
jmp 0x4314d2
mov dword [esp + 0x128], edi
fild dword [esp + 0x128]
fmul dword [0x431b55]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0044abd4
add esp, 8
fmul dword [0x431b59]
cmp edi, 0x20000
jl 0x4314a7
fld qword [0x431b5d]
jmp 0x4314ad
fld qword [0x431b65]
faddp st(1)
call fcn.0044aad4
mov ebp, eax
cmp ebp, 0x7f
jle 0x4314bf
mov dl, 0x7f
jmp 0x4314ca
cmp ebp, 0xffffff81
jge 0x4314c8
mov dl, 0x81
jmp 0x4314ca
mov edx, ebp
mov byte [esp + 0x7c], dl
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x7c]
mov al, byte [ecx]
mov byte [esi], al
inc byte [esp + 0x68]
inc esi
mov dl, byte [esp + 0x68]
mov cl, byte [ebx + 0x17]
cmp dl, cl
jb 0x431408
lea eax, [ebx + 0x17]
mov dl, byte [eax]
test dl, dl
jne 0x431508
mov byte [esp + 0x80], 0x81
lea ecx, [esp + 0x80]
jmp 0x43156a
mov dl, byte [eax]
cmp dl, 1
jne 0x431532
lea ecx, [eax + 1]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x84]
mov cl, byte [edx]
mov byte [esp + 0x80], cl
lea ecx, [esp + 0x80]
jmp 0x43156a
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
cmp dl, cl
setg dl
and edx, 1
test dl, dl
je 0x431549
lea edx, [eax + 1]
jmp 0x43154c
lea edx, [eax + 2]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
mov cl, byte [eax]
mov byte [esp + 0x80], cl
lea ecx, [esp + 0x80]
lea eax, [esp + 0x80]
mov dl, byte [eax]
mov byte [esp + 0x5c], dl
mov al, byte [esp + 0x5c]
mov dl, byte [ebx + 0x564]
cmp al, dl
setge cl
and ecx, 1
test cl, cl
je 0x43167f
mov al, byte [ebx + 0x572]
test al, al
je 0x43167f
lea edx, [ebx + 0x13]
lea ecx, [ebx + 0x13]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0x94]
mov edx, dword [eax]
test edx, edx
je 0x4315ce
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx]
mov dl, byte [eax + 0x10]
jmp 0x4315d0
mov dl, 1
mov ecx, dword [ebx + 0x120]
xor eax, eax
sar ecx, 1
mov al, dl
imul ecx
shl eax, 2
mov edx, dword [ebx + 0x56e]
add eax, edx
mov dword [esp + 0x90], eax
mov eax, dword [ebx + 0x120]
mov ecx, dword [ebx + 0x120]
sar eax, 1
sub ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x8c]
mov edx, dword [eax]
test edx, edx
je 0x431630
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov esi, dword [eax]
call dword [esi + 4]
lea eax, [ebx + 0x13]
mov dword [esp + 0x9c], eax
mov edx, dword [ebx + 0x118]
mov dword [esp + 0xa0], edx
mov ecx, dword [ebx + 0x120]
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0x9c]
mov edx, dword [eax]
test edx, edx
je 0x4316b7
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov esi, dword [eax]
call dword [esi + 4]
jmp 0x4316b7
lea eax, [ebx + 0x13]
mov edx, dword [ebx + 0x118]
mov dword [esp + 0xa8], edx
mov ecx, dword [ebx + 0x120]
mov dword [esp + 0xac], ecx
mov edx, dword [eax]
test edx, edx
je 0x4316b7
mov eax, dword [eax]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov esi, dword [eax]
call dword [esi + 4]
mov dword [ebx + 0xf], 2
mov eax, dword [ebx + 7]
test eax, eax
je 0x431b48
mov edx, dword [ebx + 0xb]
mov eax, dword [ebx + 7]
mov ecx, dword [eax]
call dword [ecx]
add esp, 0xfffffffc
lea edx, [ebx + 0x13]
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0xb4]
mov edx, dword [eax]
test edx, edx
je 0x43175c
mov eax, dword [esp + 0xb4]
mov edx, dword [eax]
mov dword [esp + 0xbc], edx
mov eax, dword [esp + 0xbc]
mov edx, dword [eax + 4]
mov dword [esp + 0xc0], edx
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx + 8]
test ecx, ecx
jg 0x431727
xor eax, eax
mov dword [esp + 0xc4], eax
jmp 0x431753
mov eax, dword [esp + 0xc0]
cdq
idiv ecx
imul esi, eax, 0x2710
mov eax, dword [esp + 0xc0]
cdq
idiv ecx
imul eax, edx, 0x2710
cdq
idiv ecx
add esi, eax
mov dword [esp + 0xc4], esi
lea ecx, [esp + 0xc4]
jmp 0x43176c
xor eax, eax
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0xb8]
mov eax, dword [edx]
mov dword [esp], eax
mov edx, dword [ebx + 0xb]
mov eax, dword [ebx + 7]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x431b48
mov edx, dword [ebx + 0x124]
shl edx, 2
push edx
push dword [ebx + 0x118]
push dword [ebx + 0x56e]
call fcn.004460d8
mov byte [ebx + 0x572], 1
mov eax, dword [ebx + 7]
add esp, 0xc
test eax, eax
je 0x431b48
mov eax, dword [ebx + 7]
lea edx, [ebx + 0x17]
mov ecx, dword [ebx + 0xb]
mov ebx, dword [eax]
call dword [ebx + 0x10]
jmp 0x431b48
lea eax, [ebx + 0x13]
mov dword [esp + 0xc8], eax
mov edx, dword [ebx + 0x118]
mov dword [esp + 0xcc], edx
mov ecx, dword [ebx + 0x120]
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xc8]
mov edx, dword [eax]
test edx, edx
je 0x43181f
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
mov esi, dword [eax]
call dword [esi + 4]
lea esi, [ebx + 0x13]
mov eax, dword [esi]
test eax, eax
je 0x43186a
mov edi, dword [esi]
mov ebp, dword [edi + 4]
mov ecx, dword [edi + 8]
test ecx, ecx
jg 0x43183f
xor edx, edx
mov dword [esp + 0xdc], edx
jmp 0x431861
mov eax, ebp
cdq
idiv ecx
imul esi, eax, 0x2710
mov eax, ebp
cdq
idiv ecx
imul eax, edx, 0x2710
cdq
idiv ecx
add esi, eax
mov dword [esp + 0xdc], esi
lea ecx, [esp + 0xdc]
jmp 0x43187a
xor eax, eax
lea ecx, [esp + 0xe0]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd8], ecx
mov edx, dword [esp + 0xd8]
mov eax, dword [edx]
mov dword [esp + 0xd4], eax
mov dl, byte [esp + 0x5c]
mov cl, byte [ebx + 0x565]
cmp dl, cl
setge al
and eax, 1
test al, al
je 0x4318b9
mov edx, dword [esp + 0xd4]
mov dword [ebx + 0x566], edx
jmp 0x431ad9
lea ecx, [ebx + 0x566]
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd4]
mov ecx, dword [eax]
sub edx, ecx
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xec], eax
mov edx, dword [esp + 0xec]
mov ecx, dword [ebx + 0x56a]
cmp edx, ecx
setg al
and eax, 1
test al, al
je 0x431ad9
lea edx, [ebx + 0x13]
mov ecx, 0x1194
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], ecx
mov eax, dword [ebx + 0x566]
mov edx, dword [esp + 0xf4]
add eax, edx
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0xfc], ecx
mov eax, dword [esp + 0xf0]
mov edx, dword [eax]
test edx, edx
je 0x4319bb
mov ecx, dword [esp + 0xf0]
mov esi, 0x2710
mov eax, dword [ecx]
mov dword [esp + 0x100], eax
mov edx, dword [esp + 0x100]
mov ecx, dword [edx + 8]
mov dword [esp + 0x104], ecx
mov ecx, 0x2710
mov eax, dword [esp + 0xfc]
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esp + 0xfc]
cdq
idiv esi
mov eax, edx
mov esi, 0x2710
imul dword [esp + 0x104]
cdq
idiv esi
imul ecx, dword [esp + 0x104]
add ecx, eax
mov eax, dword [esp + 0x100]
mov edx, ecx
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [ebx + 0xf], 1
mov eax, dword [ebx + 0x124]
shl eax, 2
push eax
push dword [ebx + 0x118]
push dword [ebx + 0x56e]
call fcn.004460d8
mov byte [ebx + 0x572], 1
mov edx, dword [ebx + 7]
add esp, 0xc
test edx, edx
je 0x431ad5
mov edx, dword [ebx + 0xb]
mov eax, dword [ebx + 7]
mov ecx, dword [eax]
call dword [ecx + 4]
add esp, 0xfffffffc
lea eax, [ebx + 0x13]
mov dword [esp + 0x10c], eax
mov edx, dword [esp + 0x10c]
mov ecx, dword [edx]
test ecx, ecx
je 0x431aa7
mov eax, dword [esp + 0x10c]
mov edx, dword [eax]
mov dword [esp + 0x114], edx
mov ecx, dword [esp + 0x114]
mov eax, dword [ecx + 4]
mov dword [esp + 0x118], eax
mov edx, dword [esp + 0x114]
mov ecx, dword [edx + 8]
mov dword [esp + 0x11c], ecx
mov eax, dword [esp + 0x11c]
test eax, eax
jg 0x431a63
xor edx, edx
mov dword [esp + 0x120], edx
jmp 0x431a9e
mov eax, dword [esp + 0x118]
cdq
idiv dword [esp + 0x11c]
imul ecx, eax, 0x2710
mov eax, dword [esp + 0x118]
cdq
idiv dword [esp + 0x11c]
imul eax, edx, 0x2710
cdq
idiv dword [esp + 0x11c]
add ecx, eax
mov dword [esp + 0x120], ecx
lea ecx, [esp + 0x120]
jmp 0x431ab7
xor eax, eax
lea ecx, [esp + 0x124]
mov dword [esp + 0x124], eax
mov dword [esp + 0x110], ecx
mov edx, dword [esp + 0x110]
mov eax, dword [edx]
mov dword [esp], eax
mov edx, dword [ebx + 0xb]
mov eax, dword [ebx + 7]
mov ecx, dword [eax]
call dword [ecx + 0xc]
xor eax, eax
jmp 0x431b4a
mov edx, dword [ebx + 7]
test edx, edx
je 0x431b06
add esp, 0xfffffffc
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov edx, dword [ebx + 0xb]
mov eax, dword [ebx + 7]
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebx + 7]
lea edx, [ebx + 0x17]
mov ecx, dword [ebx + 0xb]
mov esi, dword [eax]
call dword [esi + 0x10]
xor eax, eax
mov dword [esp + 0x124], eax
mov edx, dword [esp + 0x124]
mov ecx, dword [ebx + 0x560]
cmp edx, ecx
setl al
and eax, 1
test al, al
je 0x431b48
mov edx, dword [ebx + 0x560]
mov ecx, dword [esp + 0xd4]
cmp edx, ecx
setl al
and eax, 1
test al, al
je 0x431b48
mov eax, ebx
call fcn.00431039
xor eax, eax
add esp, 0x12c
pop ebp
pop edi
pop esi
pop ebx
ret