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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a5e3
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x49c068]
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, ecx
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x268], eax
push 0x104
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x264]
call fcn.00426710
mov byte [ebp - 4], 1
mov eax, 0x1b4e81b5
mov edi, dword [ebp + 0x10]
mov ecx, edi
mov esi, dword [ebp + 0xc]
sub ecx, esi
imul ecx
mov dword [ebp - 0x26c], 0
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4161cb
mov dword [ebp - 0x268], 0
xor ecx, ecx
sub edi, esi
mov eax, 0x1b4e81b5
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x415d94
push str.vector_subscript_out_of_range
push 0x492794
push 0
push 0x75e
push 0x492e88
push 2
call fcn.00431dd0
add esp, 0x18
cmp eax, 1
jne 0x415d73
int3
push 0
push 0x75e
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.37.32822include_vector
push 0x4928c4
push str._vector_subscript_out_of_range_
call fcn.00432610
mov esi, dword [ebp + 0xc]
add esp, 0x14
mov edi, dword [ebp - 0x268]
lea eax, [edi + 0x24]
add eax, esi
cmp dword [edi + esi + 0x38], 0x10
jb 0x415da8
mov eax, dword [eax]
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x415de1
lea eax, [ebp - 0x224]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
push esi
test eax, eax
jne 0x415e5a
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x26c]
sub ecx, eax
mov dword [ebp - 0x268], eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x416184
push str.vector_subscript_out_of_range
push 0x492794
push 0
push 0x75e
push 0x492e88
push 2
call fcn.00431dd0
add esp, 0x18
cmp eax, 1
jne 0x415e34
int3
push 0
push 0x75e
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.37.32822include_vector
push 0x4928c4
push str._vector_subscript_out_of_range_
call fcn.00432610
mov eax, dword [ebp + 0xc]
add esp, 0x14
jmp 0x41618a
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x220], 0
jl 0x415de1
jg 0x415e7f
cmp dword [ebp - 0x224], 0x2710
jb 0x415de1
mov ecx, dword [ebp - 0x250]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 1
jb 0x4162a7
cmp dword [ebp - 0x24c], 0x10
lea eax, [ebp - 0x260]
push 1
cmovae eax, dword [ebp - 0x260]
push 0x493b28
push ecx
push eax
push ecx
push dword [ebp - 0x21c]
lea ecx, [ebp - 0x28c]
call fcn.0040f790
mov byte [ebp - 4], 2
mov eax, 0x1b4e81b5
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
sub ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x26c], eax
jb 0x415f30
push str.vector_subscript_out_of_range
push 0x492794
push 0
push 0x75e
push 0x492e88
push 2
call fcn.00431dd0
add esp, 0x18
cmp eax, 1
jne 0x415f0f
int3
push 0
push 0x75e
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.37.32822include_vector
push 0x4928c4
push str._vector_subscript_out_of_range_
call fcn.00432610
mov esi, dword [ebp + 0xc]
add esp, 0x14
lea eax, [edi + 4]
add eax, esi
lea ecx, [ebp - 0x28c]
push eax
call fcn.004056b0
mov esi, eax
mov byte [ebp - 4], 3
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x240], 0
movups xmmword [ebp - 0x23c], xmm0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
call fcn.0042b3f0
add esp, 4
lea ecx, [ebp - 0x240]
mov dword [eax + 4], 0
mov dword [ebp - 0x240], eax
push esi
mov dword [eax], ecx
call fcn.00406a60
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 1
call fcn.00406820
mov eax, dword [ebp - 0x28c]
push 8
push eax
mov dword [ebp - 0x28c], 0
call fcn.0042b3d0
add esp, 8
lea eax, [ebp - 0x23c]
cmp dword [ebp - 0x228], 0x10
cmovae eax, dword [ebp - 0x23c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x41602a
cmp dword [ebp - 0x228], 0x10
lea eax, [ebp - 0x23c]
push 0
cmovae eax, dword [ebp - 0x23c]
push 0x80
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x41602a
lea eax, [ebp - 0x248]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
push esi
test eax, eax
jne 0x4160a3
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x26c]
sub ecx, eax
mov dword [ebp - 0x268], eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x416151
push str.vector_subscript_out_of_range
push 0x492794
push 0
push 0x75e
push 0x492e88
push 2
call fcn.00431dd0
add esp, 0x18
cmp eax, 1
jne 0x41607d
int3
push 0
push 0x75e
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.37.32822include_vector
push 0x4928c4
push str._vector_subscript_out_of_range_
call fcn.00432610
mov eax, dword [ebp + 0xc]
add esp, 0x14
jmp 0x416157
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x244]
cmp dword [ebp - 0x248], eax
jne 0x41602a
cmp ecx, dword [ebp - 0x220]
jne 0x41602a
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x26c]
sub ecx, eax
mov dword [ebp - 0x268], eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x416144
push str.vector_subscript_out_of_range
push 0x492794
push 0
push 0x75e
push 0x492e88
push 2
call fcn.00431dd0
add esp, 0x18
cmp eax, 1
jne 0x41611c
int3
push 0
push 0x75e
push str.C:Program_FilesMicrosoft_Visual_Studio2022CommunityVCToolsMSVC14.37.32822include_vector
push 0x4928c4
push str._vector_subscript_out_of_range_
call fcn.00432610
mov eax, dword [ebp + 0xc]
add esp, 0x14
mov byte [edi + eax + 0x74], 0
jmp 0x41615c
mov eax, dword [ebp - 0x268]
mov byte [edi + eax + 0x74], 0
jmp 0x41615c
mov eax, dword [ebp - 0x268]
mov byte [edi + eax + 0x74], 1
lea ecx, [ebp - 0x240]
call fcn.00406820
mov eax, dword [ebp - 0x240]
push 8
push eax
mov dword [ebp - 0x240], 0
call fcn.0042b3d0
add esp, 8
jmp 0x41618f
mov eax, dword [ebp - 0x268]
mov byte [edi + eax + 0x74], 0
add edi, 0x12c
inc esi
mov dword [ebp - 0x268], edi
mov eax, 0x1b4e81b5
mov edi, dword [ebp + 0x10]
mov ecx, edi
mov dword [ebp - 0x26c], esi
mov esi, dword [ebp + 0xc]
sub ecx, esi
imul ecx
mov ecx, dword [ebp - 0x26c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x415d36
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebp + 0x14]
push 8
mov dword [ebp + 0x14], 0
mov dword [ecx + 4], esi
mov esi, ecx
mov dword [ebp + 0x10], 0
mov dword [ebp + 0xc], 0
mov dword [ecx], 0
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
call fcn.0042b3f0
add esp, 4
lea ecx, [ebp - 0x21c]
mov dword [eax + 4], 0
mov dword [esi], eax
push 3
mov dword [eax], esi
call fcn.004283d0
mov ecx, dword [ebp + 8]
mov eax, dword [esi]
mov dword [esi], ecx
mov dword [ebp + 8], eax
test ecx, ecx
je 0x416233
mov dword [ecx], esi
mov eax, dword [ebp + 8]
test eax, eax
je 0x41623c
lea ecx, [ebp + 8]
mov dword [eax], ecx
lea ecx, [ebp - 0x21c]
call fcn.00428480
lea ecx, [ebp - 0x264]
call fcn.00406820
mov eax, dword [ebp - 0x264]
push 8
push eax
mov dword [ebp - 0x264], 0
call fcn.0042b3d0
add esp, 8
lea ecx, [ebp + 8]
call fcn.00406610
mov ecx, dword [ebp + 8]
push 8
push ecx
mov dword [ebp + 8], 0
call fcn.0042b3d0
add esp, 8
mov eax, esi
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.0042b3c0
mov esp, ebp
pop ebp
ret
call fcn.00401930
int3