Function at 0x430dc0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get program files directory
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x54eed6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1003c
call fcn.005259e0
mov eax, dword [0x5ab720]
xor eax, esp
mov dword [esp + 0x10038], eax
push ebx
push esi
push edi
mov eax, dword [0x5ab720]
xor eax, esp
push eax
lea eax, [esp + 0x10050]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 4], 0
je 0x430e1c
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
jmp 0x431311
mov eax, dword [esi + 8]
test eax, eax
je 0x431311
xor edi, edi
cmp dword [eax + 0x500], edi
jbe 0x430e79
xor ebx, ebx
lea ecx, [eax + 0x4f8]
mov eax, edi
call fcn.0046fbb0
test eax, eax
je 0x430e65
mov eax, dword [esi + 8]
lea ecx, [ebx + eax]
movzx eax, word [ecx + 0x530]
test eax, 0x200
jne 0x430e65
test al, 8
je 0x430e65
test byte [ecx + 0x528], 1
je 0x430e80
mov eax, dword [esi + 8]
add edi, 1
add ebx, 0xa4
cmp edi, dword [eax + 0x500]
jb 0x430e33
mov eax, dword [esi + 8]
or dword [eax + 4], 0x40
mov ecx, dword [esi + 8]
test dword [ecx + 0x80], 0x20000
je 0x430e95
push esi
call fcn.00431870
mov edx, dword [esi + 8]
test byte [edx + 7], 1
je 0x430ea4
push esi
call fcn.00432160
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x19bc]
xor ebx, ebx
test edi, edi
je 0x430f8d
jmp 0x430ec0
test edi, edi
mov eax, edi
je 0x43102b
mov eax, dword [eax + 8]
test eax, eax
mov edi, dword [edi]
je 0x430f45
mov ecx, dword [eax + 0x78]
cmp ecx, 8
je 0x430ee0
cmp ecx, 9
jne 0x430f2f
cmp dword [eax + 0x24], 0
je 0x430f2f
mov ecx, dword [eax + 0xfc]
test ecx, 0x1000
jne 0x430f18
mov edx, dword [eax + 0x100]
test edx, 0x20000000
jne 0x430f18
test byte [eax + 0x104], 1
je 0x430f13
test ecx, 0x800
jne 0x430f18
test dl, 0x40
je 0x430f2f
test cl, 1
jne 0x430f25
test ecx, 0x400
je 0x430f2f
mov ecx, dword [esi + 8]
or dword [ecx + 4], 0x20000
mov eax, dword [eax + 0x100]
test al, 1
je 0x430f45
test eax, 0x100000
je 0x430f45
mov ebx, 1
test edi, edi
jne 0x430ec0
test ebx, ebx
je 0x430f8d
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x564f30
call fcn.00404670
push ecx
mov dword [esp + 0x10060], edi
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.RtHDVBg.exe
call fcn.00404670
mov dword [esp + 0x10060], 0xffffffff
call fcn.00427080
add esp, 8
mov ecx, dword [esi + 8]
test dword [ecx + 0x30], 0x100
je 0x431041
push 0
push str.SpdifFinished
push str.DefLevel
mov ecx, 0x5b9548
call fcn.00507bbf
test eax, eax
jne 0x431041
mov eax, dword [esi + 8]
add eax, 0x19b4
call fcn.004a6930
test eax, eax
je 0x431041
mov edx, dword [eax + 0x80]
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x431041
cmp dword [ecx + 0x24], 0
je 0x431041
mov edx, dword [0x560d84]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [0x560d88]
mov dword [eax + 4], edx
mov edx, dword [0x560d8c]
mov dword [eax + 8], edx
mov edx, dword [0x560d90]
mov dword [eax + 0xc], edx
call fcn.004a1800
test eax, eax
mov ecx, 0x5b9548
jne 0x431030
push str.Set_SPDIF_Vol_to_50_failed.
push str.Warning
push str.DefLevel
call fcn.00507caf
jmp 0x431041
jmp fcn.00504221
push 1
push str.SpdifFinished
push str.DefLevel
call fcn.00507c28
mov eax, dword [esi]
mov edx, dword [eax + 0x44]
mov ecx, esi
call edx
mov edi, dword [esi + 8]
test dword [edi + 0xa8], 0x4000000
je 0x43109f
add edi, 0x4f8
je 0x43109f
mov ebx, dword [edi + 0x18]
cmp ebx, 0xffffffff
je 0x431080
mov eax, ebx
imul eax, eax, 0xa4
cmp dword [eax + edi + 0xc0], 0
je 0x431080
call fcn.0046ffd0
mov ebx, dword [edi + 0x20]
cmp ebx, 0xffffffff
je 0x43109f
mov ecx, ebx
imul ecx, ecx, 0xa4
cmp dword [ecx + edi + 0xc0], 0
je 0x43109f
call fcn.0046ffd0
push 0
push 0
call fcn.00439c50
xor ebx, ebx
push ebx
push 1
call fcn.00439c50
xor eax, eax
add esp, 0x10
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x7fff
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x43120f
lea eax, [esp + 0x44]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x431105
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x42], 0x5c
jne 0x431137
lea eax, [esp + 0x44]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x431123
sub eax, edx
sar eax, 1
mov word [esp + eax*2 + 0x42], bx
mov edi, 9
cmp word [esp + 0x20], di
jne 0x431154
push str.RTKVAA64.EXE
push 0x7fff
lea ecx, [esp + 0x4c]
push ecx
jmp 0x431163
push str.RTKVADDA.EXE
push 0x7fff
lea edx, [esp + 0x4c]
push edx
call fcn.005221e4
add esp, 0xc
push ecx
lea eax, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00404670
call fcn.00426150
add esp, 4
cmp eax, ebx
jne 0x4311f5
push 0xfffe
lea ecx, [esp + 0x48]
push ebx
push ecx
call fcn.00523750
add esp, 0xc
lea edx, [esp + 0x44]
push edx
push ebx
push ebx
push 0x26
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x4311f5
push str.RealtekAudioAP
lea eax, [esp + 0x48]
push 0x7fff
push eax
call fcn.005221e4
add esp, 0xc
cmp word [esp + 0x20], di
jne 0x4311de
push str.RTKVAA64.EXE
push 0x7fff
lea ecx, [esp + 0x4c]
push ecx
jmp 0x4311ed
push str.RTKVADDA.EXE
push 0x7fff
lea edx, [esp + 0x4c]
push edx
call fcn.005221e4
add esp, 0xc
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43120f
mov eax, dword [esi + 8]
or dword [eax + 4], 0x20000000
mov ecx, dword [esi + 8]
mov edi, 0x400
test dword [ecx + 0xb4], edi
je 0x43125b
mov edx, dword [0x560d14]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [0x560d18]
mov dword [eax + 4], edx
mov edx, dword [0x560d1c]
push 4
mov dword [eax + 8], edx
mov edx, dword [0x560d20]
push 1
push 0x21
mov dword [eax + 0xc], edx
push ecx
lea edx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.004224f0
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xf4]
test al, 4
je 0x4312ac
test al, 0x40
jne 0x4312ac
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x564f30
call fcn.00404670
push ecx
mov dword [esp + 0x10060], 1
mov ecx, esp
mov dword [esp + 0x24], esp
push str.FMAPP.exe
call fcn.00404670
mov dword [esp + 0x10060], 0xffffffff
call fcn.00427080
add esp, 8
mov ecx, dword [esi + 8]
test dword [ecx + 8], 0x2000
je 0x4312be
push esi
call fcn.00433620
mov eax, dword [esi + 8]
test dword [eax + 0x14], edi
je 0x4312fa
add eax, 0x19b4
call fcn.004a68a0
cmp eax, ebx
je 0x4312fa
cmp dword [eax + 0x78], 1
jne 0x4312fa
mov ebx, 0x14
call fcn.0040ce40
mov edi, eax
test edi, edi
je 0x4312fa
call fcn.004cb1e0
test eax, eax
je 0x4312fa
mov eax, edi
call fcn.004cb5c0
mov eax, dword [esi + 8]
test dword [eax + 0x34], 0x80000000
je 0x431311
lea esi, [eax + 0x4f8]
call fcn.00471000
mov ecx, dword [esp + 0x10050]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10038]
xor ecx, esp
call fcn.0052151a
mov esp, ebp
pop ebp
ret