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

Disassembly:
push 0x31c
mov eax, 0x444169
call fcn.0042bcc0
mov ebx, ecx
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.0042b470
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
xor eax, eax
push eax
push eax
push 0x1c
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402874
mov edi, 0x44d0e4
xor esi, esi
push edi
mov dword [ebp - 4], esi
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402e83
push 0xffffffffffffffff
push esi
push 0x45cf70
lea ecx, [ebp - 0x24c]
call fcn.00402ddd
push edi
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402e83
push 0xffffffffffffffff
push esi
mov esi, 0x45cf40
lea ecx, [ebp - 0x24c]
push esi
call fcn.00402ddd
push edi
call fcn.0040126a
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00402e83
push 0xffffffffffffffff
xor edi, edi
lea ecx, [ebp - 0x24c]
push edi
push esi
call fcn.00402ddd
cmp dword [ebp - 0x238], 8
lea edx, [ebp - 0x24c]
lea ecx, [ebp - 0x27c]
cmovae edx, dword [ebp - 0x24c]
call fcn.0041dd26
mov byte [ebp - 4], 1
lea eax, [ebp - 0x27c]
cmp dword [ebp - 0x268], 0x10
cmovae eax, dword [ebp - 0x27c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x415d66
and dword [ebp - 0x254], edi
push 0xf
pop esi
mov dword [ebp - 0x250], esi
mov byte [ebp - 0x264], 0
lea edx, [ebp - 0x264]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x27c]
call fcn.0041ae2d
and dword [ebp - 0x284], edi
mov dword [ebp - 0x280], esi
mov byte [ebp - 0x294], 0
lea edx, [ebp - 0x294]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x264]
call fcn.004059a5
test al, al
je 0x415d40
push 0x74
xor esi, esi
lea eax, [ebp - 0x30c]
push esi
push eax
call fcn.0042b470
add esp, 0xc
lea ecx, [ebp - 0x30c]
call fcn.0040bb71
xor eax, eax
lea edi, [ebp - 0x234]
push 6
pop ecx
rep stosd dword es:[edi], eax
and dword [ebp - 0x22c], 0xfffffe00
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x30c]
call fcn.0040bbca
test al, al
je 0x415d26
push ecx
push str.uuid
lea ecx, [ebp - 0x234]
call fcn.0040e523
lea ecx, [ebp - 0x324]
push ecx
mov ecx, eax
call fcn.0040deaa
push eax
mov ecx, ebx
call fcn.004027be
push esi
push 1
lea ecx, [ebp - 0x324]
call fcn.00402d99
push ecx
push 0x452618
lea ecx, [ebp - 0x234]
call fcn.0040e523
lea ecx, [ebp - 0x324]
push ecx
mov ecx, eax
call fcn.0040deaa
push eax
lea ecx, [ebx + 0x18]
call fcn.004027be
push esi
push 1
lea ecx, [ebp - 0x324]
call fcn.00402d99
push ecx
push str.switch
lea ecx, [ebp - 0x234]
call fcn.0040e523
lea ecx, [ebp - 0x324]
push ecx
mov ecx, eax
call fcn.0040deaa
push eax
lea ecx, [ebx + 0x30]
call fcn.004027be
push esi
push 1
lea ecx, [ebp - 0x324]
call fcn.00402d99
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 4
call fcn.0040dd7f
lea ecx, [ebp - 0x30c]
call fcn.00401597
xor edi, edi
mov byte [ebx + 0x48], 1
push edi
push 1
lea ecx, [ebp - 0x294]
call fcn.00402d99
push edi
push 1
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 1
call fcn.00402d99
call fcn.00415eaf
test al, al
je 0x415da9
cmp dword [0x45b714], 0
je 0x415d8c
mov eax, 0x45b704
cmp ebx, eax
je 0x415d8c
push 0xffffffffffffffff
push edi
push eax
mov ecx, ebx
call fcn.00402c0e
cmp dword [0x45b6b4], 0
je 0x415da9
mov eax, 0x45b6a4
cmp ebx, eax
je 0x415da9
push 0xffffffffffffffff
push edi
push eax
mov ecx, ebx
call fcn.00402c0e
cmp dword [ebx + 0x10], edi
jne 0x415e8b
lea ecx, [ebp - 0x234]
call fcn.00419c02
mov byte [ebp - 4], 7
lea eax, [ebp - 0x234]
cmp dword [ebp - 0x220], 8
mov ecx, dword [ebp - 0x224]
cmovae eax, dword [ebp - 0x234]
lea esi, [eax + ecx*2]
lea eax, [ebp - 0x234]
cmovae eax, dword [ebp - 0x234]
lea eax, [eax + ecx*2]
lea ecx, [ebp - 0x234]
cmovae ecx, dword [ebp - 0x234]
push eax
push ecx
lea ecx, [ebp - 0x328]
call fcn.0041611f
cmp dword [ebp - 0x220], 8
lea edx, [ebp - 0x234]
pop ecx
cmovae edx, dword [ebp - 0x234]
cmp dword [eax], 0
pop ecx
jne 0x415e27
mov ecx, edi
jmp 0x415e2d
mov ecx, dword [eax]
sub ecx, edx
sar ecx, 1
test esi, esi
jne 0x415e35
mov esi, edi
jmp 0x415e39
sub esi, dword [eax]
sar esi, 1
push esi
push ecx
lea ecx, [ebp - 0x234]
call fcn.0040374a
cmp dword [ebp - 0x220], 8
lea edx, [ebp - 0x234]
lea ecx, [ebp - 0x324]
cmovae edx, dword [ebp - 0x234]
call fcn.0041dd26
push eax
mov ecx, ebx
call fcn.004027be
push 0
push 1
lea ecx, [ebp - 0x324]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x234]
call fcn.00403476
push 0
push 1
lea ecx, [ebp - 0x27c]
call fcn.00402d99
push 0
push 1
lea ecx, [ebp - 0x24c]
call fcn.00403476
call fcn.0042bc6f
ret