Function at 0x439c50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x546f3d
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x5ab720]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0xb0], 3
call fcn.00505193
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x439cc5
push 0x80004005
call fcn.00402900
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0xb0], 4
call fcn.00505193
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x439cf7
push 0x80004005
call fcn.00402900
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0xb0], 5
xor eax, eax
push 0xa
lea ecx, [esp + 0x8c]
mov word [esp + 0x5c], bx
mov dword [esp + 0x5e], eax
mov dword [esp + 0x62], eax
mov dword [esp + 0x66], eax
mov word [esp + 0x6a], ax
mov word [esp + 0x7c], bx
mov dword [esp + 0x7e], eax
mov dword [esp + 0x82], eax
mov dword [esp + 0x86], eax
mov word [esp + 0x8a], ax
mov dword [esp + 0x54], ebx
call fcn.005032d0
mov dword [esp + 0x88], 0x56841c
lea ecx, [esp + 0x78]
mov byte [esp + 0xb0], 6
push ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov edi, dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x7c]
push eax
call edi
cmp dword [ebp + 0xc], ebx
jne 0x439f25
cmp dword [ebp + 8], ebx
mov word [esp + 0x68], bx
mov dword [esp + 0x6a], ebx
mov dword [esp + 0x6e], ebx
mov dword [esp + 0x72], ebx
mov word [esp + 0x76], bx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ebx
push ebx
mov ecx, 0x5b9548
jne 0x439dd9
push 0x568364
jmp 0x439dde
push str.CaptureDefaultFixed
push str.General
call fcn.00507bbf
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x20]
push edx
push str.LastFixDefaultTime
push str.General
mov ecx, 0x5b9548
mov esi, eax
call fcn.00507f8a
test eax, eax
je 0x439e98
cmp dword [esp + 0x2c], 0x10
jne 0x439e83
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x7c], edx
call edi
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 0xffffffff
jne 0x439e83
push ebx
push 0x568364
push str.General
mov ecx, 0x5b9548
call fcn.00507c28
push ebx
push str.CaptureDefaultFixed
push str.General
mov ecx, 0x5b9548
call fcn.00507c28
xor esi, esi
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x439e98
push eax
call fcn.004faebf
add esp, 4
mov dword [esp + 0x1c], ebx
push 0x10
lea ecx, [esp + 0x7c]
push ecx
push str.LastFixDefaultTime
push str.General
mov ecx, 0x5b9548
call fcn.00507d48
cmp esi, 1
jne 0x439f25
lea ecx, [esp + 0x88]
mov byte [esp + 0xb0], 5
call fcn.005032f3
mov byte [esp + 0xb0], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x439ef4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xb0], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a420
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43a420
lea eax, [esp + 0x28]
push eax
push 0x560db4
push 0x17
push ebx
push 0x560d64
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jge 0x439f76
lea ecx, [esp + 0x88]
mov byte [esp + 0xb0], 5
call fcn.005032f3
mov byte [esp + 0xb0], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x439ee8
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
mov edx, dword [ebp + 8]
push 9
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jl 0x439f41
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jl 0x439f41
xor esi, esi
cmp dword [esp + 0x34], ebx
mov dword [esp + 0x20], esi
jbe 0x43a246
mov eax, dword [esp + 0x10]
cmp eax, ebx
mov edi, dword [esp + 0x30]
je 0x439fce
mov dword [esp + 0x10], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push esi
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp eax, ebx
jl 0x43a22f
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
cmp eax, ebx
jl 0x43a22f
push 0x564f30
lea ecx, [esp + 0x18]
call fcn.004049b0
mov ecx, dword [esp + 0x38]
push ecx
lea ecx, [esp + 0x18]
call fcn.00410cd0
mov edx, dword [esp + 0x38]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
cmp eax, ebx
jl 0x43a22f
push str.SOFTWAREMicrosoftWindowsCurrentVersionMMDevicesAudio_
lea ecx, [esp + 0x1c]
call fcn.004049b0
cmp dword [ebp + 8], ebx
mov eax, str.Render_
je 0x43a062
mov eax, str.Capture_
push eax
lea ecx, [esp + 0x1c]
call fcn.00410cd0
mov ecx, 0x564974
lea esi, [esp + 0x14]
call fcn.00410600
add eax, 2
push eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, esi
call fcn.00410690
mov byte [esp + 0xb0], 7
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00404550
lea ecx, [esp + 0x48]
mov byte [esp + 0xb0], 6
call fcn.00401640
cmp edi, ebx
je 0x43a0c4
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x2c]
push edx
push 0x20019
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x40], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x43a22f
xor eax, eax
cmp edi, ebx
je 0x43a0f8
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, ebx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
jne 0x43a22f
xor eax, eax
push str.Role:0
lea edx, [esp + 0x34]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
push edx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x60]
mov dword [esp + 0x58], 0x10
call fcn.00429780
test eax, eax
jne 0x43a22f
push 0x10
call fcn.004fae94
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x43a22f
call fcn.00505193
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x439cbb
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ecx, [esp + 0x14]
add eax, 0x10
push ecx
mov ecx, edi
mov dword [edi], eax
call fcn.00404ff0
lea ebx, [edi + 4]
push ebx
lea edx, [esp + 0x5c]
push edx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov eax, dword [esp + 0x1c]
mov dword [edi + 0xc], eax
mov esi, dword [esp + 0x8c]
test esi, esi
je 0x43a1cf
test esi, esi
mov dword [esp + 0x2c], esi
mov eax, esi
je 0x43a339
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [esi]
je 0x43a1cb
push ebx
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
je 0x43a1fd
test esi, esi
jne 0x43a1a4
push edi
lea ecx, [esp + 0x8c]
call fcn.00503381
lea edx, [esp + 0x40]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov esi, 1
cmp eax, esi
jne 0x43a211
cmp dword [esp + 0x1c], esi
jne 0x43a217
mov dword [esp + 0x54], esi
jmp 0x43a22f
mov ecx, dword [esp + 0x2c]
push edi
push ecx
lea ecx, [esp + 0x90]
call fcn.005033aa
jmp 0x43a1dc
cmp dword [esp + 0x1c], esi
je 0x43a22f
lea eax, [esp + 0x40]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, esi
jne 0x43a22f
mov dword [esp + 0x3c], 1
mov esi, dword [esp + 0x20]
add esi, 1
xor ebx, ebx
cmp esi, dword [esp + 0x34]
mov dword [esp + 0x20], esi
jb 0x439fb6
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x43a25a
mov dword [esp + 0x10], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esp + 0x54], ebx
je 0x43a323
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x20]
push eax
push 0x564f00
push 1
push ebx
push 0x564ea0
mov byte [esp + 0xc4], 8
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x43a30b
mov edi, dword [esp + 0x8c]
cmp edi, ebx
je 0x43a30b
jmp 0x43a2a0
cmp edi, ebx
mov eax, edi
je 0x43a339
mov esi, dword [eax + 8]
cmp esi, ebx
mov edi, dword [edi]
je 0x43a307
cmp dword [esi + 0xc], 1
jne 0x43a307
lea ecx, [esp + 0x40]
push ecx
lea edx, [esi + 4]
push edx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
cmp eax, 1
jne 0x43a2ff
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
push ebx
push eax
mov eax, dword [edx + 0x30]
push ecx
call eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
push 1
push eax
mov eax, dword [edx + 0x30]
push ecx
call eax
mov eax, dword [esp + 0x20]
mov esi, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 2
push esi
push eax
call edx
push 2
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, ebx
jne 0x43a2a0
mov byte [esp + 0xb0], 6
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x43a323
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [ebp + 8], ebx
jne 0x43a33e
xor eax, eax
cmp dword [esp + 0x3c], ebx
sete al
push eax
push 0x568364
jmp 0x43a34d
jmp fcn.00504221
xor ecx, ecx
cmp dword [esp + 0x3c], ebx
sete cl
push ecx
push str.CaptureDefaultFixed
push str.General
mov ecx, 0x5b9548
call fcn.00507c28
mov esi, dword [esp + 0x8c]
cmp esi, ebx
je 0x43a3a1
cmp esi, ebx
mov eax, esi
je 0x43a339
mov edi, dword [eax + 8]
cmp edi, ebx
mov esi, dword [esi]
je 0x43a39d
mov eax, dword [edi]
sub eax, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43a394
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
call fcn.004faebf
add esp, 4
cmp esi, ebx
jne 0x43a367
lea ecx, [esp + 0x88]
call fcn.005031b6
lea ecx, [esp + 0x88]
mov byte [esp + 0xb0], 5
call fcn.005032f3
mov byte [esp + 0xb0], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a3e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xb0], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43a411
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x43a420
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [esp + 0xb0], 1
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x43a438
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xb0], 0
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x43a450
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x43a46b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret