Function at 0x40999d
Capabilities:
Get common file path

Disassembly:
push 0x348
mov eax, 0x5706d5
call fcn.00523ccd
mov eax, dword [ebp + 8]
mov dword [ebp - 0x294], eax
lea eax, [ebp - 0x224]
push eax
xor edi, edi
push edi
push edi
push 0x1c
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, edi
jne 0x409aae
lea eax, [ebp - 0x224]
push eax
lea esi, [ebp - 0x278]
call fcn.0040338f
push str.Ubisoft_Game_Launcher_settings.yml
mov eax, esi
push eax
mov dword [ebp - 4], edi
call fcn.0040d964
mov eax, esi
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.00494aa3
lea eax, [ebp - 0x240]
push eax
mov byte [ebp - 4], 1
call fcn.00494c8e
mov bl, al
pop ecx
neg bl
push 1
lea esi, [ebp - 0x240]
sbb bl, bl
mov byte [ebp - 4], 0
call fcn.00404145
inc bl
je 0x409ab6
lea eax, [ebp - 0x354]
push eax
call fcn.004036c8
mov esi, eax
push str.Uplay_config_wasnt_found__assuming_that_UPlay_is_not_installed.
push esi
mov byte [ebp - 4], 2
call fcn.00405d7d
pop ecx
pop ecx
lea eax, [ebp - 0x25c]
push eax
mov eax, esi
call fcn.00403732
push 3
pop ecx
mov byte [ebp - 4], cl
cmp dword [ebp - 0x248], 8
mov eax, dword [ebp - 0x25c]
jae 0x409a7a
lea eax, [ebp - 0x25c]
push eax
call fcn.00492b4d
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x25c]
call fcn.00404145
lea eax, [ebp - 0x354]
mov byte [ebp - 4], 0
call fcn.00402669
push 1
xor edi, edi
lea esi, [ebp - 0x278]
call fcn.00404145
call fcn.00523d29
ret 4
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x2b0]
push eax
mov byte [ebp - 4], 4
call fcn.0049515b
push 1
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 5
call fcn.004951ff
test al, al
jne 0x409b0b
push str.Cannot_open_UPlay_config_file
lea esi, [ebp - 0x240]
call fcn.0040338f
mov byte [ebp - 4], 6
push 0x3c3
mov ecx, str.srcApplicationDetector.cpp
lea eax, [ebp - 0x240]
call fcn.004025fb
lea ecx, [ebp - 0x2b0]
call fcn.0049534f
xor esi, esi
mov dword [ebp - 0x290], esi
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x288], esi
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 7
call fcn.00493656
test al, al
jne 0x409b5f
push str.Cannot_read_UPlay_config_file.
lea esi, [ebp - 0x240]
call fcn.0040338f
mov byte [ebp - 4], 8
push 0x3ce
jmp 0x409afb
mov dword [ebp - 0x2a4], esi
mov dword [ebp - 0x2a0], esi
mov dword [ebp - 0x29c], esi
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x28c]
sub eax, dword [ebp - 0x290]
push eax
push dword [ebp - 0x290]
lea eax, [ebp - 0x240]
push eax
call fcn.0048f17d
add esp, 0xc
push 1
push 0xa
lea ebx, [ebp - 0x2a4]
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00490133
pop ecx
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x240]
mov byte [ebp - 4], 9
call fcn.00404145
and dword [ebp - 0x27c], edi
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2a4]
sub eax, ecx
push 0x1c
cdq
pop esi
idiv esi
cmp dword [ebp - 0x27c], eax
jae 0x409e0a
mov esi, dword [ebp - 0x27c]
imul esi, esi, 0x1c
add esi, ecx
push str.game_installation_path:
push esi
call fcn.0040da14
cmp eax, 0xffffffff
je 0x409d54
push esi
lea esi, [ebp - 0x25c]
call fcn.0040d93e
push 1
lea eax, [ebp - 0x280]
push eax
mov byte [ebp - 4], 0xb
xor eax, eax
mov ecx, esi
mov dword [ebp - 0x280], 0x22
call fcn.0040eda1
cmp eax, 0xffffffff
je 0x409d41
push 0xffffffffffffffff
inc eax
push eax
mov eax, esi
push eax
lea esi, [ebp - 0x240]
call fcn.0040da3e
mov ebx, eax
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 0xc
call fcn.0040403a
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
mov byte [ebp - 4], 0xb
call fcn.00404145
push ebx
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x280], 0x22
call fcn.0040ee3f
cmp eax, 0xffffffff
jne 0x409c95
push ebx
jmp 0x409d43
lea ecx, [ebp - 0x25c]
call fcn.0040d9ef
lea eax, [ebp - 0x25c]
call fcn.0048ea55
lea eax, [ebp - 0x354]
push eax
call fcn.004036c8
mov esi, eax
push str.Discovered_UPlay_game_library:
push esi
mov byte [ebp - 4], 0xd
call fcn.00405d7d
pop ecx
pop ecx
push esi
lea ecx, [ebp - 0x25c]
call fcn.0041193b
pop ecx
lea eax, [ebp - 0x240]
push eax
mov eax, esi
call fcn.00403732
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x22c], 8
mov eax, dword [ebp - 0x240]
jae 0x409cfe
lea eax, [ebp - 0x240]
push eax
push 3
pop ecx
call fcn.00492b4d
pop ecx
push ebx
xor edi, edi
lea esi, [ebp - 0x240]
call fcn.00404145
lea eax, [ebp - 0x354]
mov byte [ebp - 4], 0xb
call fcn.00402669
mov ecx, dword [ebp - 0x294]
lea edx, [ebp - 0x25c]
mov byte [ebp - 4], 0xf
call fcn.004085ed
mov dword [ebp - 4], 0xb
push 1
xor edi, edi
lea esi, [ebp - 0x25c]
mov byte [ebp - 4], 9
call fcn.00404145
inc dword [ebp - 0x27c]
jmp 0x409bc7
lea esi, [ebp - 0x2a4]
call fcn.0040f00f
lea esi, [ebp - 0x290]
call fcn.00426e9d
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 4
call fcn.004951b2
jmp 0x409a9f