Function at 0x1003dd60
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005f31e
mov eax, dword fs:[0]
push eax
sub esp, 0x344
mov eax, dword [0x1007b00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x330], edi
call fcn.1003e480
test eax, eax
je 0x1003e43b
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1003e43b
test esi, esi
jne 0x1003dde8
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov eax, dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x320], edi
mov edi, dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x324], edi
jmp 0x1003de34
mov eax, dword [esi]
cmp eax, 0x1c
ja 0x1003e43b
push eax
lea eax, [ebp - 0x31c]
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x308]
add esp, 0xc
mov edx, dword [ebp - 0x304]
mov esi, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x318]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
cmovne edi, eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
test esi, esi
mov dword [ebp - 0x338], edi
mov edi, dword [ebp - 0x330]
cmovne eax, esi
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x320]
test eax, eax
push edi
cmovne esi, eax
mov eax, dword [ebp - 0x324]
test eax, eax
mov dword [ebp - 0x320], esi
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
cmovne esi, eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test edx, edx
mov dword [ebp - 0x328], esi
cmovne eax, edx
test ecx, ecx
mov dword [ebp - 0x324], eax
mov eax, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
cmovne eax, ecx
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x32c], eax
call fcn.10002d00
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x38]
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
movups xmmword [ebp - 0x38], xmm0
call fcn.1003e540
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movups xmmword [ebp - 0x24], xmm0
call fcn.1003e540
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0xa0]
lea ecx, [edi - 1]
cmp edi, ecx
ja 0x1003df08
push str.invalid_string_position
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__]
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 0xb0]
mov esi, dword [ebp - 0xb0]
cmp edx, 8
cmovae eax, esi
cmp word [eax + ecx*2], 0x5c
je 0x1003df59
cmp edi, ecx
ja 0x1003df36
push str.invalid_string_position
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__]
cmp edx, 8
lea eax, [ebp - 0xb0]
cmovae eax, esi
cmp word [eax + ecx*2], 0x2f
je 0x1003df59
push 0x10067494
lea ecx, [ebp - 0xb0]
call fcn.1000c160
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x38]
call fcn.1003e690
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003e690
cmp dword [ebp - 0x28], 0
je 0x1003e291
mov edi, dword [ebp + 8]
and edi, 1
mov dword [ebp + 8], edi
nop word [eax + eax]
xor eax, eax
mov dword [ebp - 0x54], 7
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], ax
lea eax, [ebp - 0x344]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x38]
call fcn.100064c0
mov edx, eax
mov eax, dword [edx]
test eax, eax
je 0x1003dfc1
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [edx + 8]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x68]
cmp ecx, eax
je 0x1003dfdf
push 0xffffffffffffffff
push 0
push eax
call fcn.10002f00
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
dec ecx
and ecx, dword [ebp - 0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x1003dffd
inc eax
push eax
push dword [esi]
call fcn.10003020
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x1003e013
mov esi, dword [esi]
xor eax, eax
mov word [esi], ax
sub dword [ebp - 0x28], 1
jne 0x1003e023
mov dword [ebp - 0x2c], eax
jmp 0x1003e026
inc dword [ebp - 0x2c]
test edi, edi
jne 0x1003e073
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
push eax
call dword [ebp - 0x324]
and eax, 0x410
cmp eax, 0x410
jne 0x1003e073
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003e690
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x54]
cmp eax, 8
jb 0x1003e287
inc eax
push eax
push dword [ebp - 0x68]
call fcn.10003020
jmp 0x1003e287
xor eax, eax
mov dword [ebp - 0x6c], 7
mov dword [ebp - 0x70], 0
mov word [ebp - 0x80], ax
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x80]
call fcn.10002f00
push 1
push 0x10069a94
lea ecx, [ebp - 0x80]
call fcn.1000c400
cmp dword [ebp - 0x6c], 8
lea ecx, [ebp - 0x300]
lea eax, [ebp - 0x80]
cmovae eax, dword [ebp - 0x80]
push ecx
push eax
call dword [ebp - 0x334]
mov edi, eax
cmp edi, 0xffffffff
je 0x1003e248
xor eax, eax
mov dword [ebp - 0x3c], 7
mov dword [ebp - 0x40], 0
mov word [ebp - 0x50], ax
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x50]
call fcn.10002f00
cmp word [ebp - 0x2d4], 0
jne 0x1003e102
xor eax, eax
jmp 0x1003e11f
lea eax, [ebp - 0x2d4]
lea edx, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x1003e110
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x2d4]
push eax
lea ecx, [ebp - 0x50]
call fcn.1000c400
test byte [ebp - 0x300], 0x10
je 0x1003e1dd
mov ecx, 0x10069934
lea eax, [ebp - 0x2d4]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1003e16d
test dx, dx
je 0x1003e169
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1003e16d
add eax, 4
add ecx, 4
test dx, dx
jne 0x1003e147
xor eax, eax
jmp 0x1003e172
sbb eax, eax
or eax, 1
test eax, eax
je 0x1003e215
mov ecx, 0x10069948
lea eax, [ebp - 0x2d4]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1003e1ab
test dx, dx
je 0x1003e1a7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1003e1ab
add eax, 4
add ecx, 4
test dx, dx
jne 0x1003e185
xor eax, eax
jmp 0x1003e1b0
sbb eax, eax
or eax, 1
test eax, eax
je 0x1003e215
push 1
push 0x10067494
lea ecx, [ebp - 0x50]
call fcn.1000c400
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x38]
call fcn.1003e690
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003e690
jmp 0x1003e215
cmp dword [ebp - 0x3c], 8
lea esi, [ebp - 0x50]
cmovae esi, dword [ebp - 0x50]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1003e203
test al, 1
je 0x1003e203
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [ebp - 0x3c], 8
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
call dword [ebp - 0x338]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x3c]
cmp eax, 8
jb 0x1003e22b
inc eax
push eax
push dword [ebp - 0x50]
call fcn.10003020
lea eax, [ebp - 0x300]
push eax
push edi
call dword [ebp - 0x320]
test eax, eax
jne 0x1003e0c4
push edi
call dword [ebp - 0x328]
mov eax, dword [ebp - 0x6c]
cmp eax, 8
jb 0x1003e25a
inc eax
push eax
push dword [ebp - 0x80]
call fcn.10003020
xor eax, eax
mov byte [ebp - 4], 2
mov word [ebp - 0x80], ax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x6c], 7
mov dword [ebp - 0x70], 0
cmp eax, 8
jb 0x1003e284
inc eax
push eax
push dword [ebp - 0x68]
call fcn.10003020
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x28], 0
jne 0x1003df90
mov eax, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x328], eax
test eax, eax
je 0x1003e3d6
xor eax, eax
mov dword [ebp - 0x84], 7
mov dword [ebp - 0x88], 0
mov word [ebp - 0x98], ax
push ecx
lea eax, [ebp - 0x344]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x350]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003e780
mov ecx, eax
call fcn.1003e740
mov edx, eax
mov eax, dword [edx]
test eax, eax
je 0x1003e2ed
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, dword [edx + 8]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x98]
cmp ecx, eax
je 0x1003e30e
push 0xffffffffffffffff
push 0
push eax
call fcn.10002f00
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
dec eax
mov edx, dword [ebp - 0x1c]
add ecx, eax
mov eax, dword [ebp - 0x20]
dec edx
and edx, ecx
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x1003e334
inc eax
push eax
push dword [esi]
call fcn.10003020
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x1003e34a
mov esi, dword [esi]
xor eax, eax
mov ecx, 0
mov word [esi], ax
lea esi, [ebp - 0x98]
sub dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x18]
cmove eax, ecx
cmp dword [ebp - 0x84], 8
mov dword [ebp - 0x18], eax
cmovae esi, dword [ebp - 0x98]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1003e390
test al, 1
je 0x1003e390
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [ebp - 0x84], 8
lea eax, [ebp - 0x98]
cmovae eax, dword [ebp - 0x98]
push eax
call dword [ebp - 0x32c]
test eax, eax
je 0x1003e3b0
inc edi
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x84]
cmp eax, 8
jb 0x1003e3cc
inc eax
push eax
push dword [ebp - 0x98]
call fcn.10003020
cmp dword [ebp - 0x14], 0
jne 0x1003e2a4
xor eax, eax
lea ecx, [ebp - 0x24]
cmp dword [ebp - 0x328], edi
sete al
mov dword [ebp - 0x32c], eax
call fcn.1003e5a0
push dword [ebp - 0x24]
call fcn.1005b6d6
add esp, 4
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x38]
call fcn.1003e5a0
push dword [ebp - 0x38]
call fcn.1005b6d6
mov ecx, dword [ebp - 0x9c]
add esp, 4
mov dword [ebp - 0x38], 0
cmp ecx, 8
jb 0x1003e433
inc ecx
push ecx
push dword [ebp - 0xb0]
call fcn.10003020
mov eax, dword [ebp - 0x32c]
jmp 0x1003e43d
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005b6db
mov esp, ebp
pop ebp
ret