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

Disassembly:
push 0x10
mov eax, 0x1002ea6b
call fcn.1002c427
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 0x100a7388
xor ebx, ebx
call fcn.10037ec3
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 1
push 0x1000cc2c
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x18]
pop ecx
pop ecx
push 0x1000cc6c
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x1000566c
push 3
call fcn.10071500
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [esi - 0x10]
call fcn.10039da9
call fcn.10038186
mov edi, eax
test edi, edi
js 0x1003b9ba
push 0x100a7388
lea ecx, [ebp - 0x18]
call fcn.10037ec3
push dword [ebp - 0x10]
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 2
push 0x1000cca0
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x18]
add esp, 0xc
push 0x1000cc6c
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x1000566c
push 3
call fcn.10071500
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [esi - 0x10]
call fcn.10039da9
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1003b80f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x1003b7b6
movzx eax, ax
or eax, esi
test eax, eax
jns 0x1003b7cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1003b7d2
movzx edi, di
or edi, esi
jmp 0x1003b7d0
mov edi, 0x80004005
test edi, edi
jns 0x1003b9ba
push 0x100a7388
lea ecx, [ebp - 0x18]
call fcn.10037ec3
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 3
test eax, eax
jne 0x1003b7f5
mov eax, 0x10005698
push eax
push 0x1000cce8
lea eax, [ebp - 0x18]
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x18]
add esp, 0xc
jmp 0x1003b98a
test al, 0x10
je 0x1003b870
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x80070000
test eax, eax
jle 0x1003b829
movzx eax, ax
or eax, esi
test eax, eax
jns 0x1003b83e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1003b845
movzx edi, di
or edi, esi
jmp 0x1003b843
mov edi, 0x80004005
test edi, edi
jns 0x1003b9ba
push 0x100a7388
lea ecx, [ebp - 0x18]
call fcn.10037ec3
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 4
test eax, eax
jne 0x1003b868
mov eax, 0x10005698
push eax
push 0x1000cd38
jmp 0x1003b7fb
cmp dword [ebp - 0x1c], 0
je 0x1003b961
cmp dword [ebp + 8], 0
je 0x1003b961
push 0x10005480
push 0x34
call fcn.1002beec
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
je 0x1003b8a4
mov ecx, eax
call fcn.10050b90
mov ebx, eax
jmp 0x1003b8a6
xor ebx, ebx
test ebx, ebx
jne 0x1003b8b4
mov edi, 0x8007000e
jmp 0x1003b9ba
push 1
lea ecx, [ebp - 0x14]
call fcn.10077c86
mov edi, eax
test edi, edi
js 0x1003b9ba
lea eax, [ebp - 0x14]
mov ecx, ebx
push eax
push esi
call fcn.10052d42
mov edi, eax
test edi, edi
js 0x1003b9ba
mov ecx, dword [0x100a7408]
mov edx, ebx
call fcn.100389b7
mov edi, eax
test edi, edi
js 0x1003b9ba
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x100a83d4]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
js 0x1003b9ba
mov eax, dword [ebx]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x100a83d4]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
jns 0x1003b94b
push 0x100a7388
lea ecx, [ebp - 0x18]
call fcn.10037ec3
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 6
push 0x1000cdd8
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x18]
jmp 0x1003b988
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 0x1003b9ba
push 0x100a7388
lea ecx, [ebp - 0x1c]
mov edi, 0x80070057
call fcn.10037ec3
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 5
push 0x1000cd80
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x1c]
pop ecx
pop ecx
push edi
push 0x1000cc6c
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x1000562c
push 1
call fcn.10071500
add esp, 0x1c
mov byte [ebp - 4], 0
lea ecx, [esi - 0x10]
call fcn.10039da9
mov edx, edi
mov ecx, ebx
call fcn.10050398
test ebx, ebx
je 0x1003b9d9
mov eax, dword [ebx]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x100a83d4]
mov ecx, ebx
call esi
push 0x100a7388
lea ecx, [ebp - 0x1c]
call fcn.10037ec3
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 7
push 0x1000ce1c
push eax
call fcn.10038b2f
mov esi, dword [ebp - 0x1c]
pop ecx
pop ecx
push 0x1000cc6c
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x1000566c
push 3
call fcn.10071500
add esp, 0x18
lea ecx, [esi - 0x10]
call fcn.10039da9
cmp dword [ebp - 0x14], 0xffffffff
je 0x1003ba37
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
call fcn.1002c3f5
ret 4