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

Disassembly:
mov ebx, dword [sym.imp.msvcrt.dll_wcslen]
jmp 0x4ad06c63
mov byte [ebp - 0x625], 2
jmp 0x4ad06b5d
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4ad13767
test eax, eax
pop ecx
pop ecx
je 0x4ad06d47
jmp 0x4ad06d3a
mov byte [ebp - 0x626], 1
mov ebx, dword [ebp - 0x62c]
push 0x20
pop eax
lea ecx, [ebp - 0x630]
push ecx
push dword [ebx + 0x14]
mov dword [ebp - 0x648], eax
push eax
push esi
call fcn.4ad02a4c
test al, al
je 0x4ad13704
and dword [ebp - 0x63c], 0
and dword [ebp - 0x644], 0
test esi, esi
je 0x4ad06bae
lea eax, [ebp - 0x41c]
push esi
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.4ad01a67
mov ecx, eax
inc ecx
inc ecx
mov dword [ebp - 0x650], ecx
mov esi, 0x104
cmp dword [0x4ad2b9e8], 0
jne 0x4ad137f1
test ecx, ecx
je 0x4ad06bf5
mov eax, dword [ebx + 0x14]
add eax, 0x2c
je 0x4ad06bf5
push eax
push ecx
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
cmp dword [ebp - 0x638], 0
je 0x4ad06c13
push dword [ebp - 0x638]
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
cmp byte [ebp - 0x625], 1
jne 0x4ad06185
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.4ad01a67
inc eax
inc eax
je 0x4ad06c4b
mov ecx, dword [ebx + 0x14]
add ecx, 0x2c
je 0x4ad06c4b
push ecx
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
mov ebx, dword [sym.imp.msvcrt.dll_wcslen]
lea eax, [ebp - 0x214]
push eax
call ebx
cmp eax, esi
pop ecx
ja 0x4ad1373e
push 0
lea eax, [ebp - 0x624]
push eax
push esi
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x4ad0619c
cmp eax, esi
jae 0x4ad0619c
lea eax, [ebp - 0x624]
push eax
call ebx
pop ecx
mov edi, eax
push 0
lea eax, [ebp - 0x624]
push eax
push esi
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x4ad0619c
cmp eax, esi
jae 0x4ad0619c
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x624]
push eax
call fcn.4ad06dcc
test eax, eax
je 0x4ad137be
lea eax, [ebp - 0x624]
push eax
call ebx
sub dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x634]
add edi, eax
cmp edi, esi
pop ecx
ja 0x4ad13748
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.4ad06d88
test eax, eax
je 0x4ad0619c
cmp dword [ebp - 0x640], 0
je 0x4ad06d3a
inc dword [ebp - 0x63c]
cmp dword [ebp - 0x64c], 0
jne 0x4ad1374f
cmp byte [ebp - 0x626], 0
je 0x4ad137be
push dword [ebp - 0x630]
call fcn.4ad01c38
call fcn.4ad065eb
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax + 0x14]
test byte [eax], 0x10
jne 0x4ad1380b
xor eax, eax
cmp dword [ebp - 0x644], eax
setne al
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.4ad01305
leave
ret 0x14
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x4ad33b78]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 0x14]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp + 0x1c]
push edi
push 0x4ad02bcc
mov dword [ebp - 0x21c], eax
call fcn.4ad02be1
push eax
call fcn.4ad067ad
push 0
push 0
push dword [esi + 0x3c]
call fcn.4ad017ea
mov ebx, eax
push edi
push ebx
call fcn.4ad067ad
test eax, eax
je 0x4ad06f1f
mov ax, word [ebx]
inc ebx
inc ebx
test ax, ax
jne 0x4ad06f15
cmp word [ebx], 0
je 0x4ad135b1
mov edi, dword [sym.imp.msvcrt.dll_wcslen]
push ebx
call edi
mov esi, eax
cmp esi, 0x104
pop ecx
ja 0x4ad07137
push ebx
call fcn.4ad01349
test eax, eax
je 0x4ad06f5b
push ebx
call fcn.4ad01349
push eax
push ebx
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
push ebx
call fcn.4ad0661f
cmp eax, 1
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
je 0x4ad135bb
lea esi, [ebx + esi*2 + 2]
cmp word [esi], 0
je 0x4ad135c6
push esi
call edi
cmp word [esi + eax*2 + 2], 0
pop ecx
jne 0x4ad135b1
push esi
call edi
cmp eax, 0x104
pop ecx
ja 0x4ad07137
push esi
call fcn.4ad01349
test eax, eax
je 0x4ad06fb9
push esi
call fcn.4ad01349
push eax
push esi
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
mov ax, word [esi + 2]
cmp ax, 0x3a
jne 0x4ad135eb
lea eax, [ebp - 0x20c]
push esi
push eax
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
push dword [ebp + 0x20]
push ebx
push dword [ebp - 0x214]
call fcn.4ad01ab9
test eax, eax
jne 0x4ad07137
mov esi, dword [ebp - 0x210]
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test byte [eax], 0x10
jne 0x4ad0704c
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
push dword [ebp - 0x214]
call fcn.4ad01a67
mov ebx, eax
test ebx, ebx
je 0x4ad07128
inc ebx
inc ebx
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
mov eax, dword [esi]
push dword [eax + 0xc]
call fcn.4ad01a67
test eax, eax
jne 0x4ad0703a
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test ebx, ebx
je 0x4ad0704c
test eax, eax
je 0x4ad0704c
push eax
push ebx
call dword [sym.imp.msvcrt.dll_wcscpy]
pop ecx
pop ecx
push dword [ebp + 0x24]
mov ebx, dword [ebp - 0x220]
lea eax, [ebp - 0x20c]
push eax
push ebx
call fcn.4ad01ab9
test eax, eax
jne 0x4ad07137
push eax
mov dword [ebp - 0x210], eax
mov dword [0x4ad2ba04], eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, dword [ebp - 0x21c]
and dword [esi], 0
push ebx
call fcn.4ad01a8d
mov ax, word [eax]
cmp ax, word [0x4ad33b8c]
je 0x4ad13657
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4ad13678
test al, 0x10
je 0x4ad070ba
xor eax, eax
inc eax
mov dword [esi], eax
mov dword [ebp - 0x210], eax
xor esi, esi
cmp dword [ebp - 0x210], esi
je 0x4ad07117
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
push dword [ebp - 0x214]
call fcn.4ad01a67
cmp eax, esi
mov dword [ebp - 0x210], eax
je 0x4ad070e8
push eax
call edi
pop ecx
mov esi, eax
test ebx, ebx
je 0x4ad07133
push ebx
call edi
pop ecx
lea eax, [eax + esi + 1]
cmp eax, 0x104
ja 0x4ad07137
test ebx, ebx
je 0x4ad07117
cmp dword [ebp - 0x210], 0
je 0x4ad07117
push dword [ebp - 0x210]
push ebx
call dword [sym.imp.msvcrt.dll_wcscat]
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.4ad01305
leave
ret 0x20
mov ebx, dword [ebp - 0x214]
jmp 0x4ad0701e
xor eax, eax
jmp 0x4ad070f0
push 0x232e
jmp 0x4ad1369e
push 0x232a
jmp 0x4ad1369e
push dword [0x4ad2ba04]
jmp 0x4ad1369e
mov eax, dword [0x4ad33ae8]
mov ax, word [eax]
and word [ebp - 0x208], 0
mov word [ebp - 0x20c], ax
mov word [ebp - 0x20a], 0x3a
jmp 0x4ad06fd7
cmp word [esi], 0x5c
jne 0x4ad135fb
cmp ax, 0x5c
je 0x4ad06fc7
mov eax, dword [0x4ad33ae8]
mov ax, word [eax]
and word [ebp - 0x208], 0
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20c]
push eax
mov word [ebp - 0x20a], 0x3a
call edi
push esi
mov dword [ebp - 0x218], eax
call edi
pop ecx
pop ecx
mov ecx, dword [ebp - 0x218]
lea eax, [eax + ecx + 1]
cmp eax, 0x104
ja 0x4ad07137
lea eax, [ebp - 0x20c]
push esi
push eax
call dword [sym.imp.msvcrt.dll_wcscat]
jmp 0x4ad06fd5
test ebx, ebx
mov dword [ebp - 0x210], 1
je 0x4ad1366b
push ebx
call edi
pop ecx
jmp 0x4ad1366d
xor eax, eax
and word [ebx + eax*2 - 2], 0
jmp 0x4ad0709b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov dword [0x4ad2ba04], eax
je 0x4ad070ba
cmp eax, 2
je 0x4ad070ba
cmp eax, 3
je 0x4ad070ba
push eax
call fcn.4ad1b9ff
cmp dword [ebp + 0x18], 0
je 0x4ad06190
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 0x638]
push esi
call fcn.4ad06d88
test eax, eax
jne 0x4ad136dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4ad136da
mov eax, 0x234d
push eax
jmp 0x4ad13743
xor esi, esi
jmp 0x4ad137ff
push 0x10
pop eax
lea ecx, [ebp - 0x630]
push ecx
push dword [ebx + 0x14]
mov dword [ebp - 0x648], eax
push eax
push esi
call fcn.4ad02a4c
movzx eax, al
test eax, eax
jne 0x4ad06b8c
mov eax, dword [0x4ad2ba04]
cmp eax, 0x12
jne 0x4ad13738
push 2
pop eax
jmp 0x4ad136da
test edi, edi
je 0x4ad136da
jmp 0x4ad136d5
push 0x232e
call fcn.4ad1b9ff
mov eax, 0xce
jmp 0x4ad13773
lea eax, [ebp - 0x41c]
push eax
push str._s_r_n
call fcn.4ad05e0c
pop ecx
pop ecx
jmp 0x4ad06d3a
cmp eax, 0xb7
jne 0x4ad13773
mov eax, 0x234d
push 0
push eax
mov dword [ebp - 0x644], eax
call fcn.4ad0606f
lea eax, [ebp - 0x214]
push eax
call ebx
add esp, 0xc
dec eax
mov dword [ebp - 0x634], eax
lea eax, [ebp + eax*2 - 0x214]
cmp word [eax], 0x2e
jne 0x4ad137a5
and word [eax], 0
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.msvcrt.dll__wcsicmp]
jmp 0x4ad061a7
push dword [ebp - 0x630]
mov eax, dword [ebp - 0x62c]
push dword [ebp - 0x648]
push dword [eax + 0x14]
call fcn.4ad067d0
test al, al
je 0x4ad06d47
mov ebx, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x650]
jmp 0x4ad06bd2
push dword [ebp - 0x630]
call fcn.4ad01c38
xor esi, esi
inc esi
call fcn.4ad065eb
mov eax, esi
jmp 0x4ad06d74
push dword [ebp - 0x63c]
push 0x4ad077d8
call fcn.4ad077e5
push eax
push 1
push 0x236e
call fcn.4ad069f4
add esp, 0xc
jmp 0x4ad06d69