Function at 0x4ad08948
Capabilities:
Check if file exists
Get file attributes
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
push ebx
push esi
xor ebx, ebx
push edi
push ebx
push 0x4ad1fb80
call sub.MSVCRT.dll__setjmp3
pop ecx
test eax, eax
pop ecx
jne 0x4ad08d89
mov eax, dword [ebp + 8]
push ebx
push ebx
push dword [eax + 0x3c]
call fcn.4ad12e5a
mov edi, eax
cmp word [edi], bx
je 0x4ad089b6
cmp edi, ebx
je 0x4ad0898d
push edi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad0898f
xor eax, eax
cmp word [edi + eax*2 + 2], bx
lea esi, [edi + eax*2 + 2]
mov dword [ebp - 4], esi
je 0x4ad089b9
cmp esi, ebx
je 0x4ad089ab
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad089ad
xor eax, eax
cmp word [esi + eax*2 + 2], bx
je 0x4ad089c3
jmp 0x4ad089b9
mov esi, dword [ebp - 4]
push 0x232a
call fcn.4ad08677
cmp edi, ebx
je 0x4ad089e5
push edi
call fcn.4ad14661
test eax, eax
je 0x4ad089e5
push edi
call fcn.4ad14661
mov ebx, dword [sym.imp.MSVCRT.dll_wcscpy]
push eax
push edi
call ebx
pop ecx
pop ecx
jmp 0x4ad089eb
mov ebx, dword [sym.imp.MSVCRT.dll_wcscpy]
test esi, esi
je 0x4ad08a05
push esi
call fcn.4ad14661
test eax, eax
je 0x4ad08a05
push esi
call fcn.4ad14661
push eax
push esi
call ebx
pop ecx
pop ecx
push edi
call fcn.4ad13677
cmp eax, 1
mov dword [ebp - 0x10], eax
jne 0x4ad08a1e
push dword [0x4ad1d000]
call fcn.4ad08677
lea eax, [ebp - 0x434]
mov esi, 0x4ad228a0
test eax, eax
je 0x4ad08a3f
mov eax, esi
test eax, eax
je 0x4ad08a3f
lea eax, [ebp - 0x434]
push esi
push eax
call ebx
pop ecx
pop ecx
lea eax, [ebp - 0x22c]
test eax, eax
je 0x4ad08a5b
mov eax, esi
test eax, eax
je 0x4ad08a5b
lea eax, [ebp - 0x22c]
push esi
push eax
call ebx
pop ecx
pop ecx
lea eax, [ebp - 0x434]
test eax, eax
je 0x4ad08a78
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
mov dword [ebp - 0xc], eax
jmp 0x4ad08a7f
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov ecx, dword [esi + 0x14]
test byte [ecx], 0x10
jne 0x4ad08aa7
lea ecx, [ebp + eax*2 - 0x434]
test ecx, ecx
mov dword [ebp - 8], ecx
je 0x4ad08ac7
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4ad08ac7
push eax
push ecx
call ebx
pop ecx
pop ecx
jmp 0x4ad08ac7
dec eax
mov dword [ebp - 0xc], eax
and word [ebp + eax*2 - 0x434], 0
and word [ebp + eax*2 - 0x22c], 0
lea ecx, [ebp + eax*2 - 0x434]
mov dword [ebp - 8], ecx
test byte [esi + 0x18], 8
jne 0x4ad08af9
lea eax, [ebp - 0x434]
push eax
call fcn.4ad14661
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov eax, dword [esi + 0x14]
cmp dword [eax], 0xffffffff
jne 0x4ad08af9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.4ad08677
mov eax, dword [ebp - 4]
cmp word [eax + 2], 0x3a
je 0x4ad08b15
mov cx, word [0x4ad1c744]
push ecx
push eax
call fcn.4ad19418
test eax, eax
je 0x4ad08b1f
push 0x232a
call fcn.4ad08677
mov ax, word [0x4ad228a0]
xor esi, esi
cmp edi, esi
mov word [ebp - 0x63c], ax
mov word [ebp - 0x63a], 0x3a
mov word [ebp - 0x24], 0x2a
mov word [ebp - 0x22], 0x3f
mov word [ebp - 0x20], si
je 0x4ad08b55
push edi
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
mov esi, eax
lea eax, [ebp - 0x24]
push eax
push edi
call fcn.4ad19454
mov edi, dword [ebp - 0x10]
push 0x20
cmp eax, esi
pop eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x18], eax
push ecx
push dword [edi + 0x14]
sbb esi, esi
push eax
lea eax, [ebp - 0x434]
push eax
neg esi
call fcn.4ad18527
test al, al
jne 0x4ad08bcd
push 0x10
lea ecx, [ebp - 0x14]
pop eax
push ecx
mov dword [ebp - 0x18], eax
push dword [edi + 0x14]
push eax
lea eax, [ebp - 0x434]
push eax
call fcn.4ad18527
test al, al
jne 0x4ad08bbf
cmp dword [0x4ad1d000], 0x12
jne 0x4ad08bb7
mov dword [0x4ad1d000], 2
push dword [0x4ad1d000]
jmp 0x4ad08bc8
test esi, esi
je 0x4ad08bcd
push 0x232a
call fcn.4ad08677
mov ecx, dword [ebp - 8]
xor eax, eax
cmp dword [0x4ad22878], eax
mov dword [ebp - 0x1c], eax
mov word [ecx], ax
jne 0x4ad08d7c
mov ebx, 0x104
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
test byte [eax], 0x10
je 0x4ad08ca1
mov ax, word [0x4ad1c744]
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.4ad19436
mov edi, eax
xor esi, esi
cmp edi, esi
jne 0x4ad08c1d
push 0x232e
call fcn.4ad08677
inc edi
inc edi
cmp dword [ebp - 4], esi
mov word [edi], si
je 0x4ad08c33
push dword [ebp - 4]
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
mov esi, eax
lea eax, [ebp - 0x22c]
test eax, eax
je 0x4ad08c4d
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad08c4f
xor eax, eax
lea eax, [eax + esi + 1]
cmp eax, ebx
jbe 0x4ad08c61
push 0x232e
call fcn.4ad08677
test edi, edi
je 0x4ad08c77
cmp dword [ebp - 4], 0
je 0x4ad08c77
push dword [ebp - 4]
push edi
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
lea eax, [ebp - 0x22c]
test eax, eax
je 0x4ad08c91
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad08c93
xor eax, eax
and word [ebp + eax*2 - 0x22c], 0
jmp 0x4ad08d23
cmp dword [ebp - 8], 0
je 0x4ad08cba
add eax, 0x2c
test eax, eax
je 0x4ad08cba
push eax
push dword [ebp - 8]
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0x63c]
push dword [ebp - 8]
push dword [ebp - 4]
push eax
call fcn.4ad1246f
lea eax, [ebp - 0x63c]
test eax, eax
je 0x4ad08ce7
lea eax, [ebp - 0x63c]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
pop ecx
jmp 0x4ad08ce9
xor eax, eax
mov esi, dword [ebp - 0xc]
lea eax, [esi + eax + 1]
cmp eax, ebx
jbe 0x4ad08cfe
push 0x232e
call fcn.4ad08677
lea eax, [ebp + esi*2 - 0x22c]
test eax, eax
je 0x4ad08d23
lea ecx, [ebp - 0x63c]
test ecx, ecx
je 0x4ad08d23
lea ecx, [ebp - 0x63c]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
pop ecx
pop ecx
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x4ad08d5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4ad08d4d
mov eax, 0x234d
push 0
push eax
mov dword [ebp - 0x1c], eax
call fcn.4ad1393b
pop ecx
pop ecx
push dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x18]
push dword [eax + 0x14]
call fcn.4ad1855b
test al, al
je 0x4ad08d8e
cmp dword [0x4ad22878], 0
je 0x4ad08be9
push dword [ebp - 0x14]
call fcn.4ad185bc
call fcn.4ad0885e
push 1
pop eax
jmp 0x4ad08da3
push dword [ebp - 0x14]
call fcn.4ad185bc
call fcn.4ad0885e
xor eax, eax
cmp dword [ebp - 0x1c], eax
setne al
pop edi
pop esi
pop ebx
leave
ret 4