Function at 0x4378d0
Capabilities:
Check if file exists
Get common file path
Get startup folder
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4894f9
mov eax, dword fs:[0]
push eax
sub esp, 0x460
mov eax, dword [0x4ba1f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor edi, edi
push 0x206
lea edx, [ebp - 0x216]
xor ecx, ecx
push edi
mov dword [ebp - 0x460], edi
push edx
mov dword [ebp - 0x46c], eax
mov word [ebp - 0x218], cx
call fcn.004690e0
add esp, 0xc
push edi
push 0x28
lea eax, [ebp - 0x218]
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x49eadc
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
xor edx, edx
lea eax, [ebp - 0x218]
mov word [ebp - 0x440], dx
mov dword [ebp - 0x42c], 7
mov dword [ebp - 0x430], edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x437971
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x218]
lea esi, [ebp - 0x440]
call fcn.00401bf0
push 0x208
lea ecx, [ebp - 0x422]
xor eax, eax
push edi
mov dword [ebp - 4], edi
push ecx
mov word [ebp - 0x424], ax
call fcn.004690e0
mov eax, dword [ebp - 0x440]
mov esi, 8
add esp, 0xc
cmp dword [ebp - 0x42c], esi
jae 0x4379cc
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x437ad2
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], esi
jae 0x4379ef
lea eax, [ebp - 0x440]
push eax
mov eax, dword [0x4c4924]
push 0x104
lea edx, [ebp - 0x424]
push edx
push edi
push eax
push str.FILE_PATH
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x424], di
je 0x437ad2
xor ecx, ecx
lea eax, [ebp - 0x424]
mov dword [ebp - 0x448], 7
mov dword [ebp - 0x44c], edi
mov word [ebp - 0x45c], cx
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x437a40
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x424]
lea esi, [ebp - 0x45c]
call fcn.00401bf0
mov edi, esi
lea esi, [ebp - 0x440]
mov byte [ebp - 4], 1
call fcn.00412620
mov edi, 8
mov byte [ebp - 4], 0
cmp dword [ebp - 0x448], edi
jb 0x437a92
mov edx, dword [ebp - 0x45c]
push edx
call fcn.004657ea
add esp, 4
mov eax, dword [ebp - 0x440]
cmp dword [ebp - 0x42c], edi
jae 0x437aa6
lea eax, [ebp - 0x440]
mov esi, dword [ebp - 0x46c]
push eax
mov ecx, esi
call fcn.00402390
cmp dword [ebp - 0x42c], edi
jb 0x437acb
mov eax, dword [ebp - 0x440]
push eax
call fcn.004657ea
add esp, 4
mov eax, esi
jmp 0x437cd4
mov edx, dword [section..data]
mov eax, dword [edx + 0xc]
mov ecx, section..data
call eax
add eax, 0x10
mov dword [ebp - 0x468], eax
mov byte [ebp - 4], 2
test byte [sym.Install.exe____B_1__get_instance___singleton_VCFpFunshionIni___serialization_boost__CAAAVCFpFunshionIni__XZ_51], 1
jne 0x437b19
or dword [sym.Install.exe____B_1__get_instance___singleton_VCFpFunshionIni___serialization_boost__CAAAVCFpFunshionIni__XZ_51], 1
mov byte [ebp - 4], 3
call fcn.00414ab0
push 0x4923d0
call fcn.00465ab8
add esp, 4
mov byte [ebp - 4], 2
push 0x49bc04
lea ecx, [ebp - 0x460]
call fcn.00402390
push str.FILE_PATH
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 4
call fcn.00402390
lea ecx, [ebp - 0x460]
push ecx
push 0x4c4924
lea edx, [ebp - 0x464]
push edx
lea ecx, [ebp - 0x468]
mov edx, 0x4c4c54
mov byte [ebp - 4], 5
call fcn.00464090
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x464]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437b8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x460]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437bb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x468]
cmp dword [ecx - 0xc], edi
jne 0x437c80
test byte [sym.Install.exe____B_1__get_instance___singleton_VCFpFunshionIni___serialization_boost__CAAAVCFpFunshionIni__XZ_51], 1
jne 0x437be9
or dword [sym.Install.exe____B_1__get_instance___singleton_VCFpFunshionIni___serialization_boost__CAAAVCFpFunshionIni__XZ_51], 1
mov byte [ebp - 4], 6
call fcn.00414ab0
push 0x4923d0
call fcn.00465ab8
add esp, 4
mov byte [ebp - 4], 2
push 0x49bc04
lea ecx, [ebp - 0x464]
call fcn.00402390
push str.FILE_PATH
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 7
call fcn.00402390
lea edx, [ebp - 0x464]
push edx
push 0x4c4924
lea eax, [ebp - 0x460]
push eax
lea ecx, [ebp - 0x468]
mov edx, sym.Install.exe__t__1__get_instance___singleton_VCFpFunshionIni___serialization_boost__CAAAVCFpFunshionIni__XZ_4V__singleton_wrapp
mov byte [ebp - 4], 8
call fcn.00464090
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x460]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437c5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x464]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437c80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x468]
add esi, 0xfffffff0
push esi
call fcn.00401d20
mov edi, dword [ebp - 0x46c]
add eax, 0x10
add esp, 4
mov dword [edi], eax
mov byte [ebp - 4], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437cba
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
cmp dword [ebp - 0x42c], 8
jb 0x437cd2
mov eax, dword [ebp - 0x440]
push eax
call fcn.004657ea
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004657f5
mov esp, ebp
pop ebp
ret 4