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

Disassembly:
mov ebx, dword [sym.imp.vmsvcrt.dll_wcslen]
jmp 0x4ad0ba57
mov byte [ebp - 0x625], 2
jmp 0x4ad0b951
call dword [sym.imp.vKERNEL32.dll_GetLastError]
jmp 0x4ad1377b
test eax, eax
pop ecx
pop ecx
jne 0x4ad0bb2e
jmp 0x4ad0bb3b
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.4ad02a34
test al, al
je 0x4ad13718
and dword [ebp - 0x63c], 0
and dword [ebp - 0x644], 0
test esi, esi
je 0x4ad0b9a2
lea eax, [ebp - 0x41c]
push esi
push eax
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.4ad01a53
mov ecx, eax
inc ecx
inc ecx
mov dword [ebp - 0x650], ecx
mov esi, 0x104
cmp dword [0x4ad2b9e8], 0
jne 0x4ad13805
test ecx, ecx
je 0x4ad0b9e9
mov eax, dword [ebx + 0x14]
add eax, 0x2c
je 0x4ad0b9e9
push eax
push ecx
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
cmp dword [ebp - 0x638], 0
je 0x4ad0ba07
push dword [ebp - 0x638]
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
cmp byte [ebp - 0x625], 1
jne 0x4ad060a1
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.4ad01a53
inc eax
inc eax
je 0x4ad0ba3f
mov ecx, dword [ebx + 0x14]
add ecx, 0x2c
je 0x4ad0ba3f
push ecx
push eax
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
mov ebx, dword [sym.imp.vmsvcrt.dll_wcslen]
lea eax, [ebp - 0x214]
push eax
call ebx
cmp eax, esi
pop ecx
ja 0x4ad13752
push 0
lea eax, [ebp - 0x624]
push eax
push esi
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.vKERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x4ad060b8
cmp eax, esi
jae 0x4ad060b8
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.vKERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x4ad060b8
cmp eax, esi
jae 0x4ad060b8
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x624]
push eax
call fcn.4ad0bbc0
test eax, eax
je 0x4ad137d2
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 0x4ad1375c
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.4ad0bb7c
test eax, eax
je 0x4ad060b8
cmp dword [ebp - 0x640], 0
je 0x4ad0bb2e
inc dword [ebp - 0x63c]
cmp dword [ebp - 0x64c], 0
jne 0x4ad13763
cmp byte [ebp - 0x626], 0
je 0x4ad137d2
push dword [ebp - 0x630]
call fcn.4ad01c24
call fcn.4ad062b7
mov eax, dword [ebp - 0x62c]
mov eax, dword [eax + 0x14]
test byte [eax], 0x10
jne 0x4ad1381f
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 0x4ad02bb4
mov dword [ebp - 0x21c], eax
call fcn.4ad02bc9
push eax
call fcn.4ad06479
push 0
push 0
push dword [esi + 0x3c]
call fcn.4ad017d6
mov ebx, eax
push edi
push ebx
call fcn.4ad06479
test eax, eax
je 0x4ad0bd14
mov ax, word [ebx]
inc ebx
inc ebx
test ax, ax
jne 0x4ad0bd0a
cmp word [ebx], 0
je 0x4ad135c5
mov edi, dword [sym.imp.vmsvcrt.dll_wcslen]
push ebx
call edi
mov esi, eax
cmp esi, 0x104
pop ecx
ja 0x4ad0bf2c
push ebx
call fcn.4ad01349
test eax, eax
je 0x4ad0bd50
push ebx
call fcn.4ad01349
push eax
push ebx
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
push ebx
call fcn.4ad062eb
cmp eax, 1
mov ecx, dword [ebp - 0x210]
mov dword [ecx], eax
je 0x4ad135cf
lea esi, [ebx + esi*2 + 2]
cmp word [esi], 0
je 0x4ad135da
push esi
call edi
cmp word [esi + eax*2 + 2], 0
pop ecx
jne 0x4ad135c5
push esi
call edi
cmp eax, 0x104
pop ecx
ja 0x4ad0bf2c
push esi
call fcn.4ad01349
test eax, eax
je 0x4ad0bdae
push esi
call fcn.4ad01349
push eax
push esi
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
mov ax, word [esi + 2]
cmp ax, 0x3a
jne 0x4ad135ff
lea eax, [ebp - 0x20c]
push esi
push eax
call dword [sym.imp.vmsvcrt.dll_wcscpy]
pop ecx
pop ecx
push dword [ebp + 0x20]
push ebx
push dword [ebp - 0x214]
call fcn.4ad01aa5
test eax, eax
jne 0x4ad0bf2c
mov esi, dword [ebp - 0x210]
mov eax, dword [esi]
mov eax, dword [eax + 0x14]
test byte [eax], 0x10
jne 0x4ad0be41
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
push dword [ebp - 0x214]
call fcn.4ad01a53
mov ebx, eax
test ebx, ebx
je 0x4ad0bf1d
inc ebx
inc ebx
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
mov eax, dword [esi]
push dword [eax + 0xc]
call fcn.4ad01a53
test eax, eax
jne 0x4ad0be2f
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test ebx, ebx
je 0x4ad0be41
test eax, eax
je 0x4ad0be41
push eax
push ebx
call dword [sym.imp.vmsvcrt.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.4ad01aa5
test eax, eax
jne 0x4ad0bf2c
push eax
mov dword [ebp - 0x210], eax
mov dword [0x4ad2ba04], eax
call dword [sym.imp.vKERNEL32.dll_SetLastError]
mov esi, dword [ebp - 0x21c]
and dword [esi], 0
push ebx
call fcn.4ad01a79
mov ax, word [eax]
cmp ax, word [0x4ad33b8c]
je 0x4ad1366b
push ebx
call dword [sym.imp.vKERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4ad1368c
test al, 0x10
je 0x4ad0beaf
xor eax, eax
inc eax
mov dword [esi], eax
mov dword [ebp - 0x210], eax
xor esi, esi
cmp dword [ebp - 0x210], esi
je 0x4ad0bf0c
xor eax, eax
mov ax, word [0x4ad33b8c]
push eax
push dword [ebp - 0x214]
call fcn.4ad01a53
cmp eax, esi
mov dword [ebp - 0x210], eax
je 0x4ad0bedd
push eax
call edi
pop ecx
mov esi, eax
test ebx, ebx
je 0x4ad0bf28
push ebx
call edi
pop ecx
lea eax, [eax + esi + 1]
cmp eax, 0x104
ja 0x4ad0bf2c
test ebx, ebx
je 0x4ad0bf0c
cmp dword [ebp - 0x210], 0
je 0x4ad0bf0c
push dword [ebp - 0x210]
push ebx
call dword [sym.imp.vmsvcrt.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 0x4ad0be13
xor eax, eax
jmp 0x4ad0bee5
push 0x232e
jmp 0x4ad136b2
push 0x232a
jmp 0x4ad136b2
push dword [0x4ad2ba04]
jmp 0x4ad136b2
mov eax, dword [0x4ad33ae8]
mov ax, word [eax]
and word [ebp - 0x208], 0
mov word [ebp - 0x20c], ax
mov word [ebp - 0x20a], 0x3a
jmp 0x4ad0bdcc
cmp word [esi], 0x5c
jne 0x4ad1360f
cmp ax, 0x5c
je 0x4ad0bdbc
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 0x4ad0bf2c
lea eax, [ebp - 0x20c]
push esi
push eax
call dword [sym.imp.vmsvcrt.dll_wcscat]
jmp 0x4ad0bdca
test ebx, ebx
mov dword [ebp - 0x210], 1
je 0x4ad1367f
push ebx
call edi
pop ecx
jmp 0x4ad13681
xor eax, eax
and word [ebx + eax*2 - 2], 0
jmp 0x4ad0be90
call dword [sym.imp.vKERNEL32.dll_GetLastError]
test eax, eax
mov dword [0x4ad2ba04], eax
je 0x4ad0beaf
cmp eax, 2
je 0x4ad0beaf
cmp eax, 3
je 0x4ad0beaf
push eax
call fcn.4ad1ba27
cmp dword [ebp + 0x18], 0
je 0x4ad060ac
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 0x638]
push esi
call fcn.4ad0bb7c
test eax, eax
jne 0x4ad136f1
call dword [sym.imp.vKERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4ad136ee
mov eax, 0x234d
push eax
jmp 0x4ad13757
xor esi, esi
jmp 0x4ad13813
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.4ad02a34
movzx eax, al
test eax, eax
jne 0x4ad0b980
mov eax, dword [0x4ad2ba04]
cmp eax, 0x12
jne 0x4ad1374c
push 2
pop eax
jmp 0x4ad136ee
test edi, edi
jne 0x4ad136e9
jmp 0x4ad136ee
push 0x232e
call fcn.4ad1ba27
mov eax, 0xce
jmp 0x4ad13787
lea eax, [ebp - 0x41c]
push eax
push str._s_r_n
call fcn.4ad05e00
pop ecx
pop ecx
jmp 0x4ad0bb2e
cmp eax, 0xb7
jne 0x4ad13787
mov eax, 0x234d
push 0
push eax
mov dword [ebp - 0x644], eax
call fcn.4ad05fb5
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 0x4ad137b9
and word [eax], 0
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.vmsvcrt.dll__wcsicmp]
jmp 0x4ad060c3
push dword [ebp - 0x630]
mov eax, dword [ebp - 0x62c]
push dword [ebp - 0x648]
push dword [eax + 0x14]
call fcn.4ad0649c
test al, al
je 0x4ad0bb3b
mov ebx, dword [ebp - 0x62c]
mov ecx, dword [ebp - 0x650]
jmp 0x4ad0b9c6
push dword [ebp - 0x630]
call fcn.4ad01c24
xor esi, esi
inc esi
call fcn.4ad062b7
mov eax, esi
jmp 0x4ad0bb68
push dword [ebp - 0x63c]
push 0x4ad0ca10
call fcn.4ad0ca1d
push eax
push 1
push 0x236e
call fcn.4ad0bfae
add esp, 0xc
jmp 0x4ad0bb5d