Function at 0x1003e17e
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x10
mov eax, 0x100314bb
call fcn.1002ceb7
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], ecx
or dword [ebp - 0x14], 0xffffffff
and dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
push 0x100a93f8
xor ebx, ebx
call fcn.1003a983
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 1
push 0x1000eaf4
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x18]
pop ecx
pop ecx
push 0x1000eb34
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x100057f0
push 3
call fcn.10073540
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [esi - 0x10]
call fcn.1003c869
call fcn.1003ac46
mov edi, eax
test edi, edi
js 0x1003e47a
push 0x100a93f8
lea ecx, [ebp - 0x18]
call fcn.1003a983
push dword [ebp - 0x10]
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 2
push 0x1000eb68
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x18]
add esp, 0xc
push 0x1000eb34
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x100057f0
push 3
call fcn.10073540
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [esi - 0x10]
call fcn.1003c869
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1003e2cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x1003e276
movzx eax, ax
or eax, esi
test eax, eax
jns 0x1003e28b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1003e292
movzx edi, di
or edi, esi
jmp 0x1003e290
mov edi, 0x80004005
test edi, edi
jns 0x1003e47a
push 0x100a93f8
lea ecx, [ebp - 0x18]
call fcn.1003a983
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 3
test eax, eax
jne 0x1003e2b5
mov eax, 0x1000581c
push eax
push 0x1000ebb0
lea eax, [ebp - 0x18]
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x18]
add esp, 0xc
jmp 0x1003e44a
test al, 0x10
je 0x1003e330
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x1003e2e9
movzx eax, ax
or eax, esi
test eax, eax
jns 0x1003e2fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1003e305
movzx edi, di
or edi, esi
jmp 0x1003e303
mov edi, 0x80004005
test edi, edi
jns 0x1003e47a
push 0x100a93f8
lea ecx, [ebp - 0x18]
call fcn.1003a983
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 4
test eax, eax
jne 0x1003e328
mov eax, 0x1000581c
push eax
push 0x1000ec00
jmp 0x1003e2bb
cmp dword [ebp - 0x1c], 0
je 0x1003e421
cmp dword [ebp + 8], 0
je 0x1003e421
push 0x100055d0
push 0x34
call fcn.1002c97c
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
je 0x1003e364
mov ecx, eax
call fcn.10052ff2
mov ebx, eax
jmp 0x1003e366
xor ebx, ebx
test ebx, ebx
jne 0x1003e374
mov edi, 0x8007000e
jmp 0x1003e47a
push 1
lea ecx, [ebp - 0x14]
call fcn.10079c63
mov edi, eax
test edi, edi
js 0x1003e47a
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
push esi
call fcn.100551a2
mov edi, eax
test edi, edi
js 0x1003e47a
mov ecx, dword [0x100a9488]
mov edx, ebx
call fcn.1003b477
mov edi, eax
test edi, edi
js 0x1003e47a
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x100aa3f8]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
js 0x1003e47a
mov eax, dword [ebx]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x100aa3f8]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
jns 0x1003e40b
push 0x100a93f8
lea ecx, [ebp - 0x18]
call fcn.1003a983
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 6
push 0x1000eca0
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x18]
jmp 0x1003e448
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x2c]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 0x30]
mov dword [ecx], eax
and dword [ebx + 0x2c], 0
jmp 0x1003e47a
push 0x100a93f8
lea ecx, [ebp - 0x1c]
mov edi, 0x80070057
call fcn.1003a983
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 5
push 0x1000ec48
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x1c]
pop ecx
pop ecx
push edi
push 0x1000eb34
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x100057b0
push 1
call fcn.10073540
add esp, 0x1c
mov byte [ebp - 4], 0
lea ecx, [esi - 0x10]
call fcn.1003c869
mov edx, edi
mov ecx, ebx
call fcn.100527f8
test ebx, ebx
je 0x1003e499
mov eax, dword [ebx]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x100aa3f8]
mov ecx, ebx
call esi
push 0x100a93f8
lea ecx, [ebp - 0x1c]
call fcn.1003a983
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 7
push 0x1000ece4
push eax
call fcn.1003b5ef
mov esi, dword [ebp - 0x1c]
pop ecx
pop ecx
push 0x1000eb34
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x100057f0
push 3
call fcn.10073540
add esp, 0x18
lea ecx, [esi - 0x10]
call fcn.1003c869
cmp dword [ebp - 0x14], 0xffffffff
je 0x1003e4f7
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
call fcn.1002ce85
ret 4