Function at 0x100a1ea0
Capabilities:
Check if file exists
Get file attributes
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1012e796
mov eax, dword fs:[0]
push eax
sub esp, 0x4d8
mov eax, dword [0x101636d0]
xor eax, esp
mov dword [esp + 0x4d0], eax
push ebx
push esi
push edi
mov eax, dword [0x101636d0]
xor eax, esp
push eax
lea eax, [esp + 0x4e8]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edi
call fcn.1005f360
xor ebx, ebx
push esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x4f4], ebx
call fcn.100a2410
lea eax, [esp + 0x68]
cmp byte [esp + 0x178], bl
jne 0x100a1f1a
mov eax, dword [esp + 0x64]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
add eax, 4
push eax
call esi
cmp eax, 0xffffffff
je 0x100a1f34
shr eax, 4
not al
and al, 1
jne 0x100a1f56
lea eax, [esp + 0x68]
cmp byte [esp + 0x178], bl
jne 0x100a1f45
mov eax, dword [esp + 0x64]
lea ecx, [eax + 4]
push edi
call fcn.100a24f0
test al, al
je 0x100a201a
lea eax, [esp + 0x68]
cmp byte [esp + 0x178], bl
jne 0x100a1f67
mov eax, dword [esp + 0x64]
add eax, 4
push eax
call esi
cmp eax, 0xffffffff
je 0x100a1f7b
shr eax, 4
not al
and al, 1
jne 0x100a1fb7
mov ecx, edi
call fcn.100619a0
push 0x10149c98
push 0x1013c7e4
mov edx, eax
call fcn.10062cd0
add esp, 8
mov dword [esp + 0x5c], vtable.t_str.0
cmp byte [esp + 0x178], bl
jne 0x100a2040
mov eax, dword [esp + 0x64]
lea edx, [esp + 0x68]
cmp eax, edx
jmp 0x100a2035
lea eax, [esp + 0x10]
mov dword [esp + 0x10], ebx
push eax
mov ebx, edi
lea ecx, [esp + 0x60]
call fcn.1005fed0
test al, al
je 0x100a1fd6
cmp dword [esp + 0x10], 0x38
ja 0x100a2047
lea ecx, [esp + 0x5c]
call fcn.10060030
xor ebx, ebx
lea eax, [esp + 0x68]
cmp byte [esp + 0x178], bl
jne 0x100a1ff2
mov eax, dword [esp + 0x64]
lea ecx, [eax + 4]
push edi
call fcn.100a24f0
test al, al
jne 0x100a2049
mov ecx, edi
call fcn.100619a0
push 0x10149cac
push 0x1013c7e4
mov edx, eax
call fcn.10062cd0
add esp, 8
mov dword [esp + 0x5c], vtable.t_str.0
cmp byte [esp + 0x178], bl
jne 0x100a2040
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x68]
cmp eax, ecx
je 0x100a2040
push eax
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x100a234b
xor ebx, ebx
mov dword [esp + 0x10], 3
or eax, 0xffffffff
lea edi, [esp + 0x190]
mov dword [esp + method.t_file.virtual_0], vtable.t_file.0
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
call fcn.10062500
cmp dword [esp + 0x2b0], ebx
je 0x100a2089
mov dword [esp + 0x2b0], ebx
mov ecx, 1
lea esi, [esp + 0x198]
mov dword [esp + 0x194], ebx
call fcn.100632f0
lea eax, [esp + 0x19c]
cmp byte [esp + 0x2ac], bl
jne 0x100a20b8
mov eax, dword [esp + 0x198]
xor edx, edx
mov word [eax + 4], dx
xor eax, eax
mov edi, vtable.t_fileRead.0
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x4c4], 8
mov word [esp + 0x2bc], ax
mov dword [esp + method.t_path::t_mutex.virtual_0], vtable.t_path::t_mutex.0
mov dword [esp + 0x4c8], 0x10145ef0
mov dword [esp + 0x4cc], ebx
mov dword [esp + 0x184], edi
mov dword [esp + 0x4d0], 0x101474dc
mov dword [esp + 0x4d4], ebx
mov dword [esp + 0x4d8], ebx
mov esi, dword [esp + 0x1c]
push ebx
push esi
lea ecx, [esp + 0x18c]
push ecx
lea eax, [esp + 0x68]
mov byte [esp + 0x4fc], 1
call fcn.1006c9a0
test al, al
je 0x100a222b
mov eax, dword [esp + 0x188]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x100a216f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
je 0x100a216f
xor eax, eax
jmp 0x100a2171
mov eax, edi
push 0x34
lea ecx, [esp + 0x2c]
push ebx
push ecx
mov dword [esp + 0x4e0], eax
mov dword [esp + 0x30], ebx
call fcn.100d6e40
add esp, 0xc
push 0x38
lea edx, [esp + 0x28]
push edx
push esi
lea ecx, [esp + 0x4dc]
call fcn.1006e780
test al, al
je 0x100a226c
cmp dword [esp + 0x24], 0x46534650
jne 0x100a21bd
cmp dword [esp + 0x3c], 0x38
jae 0x100a2293
lea eax, [esp + 0x184]
push eax
call fcn.1006cbc0
lea eax, [esp + 0x68]
cmp byte [esp + 0x178], bl
jne 0x100a21db
mov eax, dword [esp + 0x64]
lea ecx, [eax + 4]
push esi
call fcn.100a24f0
test al, al
je 0x100a228c
mov eax, dword [esp + 0x10]
dec eax
cmp eax, ebx
mov dword [esp + 0x10], eax
jle 0x100a2293
mov byte [esp + 0x4f0], bl
lea ecx, [esp + 0x184]
mov dword [esp + method.t_fileRead.virtual_0], vtable.t_fileRead.0
mov dword [esp + 0x4d0], 0x10147794
call fcn.1006c8d0
jmp 0x100a2051
push 0x10149c10
mov ecx, esi
call fcn.10001360
mov byte [esp + 0x4f0], bl
mov dword [esp + 0x184], edi
lea ecx, [esp + 0x184]
mov dword [esp + 0x4d0], 0x10147794
call fcn.1006c8d0
lea ecx, [esp + 0x5c]
call fcn.1005f910
xor al, al
jmp 0x100a234b
push 0x10149cd0
mov ecx, esi
call fcn.10001360
mov byte [esp + 0x4f0], bl
mov dword [esp + method.t_fileRead.virtual_0], vtable.t_fileRead.0
jmp 0x100a2245
push 0x10149cec
jmp 0x100a2271
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x20]
push esi
mov dword [esp + 0x14], eax
call fcn.100b51a0
mov edi, eax
cmp edi, ebx
jne 0x100a22b9
push 0x10149b14
jmp 0x100a2271
mov ecx, dword [esp + 0x10]
push 0x38
lea eax, [esp + 0x28]
push eax
push ecx
push edi
call fcn.100d07bb
mov eax, dword [esp + 0x4e4]
sub eax, dword [esp + 0x4e8]
add esp, 0x10
push eax
lea edx, [edi + 0x38]
push edx
push esi
lea ecx, [esp + 0x4dc]
call fcn.1006e780
test al, al
jne 0x100a232d
mov eax, dword [esp + 0x10]
push eax
push ebx
push edi
call fcn.100d6e40
add esp, 0xc
push 0x10149d10
mov ecx, esi
call fcn.10001360
lea ecx, [esp + 0x184]
mov byte [esp + 0x4f0], bl
call fcn.1006e710
lea ecx, [esp + 0x5c]
call fcn.1005f910
xor al, al
jmp 0x100a234b
lea ecx, [esp + 0x184]
mov byte [esp + 0x4f0], bl
call fcn.1006e710
lea ecx, [esp + 0x5c]
call fcn.1005f910
mov al, 1
mov ecx, dword [esp + 0x4e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d0]
xor ecx, esp
call fcn.100cf604
mov esp, ebp
pop ebp
ret 4