Function at 0x42d810
Capabilities:
Check if file exists
Get common file path

Disassembly:
sub esp, 0x658
mov eax, dword [0x49eb88]
xor eax, esp
mov dword [esp + 0x654], eax
cmp dword [0x4a47a0], 0
mov eax, dword [esp + 0x668]
mov ecx, dword [esp + 0x66c]
mov edx, dword [esp + 0x674]
push ebx
mov ebx, dword [esp + 0x664]
push ebp
mov ebp, dword [esp + 0x66c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x680]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x684]
push edi
mov edi, dword [esp + 0x668]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
jne 0x42da88
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x462]
push eax
mov word [esp + 0x464], dx
call fcn.00450880
add esp, 0xc
push 0x104
lea ecx, [esp + 0x45c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x25a]
push eax
mov word [esp + 0x25c], dx
call fcn.00450880
push str.ntdll.dll
lea ecx, [esp + 0x468]
push ecx
push 0x48c964
lea edx, [esp + 0x268]
push 0x103
push edx
call fcn.0044fdd8
add esp, 0x20
lea eax, [esp + 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x42d935
lea ecx, [esp + 0x250]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42d9c8
lea edx, [esp + 0x250]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x42d9c8
push esi
push str.RtlGetVersion
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x42d9c7
push 0x110
lea eax, [esp + 0x148]
push 0
push eax
call fcn.00450880
add esp, 0xc
lea ecx, [esp + 0x140]
push ecx
mov dword [esp + 0x144], 0x114
call esi
mov eax, dword [esp + 0x144]
test eax, eax
je 0x42d9c7
mov edx, dword [esp + 0x148]
mov ecx, dword [esp + 0x150]
mov dword [0x4a47a0], eax
mov eax, dword [esp + 0x14c]
mov dword [0x4a479c], edx
mov edx, dword [esp + 0x680]
mov dword [0x4a4798], eax
push edx
lea eax, [esp + 0x158]
push eax
push 0x4a4590
mov dword [0x4a458c], ecx
call fcn.0045136f
add esp, 0xc
pop esi
push 0x118
lea ecx, [esp + 0x28]
push 0
push ecx
call fcn.00450880
add esp, 0xc
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x42da88
cmp dword [0x4a47a0], 0
jne 0x42da09
mov eax, dword [esp + 0x24]
mov dword [0x4a47a0], eax
cmp dword [0x4a479c], 0
jne 0x42da1c
mov ecx, dword [esp + 0x28]
mov dword [0x4a479c], ecx
cmp dword [0x4a4798], 0
jne 0x42da2f
mov edx, dword [esp + 0x2c]
mov dword [0x4a4798], edx
cmp dword [0x4a458c], 0
jne 0x42da41
mov eax, dword [esp + 0x30]
mov dword [0x4a458c], eax
cmp word [0x4a4588], 0
jne 0x42da5a
mov cx, word [esp + 0x134]
mov word [0x4a4588], cx
cmp word [0x4a4584], 0
jne 0x42da73
mov dx, word [esp + 0x136]
mov word [0x4a4584], dx
cmp byte [0x4a4580], 0
jne 0x42da88
mov al, byte [esp + 0x13a]
mov byte [0x4a4580], al
test edi, edi
je 0x42da94
mov ecx, dword [0x4a47a0]
mov dword [edi], ecx
test ebx, ebx
je 0x42daa0
mov edx, dword [0x4a479c]
mov dword [ebx], edx
test ebp, ebp
je 0x42daac
mov eax, dword [0x4a4798]
mov dword [ebp], eax
mov eax, dword [esp + 0x10]
pop edi
pop ebp
pop ebx
test eax, eax
je 0x42dabf
mov ecx, dword [0x4a458c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x42dae1
mov eax, dword [esp + 0x670]
test eax, eax
je 0x42dae1
push eax
push 0x4a4590
push ecx
call fcn.0045136f
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42daf3
mov dx, word [0x4a4588]
mov word [eax], dx
mov eax, dword [esp + 8]
test eax, eax
je 0x42db05
mov cx, word [0x4a4584]
mov word [eax], cx
mov eax, dword [esp]
test eax, eax
je 0x42db14
mov dl, byte [0x4a4580]
mov byte [eax], dl
mov ecx, dword [esp + 0x654]
xor ecx, esp
call fcn.0044f9f3
add esp, 0x658
ret