Function at 0x409e9d
Capabilities:
Get common file path

Disassembly:
push 0x348
mov eax, 0x5b5d28
call fcn.0056bee1
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 0x409fae
lea eax, [ebp - 0x224]
push eax
lea esi, [ebp - 0x278]
call fcn.004037ae
push str.Ubisoft_Game_Launcher_settings.yml
mov eax, esi
push eax
mov dword [ebp - 4], edi
call fcn.0040dc78
mov eax, esi
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.00482763
lea eax, [ebp - 0x240]
push eax
mov byte [ebp - 4], 1
call fcn.004828d0
mov bl, al
pop ecx
neg bl
push 1
lea esi, [ebp - 0x240]
sbb bl, bl
mov byte [ebp - 4], 0
call fcn.00404589
inc bl
je 0x409fb6
lea eax, [ebp - 0x354]
push eax
call fcn.00403aba
mov esi, eax
push str.Uplay_config_wasnt_found__assuming_that_UPlay_is_not_installed.
push esi
mov byte [ebp - 4], 2
call fcn.0040635f
pop ecx
pop ecx
lea eax, [ebp - 0x25c]
push eax
mov eax, esi
call fcn.00403b24
push 3
pop ecx
mov byte [ebp - 4], cl
cmp dword [ebp - 0x248], 8
mov eax, dword [ebp - 0x25c]
jae 0x409f7a
lea eax, [ebp - 0x25c]
push eax
call fcn.0047feaf
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x25c]
call fcn.00404589
lea eax, [ebp - 0x354]
mov byte [ebp - 4], 0
call fcn.004027ed
push 1
xor edi, edi
lea esi, [ebp - 0x278]
call fcn.00404589
call fcn.0056bf3d
ret 4
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x2b0]
push eax
mov byte [ebp - 4], 4
call fcn.00482edd
push 1
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 5
call fcn.00482f81
test al, al
jne 0x40a00b
push str.Cannot_open_UPlay_config_file
lea esi, [ebp - 0x240]
call fcn.004037ae
mov byte [ebp - 4], 6
push 0x3ac
mov ecx, str.srcApplicationDetector.cpp
lea eax, [ebp - 0x240]
call fcn.0040277f
lea ecx, [ebp - 0x2b0]
call fcn.004830d1
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.0048103b
test al, al
jne 0x40a05f
push str.Cannot_read_UPlay_config_file.
lea esi, [ebp - 0x240]
call fcn.004037ae
mov byte [ebp - 4], 8
push 0x3b7
jmp 0x409ffb
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.0047c050
add esp, 0xc
push 1
push 0xa
lea ebx, [ebp - 0x2a4]
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.0047d052
pop ecx
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x240]
mov byte [ebp - 4], 9
call fcn.00404589
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 0x40a30f
mov esi, dword [ebp - 0x27c]
imul esi, esi, 0x1c
add esi, ecx
push 0x17
push str.game_installation_path:
xor eax, eax
mov ecx, esi
call fcn.0040ee00
cmp eax, 0xffffffff
je 0x40a259
push esi
lea esi, [ebp - 0x25c]
call fcn.0040dc52
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.0040ee00
cmp eax, 0xffffffff
je 0x40a246
push 0xffffffffffffffff
inc eax
push eax
mov eax, esi
push eax
lea esi, [ebp - 0x240]
call fcn.0040dd28
mov ebx, eax
lea eax, [ebp - 0x25c]
mov byte [ebp - 4], 0xc
call fcn.0040447e
xor ebx, ebx
inc ebx
push ebx
xor edi, edi
mov byte [ebp - 4], 0xb
call fcn.00404589
push ebx
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x280], 0x22
call fcn.0040ee9e
cmp eax, 0xffffffff
jne 0x40a19a
push ebx
jmp 0x40a248
lea ecx, [ebp - 0x25c]
call fcn.0040dd03
lea eax, [ebp - 0x25c]
call fcn.004806a2
lea eax, [ebp - 0x354]
push eax
call fcn.00403aba
mov esi, eax
push str.Discovered_UPlay_game_library:
push esi
mov byte [ebp - 4], 0xd
call fcn.0040635f
pop ecx
pop ecx
push esi
lea ecx, [ebp - 0x25c]
call fcn.00411d36
pop ecx
lea eax, [ebp - 0x240]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x22c], 8
mov eax, dword [ebp - 0x240]
jae 0x40a203
lea eax, [ebp - 0x240]
push eax
push 3
pop ecx
call fcn.0047feaf
pop ecx
push ebx
xor edi, edi
lea esi, [ebp - 0x240]
call fcn.00404589
lea eax, [ebp - 0x354]
mov byte [ebp - 4], 0xb
call fcn.004027ed
mov ecx, dword [ebp - 0x294]
lea edx, [ebp - 0x25c]
mov byte [ebp - 4], 0xf
call fcn.00408ade
mov dword [ebp - 4], 0xb
push 1
xor edi, edi
lea esi, [ebp - 0x25c]
mov byte [ebp - 4], 9
call fcn.00404589
inc dword [ebp - 0x27c]
jmp 0x40a0c7
lea esi, [ebp - 0x2a4]
call fcn.0040f046
cmp dword [ebp - 0x290], 0
je 0x40a32f
push dword [ebp - 0x290]
call fcn.0055da69
pop ecx
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 4
call fcn.00482f34
jmp 0x409f9f