Function at 0x1005fc5e
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x81c
mov eax, dword [0x102d4a48]
xor eax, esp
mov dword [esp + 0x814], eax
push ebx
mov ebx, dword [esp + 0x828]
push ebp
push esi
mov esi, dword [esp + 0x82c]
push edi
push 1
push 0xc
mov dword [esp + 0x24], esi
call fcn.10093169
push 0x400
mov ebp, eax
lea eax, [esp + 0x22c]
push 0
push eax
call fcn.1008c9e0
add esp, 0x14
mov dword [esp + 0x14], 0x10405be0
mov dword [esp + 0x18], 0
push str.FF7_DATA_BATTLE
push 0x10405be0
call fcn.1008bb80
add esp, 8
test eax, eax
je 0x1005fc25
push 0x102affba
mov edx, str.FF7_DATA_BATTLE_
mov ecx, 0x10405be0
call fcn.1006adf0
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
push 0
push 0
push esi
call fcn.10093859
mov eax, dword [0x103f7ca8]
add esp, 0x14
mov ecx, dword [0x103f7cd4]
xor esi, esi
mov edx, dword [0x103f7ca4]
test esi, esi
jne 0x1005fca2
test eax, eax
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push dword [0x10407ad4]
lea eax, [esp + 0x230]
push 0x104072c0
push str._sThe_Reunion_CUSTOM__s_Direct__s__s_s
push 0x400
push eax
call fcn.10059d90
add esp, 0x20
xor edi, edi
jmp case.default.0x1005fe48
cmp esi, 1
jne 0x1005fcf5
test eax, eax
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
push dword [esp + 0x1c]
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push dword [0x10407ad4]
lea eax, [esp + 0x234]
push 0x104072c0
push str._sThe_Reunion_CUSTOM__s_Direct__s__s__s_s
push 0x400
push eax
call fcn.10059d90
add esp, 0x24
jmp 0x1005fec5
cmp esi, 2
jne 0x1005fd1c
cmp dword [0x103f7cb0], esi
jb 0x1005feed
cmp ebx, esi
je 0x1005fe3d
cmp ebx, 3
je 0x1005fe3d
jmp 0x1005feed
cmp esi, 3
jne 0x1005fd50
test ecx, ecx
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_BASE_Model_Overhaul__s__s_s
jmp 0x1005fe71
cmp esi, 4
jne 0x1005fd90
test ecx, ecx
jne 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
push 0x104072c0
push str._sThe_Reunion_BASE_Model_Original_Fixes__s_s
lea eax, [esp + 0x230]
push 0x400
push eax
call fcn.10059d90
add esp, 0x18
xor edi, edi
jmp case.default.0x1005fe48
cmp esi, 5
jne 0x1005fdc9
cmp dword [0x103f7ce0], 0
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_BASE_Weapon__s__s_s
jmp 0x1005fe71
cmp esi, 6
jne 0x1005fdff
cmp dword [0x103f7ce4], 0
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_BASE_New_Translation__s__s_s
jmp 0x1005fe71
cmp esi, 7
jne 0x1005fe30
test edx, edx
je 0x1005feed
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_GLOBAL_Direct__s__s_s
jmp 0x1005fe71
cmp esi, 8
jne 0x1005fe3d
test edx, edx
je 0x1005feed
xor edi, edi
cmp esi, 8
ja case.default.0x1005fe48
jmp dword [esi*4 + 0x10060098]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_BASE_60i__s__s_s
lea eax, [esp + 0x234]
push 0x400
push eax
call fcn.10059d90
add esp, 0x1c
xor edi, edi
jmp case.default.0x1005fe48
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
push dword [esp + 0x1c]
mov eax, ebx
shl eax, 8
add eax, str.char
push eax
push 0x104072c0
push str._sThe_Reunion_GLOBAL_Direct__s__s__s_s
lea eax, [esp + 0x238]
push 0x400
push eax
call fcn.10059d90
add esp, 0x20
mov edi, 1
lea eax, [esp + 0x220]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x1005fef9
mov eax, dword [0x103f7ca8]
mov ecx, dword [0x103f7cd4]
mov edx, dword [0x103f7ca4]
inc esi
cmp esi, 9
jle 0x1005fc52
jmp 0x1005ff42
lea eax, [esp + 0x220]
push 0x102b32f0
push eax
call fcn.1008e547
add esp, 8
mov dword [ebp + 4], eax
test eax, eax
je 0x1005ff42
lea eax, [esp + 0x220]
push eax
push str.PERSONAL_DIRECT____s_n
push dword [0x104072b0]
push 0
push str.TRACE
call fcn.10067cf0
add esp, 0x14
test edi, edi
je 0x1005ff42
mov dword [ebp + 8], 1
cmp dword [ebp + 4], 0
jne 0x10060011
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0x628]
push str._s_s
push eax
call fcn.1005ef50
push ebp
mov edx, ebx
lea ecx, [esp + 0x634]
call fcn.1005f930
add esp, 0x14
test eax, eax
jne 0x10060011
cmp dword [0x103f7ce8], eax
je 0x1005fff0
push dword [esp + 0x1c]
cmp dword [0x103f7c80], eax
push str.DIRECT_MODE___Failed_to_find__s_n
push dword [0x104072a8]
setne al
push eax
push str.ERROR
call fcn.10067cf0
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x634]
add esp, 0x14
shl ebx, 8
add ebx, str.char
push esi
push eax
push ebx
xor eax, eax
cmp dword [0x103f7c80], eax
push str.DIRECT_MODE___Failed_to_find__s__s__LGP___path:__s__n
push dword [0x104072a8]
setne al
push eax
push str.ERROR
call fcn.10067cf0
add esp, 0x1c
jmp 0x1005fff4
mov esi, dword [esp + 0x14]
push ebp
call fcn.10092afa
add esp, 4
cmp dword [esp + 0x18], 1
jne 0x1006000d
push esi
call fcn.10092afa
add esp, 4
xor eax, eax
jmp 0x1006007f
cmp dword [esp + 0x18], 1
jne 0x10060024
push dword [esp + 0x14]
call fcn.10092afa
add esp, 4
cmp dword [0x102d7ed4], 0
mov dword [0x10405ce0], ebp
je 0x1006007d
cmp dword [ebp], 0
jne 0x1006007d
mov eax, dword [0x103f7d30]
mov ecx, dword [eax*4 + 0x10405d00]
test ecx, ecx
je 0x1006006d
push dword [ecx + 4]
call fcn.1008e79a
mov eax, dword [0x103f7d30]
add esp, 4
push dword [eax*4 + 0x10405d00]
call fcn.10092afa
mov eax, dword [0x103f7d30]
add esp, 4
mov dword [eax*4 + 0x10405d00], ebp
inc eax
and eax, 0x3f
mov dword [0x103f7d30], eax
mov eax, ebp
mov ecx, dword [esp + 0x824]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1008a9cb
add esp, 0x81c
ret