Function at 0x4160c0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push str.______FS_Startup_______n
call fcn.0040cbe0
push 0
push 0x48b6b4
push str.fs_debug
call fcn.0040f030
push str.Debugging_tool_for_the_filesystem._Run_the_game_in_debug_mode._Prints_additional_information_regarding_read_files_into_the_console.
push eax
mov dword [0x5cf470], eax
call fcn.004104a0
push 0x10
push 0x48b6b4
push str.fs_copyfiles
call fcn.0040f030
push str.Whether_or_not_to_copy_files_when_loading_them_into_the_game._Every_file_found_in_the_cdpath_will_be_copied_over.
push eax
mov dword [0x5cf484], eax
call fcn.004104a0
add esp, 0x2c
push 0xa010
call fcn.0043d570
push eax
push str.fs_basepath
call fcn.0040f030
push str.Write_protected_CVAR_specifying_the_path_to_the_installation_folder_of_the_game.
push eax
mov dword [0x5cf47c], eax
call fcn.004104a0
push 0x2010
push str.baseq3
push str.fs_basegame
call fcn.0040f030
push str.Write_protected_CVAR_specifying_the_path_to_the_base_game_folder.
push eax
mov dword [0x5cf480], eax
call fcn.004104a0
add esp, 0x28
push 0xa010
call fcn.0043e120
push eax
push str.fs_steampath
call fcn.0040f030
mov dword [0x5cf478], eax
add esp, 0xc
mov eax, dword [0x5cf480]
mov eax, dword [eax + 4]
cmp byte [eax], 0
jne 0x41619a
push str._fs_basegame_is_not_set_
push 0
call fcn.0040aa80
add esp, 8
call fcn.0043e000
test eax, eax
je 0x4161a8
cmp byte [eax], 0
jne 0x4161b0
mov eax, dword [0x5cf47c]
mov eax, dword [eax + 4]
push 0xa010
push eax
push str.fs_homepath
call fcn.0040f030
push str.Directory_to_store_user_configuration_and_downloaded_files.
push eax
mov dword [0x5cf474], eax
call fcn.004104a0
push 0x18
push 0x48b3d2
push str.fs_game
call fcn.0040f030
push 3
push 0
push 0
push eax
mov dword [0x5cf488], eax
call fcn.0040eb10
push str.Specify_an_alternate_mod_directory_and_run_the_game_with_this_mod.
push dword [0x5cf488]
call fcn.004104a0
mov eax, dword [0x5cf488]
push dword [eax + 4]
mov eax, dword [0x5cf480]
push dword [eax + 4]
call fcn.0041fe80
add esp, 0x40
test eax, eax
jne 0x41622b
push str.fs_game
call fcn.0040ed00
add esp, 4
push ebx
push esi
push edi
push 0x4021
push 0x48b3d2
push str.fs_excludeReference
call fcn.0040f030
push str.Exclude_specified_pak_files_from_download_list_on_client_side._nFormat_is__moddir___pakname___without_.pk3_suffix___you_may_list_multiple_entries_separated_by_space.
push eax
mov dword [0x5cf48c], eax
call fcn.004104a0
add esp, 0x14
call fcn.0043e010
cmp dword [0x5d8be0], 0
mov ebx, eax
mov dword [ebp - 8], ebx
mov dword [0x5d8bd8], 0
mov dword [0x5d8bdc], 0
jne 0x41631b
mov eax, dword [0x5cf474]
push 0
push str.pk3cache.dat
mov dword [0x5d8bd0], 0
push dword [eax + 4]
mov dword [0x5d8bd4], 0
call fcn.00411970
push 0x48dc74
push eax
call fcn.0043d640
mov esi, eax
add esp, 0x14
test esi, esi
je 0x41631b
push esi
push 1
lea eax, [ebp - 4]
push 4
push eax
call fcn.004729cb
add esp, 0x10
cmp eax, 1
jne 0x416312
lea eax, [ebp - 4]
mov eax, dword [eax]
cmp eax, dword [0x48db70]
jne 0x416312
nop
push esi
call fcn.00413c40
add esp, 4
test eax, eax
jne 0x4162e0
push esi
call fcn.00472598
push dword [0x5d8bd0]
mov dword [0x5d8be0], 1
push str....found__i_cached_paks_n
call fcn.0040cbe0
add esp, 0xc
jmp 0x41631b
push esi
call fcn.00472598
add esp, 4
mov eax, dword [0x5cf478]
mov ecx, dword [eax + 4]
cmp byte [ecx], 0
je 0x416339
mov eax, dword [0x5cf480]
push dword [eax + 4]
push ecx
call fcn.00411330
add esp, 8
mov ecx, dword [0x5cf47c]
mov edx, dword [ecx + 4]
cmp byte [edx], 0
je 0x41635e
mov eax, dword [0x5cf480]
push dword [eax + 4]
push edx
call fcn.00411330
mov ecx, dword [0x5cf47c]
add esp, 8
mov eax, dword [0x5cf474]
mov eax, dword [eax + 4]
cmp byte [eax], 0
je 0x416393
push dword [ecx + 4]
push eax
call fcn.0041fe80
add esp, 8
test eax, eax
je 0x416393
mov eax, dword [0x5cf480]
push dword [eax + 4]
mov eax, dword [0x5cf474]
push dword [eax + 4]
call fcn.00411330
add esp, 8
mov eax, dword [0x5cf488]
mov ecx, dword [eax + 4]
cmp byte [ecx], 0
je 0x416431
mov eax, dword [0x5cf480]
push dword [eax + 4]
push ecx
call fcn.0041fe80
add esp, 8
test eax, eax
je 0x416431
mov eax, dword [0x5cf478]
mov ecx, dword [eax + 4]
cmp byte [ecx], 0
je 0x4163d7
mov eax, dword [0x5cf488]
push dword [eax + 4]
push ecx
call fcn.00411330
add esp, 8
mov ecx, dword [0x5cf47c]
mov edx, dword [ecx + 4]
cmp byte [edx], 0
je 0x4163fc
mov eax, dword [0x5cf488]
push dword [eax + 4]
push edx
call fcn.00411330
mov ecx, dword [0x5cf47c]
add esp, 8
mov eax, dword [0x5cf474]
mov eax, dword [eax + 4]
cmp byte [eax], 0
je 0x416431
push dword [ecx + 4]
push eax
call fcn.0041fe80
add esp, 8
test eax, eax
je 0x416431
mov eax, dword [0x5cf488]
push dword [eax + 4]
mov eax, dword [0x5cf474]
push dword [eax + 4]
call fcn.00411330
add esp, 8
mov edi, dword [0x5cf4a4]
add edi, dword [0x5cf4ac]
add edi, dword [0x5cf4a8]
je 0x4164c4
lea ebx, [edi*4]
push ebx
call fcn.0040e6f0
mov ecx, dword [0x5cf4a4]
mov esi, eax
add ecx, dword [0x5cf4a8]
add esp, 4
lea edx, [esi + ecx*4]
mov ecx, dword [0x5cf490]
test ecx, ecx
je 0x416492
cmp dword [ecx + 4], 0
jne 0x416487
cmp dword [ecx + 0xc], 0
jne 0x416487
mov dword [edx], ecx
add edx, 4
jmp 0x41648c
mov dword [eax], ecx
add eax, 4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x416474
mov eax, dword [esi]
dec edi
xor edx, edx
mov dword [0x5cf490], eax
test edi, edi
jle 0x4164ae
mov ecx, dword [esi + edx*4]
mov eax, dword [esi + edx*4 + 4]
inc edx
mov dword [ecx], eax
cmp edx, edi
jl 0x4164a0
mov eax, dword [ebx + esi - 4]
push esi
mov dword [eax], 0
call fcn.0040e5c0
mov ebx, dword [ebp - 8]
add esp, 4
call fcn.004153a0
mov ecx, dword [0x5cf490]
xor esi, esi
mov dword [0x5d8be8], esi
test ecx, ecx
je 0x416521
xor edx, edx
lea ecx, [ecx]
mov eax, dword [ecx + 4]
test eax, eax
je 0x416502
cmp edx, 0x14000
jae 0x41650a
mov eax, dword [eax + 0x14]
inc esi
mov dword [edx + 0x5d8bf0], eax
add edx, 4
mov dword [0x5d8be8], esi
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4164e0
jmp 0x416521
push str.WARNING:_pure_checksums_overflowed_n
call fcn.0040a6f0
add esp, 4
mov dword [0x5d8be8], 0
call fcn.0043e010
mov ecx, dword [0x5cf480]
mov esi, eax
push dword [ecx + 4]
call fcn.0040ce80
mov ecx, dword [0x5cf488]
add esp, 4
mov ecx, dword [ecx + 4]
cmp byte [ecx], 0
je 0x41656c
mov eax, dword [0x5cf480]
push dword [eax + 4]
push ecx
call fcn.0041fe80
add esp, 8
test eax, eax
je 0x41656c
mov eax, dword [0x5cf488]
push dword [eax + 4]
call fcn.0040a4a0
add esp, 4
push 0x414bb0
push str.path
call fcn.004013a0
push 0x411ef0
push 0x48e328
call fcn.004013a0
push 0x4147b0
push str.fdir
call fcn.004013a0
push 0x416880
push str.touchFile
call fcn.004013a0
push 0x413ad0
push str.lsof
call fcn.004013a0
push 0x416b20
push str.which
call fcn.004013a0
push 0x411d40
push str.which
call fcn.00401a50
push 0x4152e0
push str.fs_restart
call fcn.004013a0
add esp, 0x40
sub esi, ebx
push esi
push str....loaded_in__i_milliseconds_n
call fcn.0040cbe0
push str._______________________n
call fcn.0040cbe0
push dword [0x5cf4a8]
push dword [0x5cf4a0]
push str._d_files_in__d_pk3_files_n
call fcn.0040cbe0
mov eax, dword [0x5cf488]
push str.baseq3
mov dword [eax + 0x14], 0
mov eax, dword [0x5cf480]
push dword [eax + 4]
call fcn.0041fe80
add esp, 0x20
test eax, eax
je 0x416652
mov eax, dword [0x5cf480]
push str.demoq3
push dword [eax + 4]
call fcn.0041fe80
add esp, 8
test eax, eax
jne 0x416657
call fcn.00411b10
xor ebx, ebx
lea esp, [esp]
mov esi, dword [ebx + 0x5d83d0]
test esi, esi
je 0x416745
mov edi, edi
cmp dword [esi + 0x58], 0
mov edi, dword [esi + 0x5c]
jne 0x41673b
mov ecx, edi
test edi, edi
jne 0x4166a5
cmp dword [esi + 0x60], edi
jne 0x4166a5
mov eax, dword [esi + 0x40]
cmp dword [eax*4 + 0x5d83d0], esi
je 0x4166a5
push str.Invalid_pak_link
push edi
call fcn.0040aa80
mov ecx, dword [esi + 0x5c]
add esp, 8
mov eax, dword [esi + 0x60]
test eax, eax
je 0x4166b4
mov dword [eax + 0x5c], ecx
mov ecx, dword [esi + 0x5c]
jmp 0x4166be
mov eax, dword [esi + 0x40]
mov dword [eax*4 + 0x5d83d0], ecx
test ecx, ecx
je 0x4166c8
mov eax, dword [esi + 0x60]
mov dword [ecx + 0x60], eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x41672c
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x41671c
cmp ecx, esi
je 0x4166fe
mov eax, dword [esi + 0x3c]
mov dword [ecx + 0x3c], eax
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov dword [ecx + 0x38], eax
cmp dword [0x5d83c8], esi
jne 0x4166f9
mov eax, dword [esi + 0x38]
mov dword [0x5d83c8], eax
mov eax, dword [esi + 0xc]
jmp 0x416708
mov dword [0x5d83c8], 0
dec dword [0x5d83c4]
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
push eax
call fcn.00422ae0
add esp, 4
mov dword [esi + 0xc], 0
push esi
call fcn.0040e5c0
add esp, 4
inc dword [0x5d8bdc]
mov esi, edi
test edi, edi
jne 0x416670
add ebx, 4
cmp ebx, 0x800
jb 0x416660
call fcn.004159b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret