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

Disassembly:
push 0x25c
mov eax, 0x100857a6
call fcn.10063fad
mov esi, ecx
mov dword [ebp - 0x258], esi
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
jne 0x10024eae
cmp dword [esi + 8], ebx
je 0x100255d7
cmp dword [esi + 0xc], ebx
je 0x100255d7
xor ecx, ecx
lea edi, [ecx + 1]
mov dword [ebp - 0x234], edi
test eax, eax
je 0x10024ece
mov edi, ebx
mov dword [ebp - 0x234], ebx
push 0x10001c0c
push 0x104
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.10036c42
push 0x318
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x10024f07
mov ecx, eax
call fcn.1007b0e6
mov ebx, eax
or dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x100255d7
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10024f36
and eax, 0xfffffffd
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.kernel32.dll_SetFileAttributesW]
mov ecx, ebx
call fcn.1007b15c
test eax, eax
jns 0x10024f54
mov ecx, ebx
call fcn.1007b102
push ebx
call fcn.10036c42
pop ecx
jmp 0x100255d7
test edi, edi
je 0x10024f6c
push 0x22
lea eax, [ebp - 0x218]
push eax
mov ecx, ebx
call fcn.10036c42
test eax, eax
jns 0x10024f87
push 0
lea eax, [ebp - 0x218]
push eax
mov ecx, ebx
call fcn.10036c42
and dword [ebp - 0x234], 0
test eax, eax
js 0x10024f41
xor eax, eax
push 0x428
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x230], eax
mov edi, eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x260], eax
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
xor ecx, ecx
inc ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x10024fce
push ebx
mov ecx, eax
call fcn.10036c42
jmp 0x10024fd0
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x24c], eax
test eax, eax
je 0x1002559f
push 0x22
push 0x10001bdc
mov ecx, eax
call fcn.10036c42
test eax, eax
jns 0x1002500c
mov ecx, dword [ebp - 0x24c]
push 0x10001bdc
call fcn.10036c42
test eax, eax
js 0x10025524
mov ecx, dword [ebp - 0x24c]
push 4
lea eax, [ebp - 0x260]
push eax
call fcn.10036c42
cmp eax, 4
jne 0x10025524
cmp dword [ebp - 0x234], 0
jne 0x10025290
push 0x428
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x10025062
push ebx
mov ecx, eax
call fcn.10036c42
mov dword [ebp - 0x23c], eax
jmp 0x10025069
and dword [ebp - 0x23c], 0
or dword [ebp - 4], 0xffffffff
push 0x428
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x10025093
push ebx
mov ecx, eax
call fcn.10036c42
jmp 0x10025095
xor eax, eax
mov ecx, dword [ebp - 0x23c]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x244], eax
test ecx, ecx
je 0x10025524
test eax, eax
je 0x10025524
push 0x10001b78
call fcn.10036c42
test eax, eax
js 0x10025524
mov ecx, dword [ebp - 0x244]
push 0x10001b94
call fcn.10036c42
test eax, eax
js 0x10025524
mov ecx, dword [ebp - 0x23c]
and dword [ebp - 0x240], 0
push 4
lea eax, [ebp - 0x240]
push eax
call fcn.10036c42
mov ecx, dword [ebp - 0x244]
and dword [ebp - 0x238], 0
push 4
lea eax, [ebp - 0x238]
push eax
call fcn.10036c42
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 8]
xor ecx, ecx
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x234], ecx
test eax, eax
je 0x10025237
push ecx
mov ecx, dword [esi + 0xc]
call fcn.10036c42
mov dword [ebp - 0x254], eax
test eax, eax
je 0x1002521e
lea ecx, [ebp - 0x268]
push ecx
push eax
call fcn.10036c42
mov ecx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x254]
mov dword [ebp - 0x228], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x10025180
movzx eax, word [eax + 0xc]
jmp 0x10025182
xor eax, eax
mov word [ebp - 0x224], ax
xor eax, eax
mov word [ebp - 0x222], ax
mov eax, dword [ecx + 0x74]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x21c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100251b3
mov eax, dword [eax + 0x20]
jmp 0x100251b5
xor eax, eax
mov dword [ebp - 0x250], eax
test eax, eax
je 0x10025524
push eax
call dword [sym.imp.kernel32.dll_lstrlenW]
mov ecx, dword [ebp - 0x23c]
lea esi, [eax + 1]
push 0x14
lea eax, [ebp - 0x22c]
push eax
mov dword [ebp - 0x254], esi
call fcn.10036c42
cmp eax, 0x14
jne 0x10025524
mov ecx, dword [ebp - 0x244]
add esi, esi
push esi
push dword [ebp - 0x250]
call fcn.10036c42
cmp eax, esi
jne 0x10025524
mov eax, dword [ebp - 0x254]
add dword [ebp - 0x238], eax
mov esi, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x234]
inc ecx
mov dword [ebp - 0x234], ecx
cmp ecx, dword [ebp - 0x240]
jb 0x10025131
mov ecx, dword [ebp - 0x23c]
push 0
push 0
call fcn.10036c42
mov ecx, dword [ebp - 0x23c]
push 4
lea eax, [ebp - 0x240]
push eax
call fcn.10036c42
cmp eax, 4
jne 0x10025524
mov ecx, dword [ebp - 0x244]
push 0
push 0
call fcn.10036c42
mov ecx, dword [ebp - 0x244]
push 4
lea eax, [ebp - 0x238]
push eax
call fcn.10036c42
cmp eax, 4
je 0x1002529a
jmp 0x10025524
cmp dword [esi + 8], 0
je 0x100254eb
mov edi, 0x428
push edi
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x100252c7
push ebx
mov ecx, eax
call fcn.10036c42
mov dword [ebp - 0x230], eax
jmp 0x100252ce
and dword [ebp - 0x230], 0
or dword [ebp - 4], 0xffffffff
push edi
call fcn.10036c42
pop ecx
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x100252fc
push ebx
mov ecx, eax
call fcn.10036c42
mov edi, eax
mov dword [ebp - 0x234], eax
jmp 0x10025304
xor edi, edi
mov dword [ebp - 0x234], edi
mov eax, dword [ebp - 0x230]
or dword [ebp - 4], 0xffffffff
test eax, eax
je 0x1002551e
test edi, edi
je 0x1002551e
push 0x22
push 0x10001bac
mov ecx, eax
call fcn.10036c42
test eax, eax
jns 0x10025348
mov ecx, dword [ebp - 0x230]
push 0x10001bac
call fcn.10036c42
test eax, eax
js 0x1002551e
push 0x22
push 0x10001bc4
mov ecx, edi
call fcn.10036c42
test eax, eax
jns 0x1002536e
push 0x10001bc4
mov ecx, edi
call fcn.10036c42
test eax, eax
js 0x1002551e
mov ecx, dword [ebp - 0x230]
and dword [ebp - 0x240], 0
push 4
lea eax, [ebp - 0x240]
push eax
call fcn.10036c42
and dword [ebp - 0x238], 0
push 4
lea eax, [ebp - 0x238]
push eax
mov ecx, edi
call fcn.10036c42
xor eax, eax
cmp dword [esi + 0x10], eax
je 0x1002549f
cmp dword [esi + 0x18], eax
je 0x1002549f
mov dword [ebp - 0x250], eax
cmp dword [esi + 0x14], eax
jbe 0x1002549f
mov ecx, eax
mov dword [ebp - 0x254], eax
mov eax, dword [esi + 0x10]
xor edx, edx
add eax, ecx
inc edx
cmp word [eax + 0xa], dx
mov edx, dword [ebp - 0x250]
mov dword [ebp - 0x25c], eax
jne 0x10025484
mov ecx, dword [eax + 0x10]
mov eax, dword [esi + 0x18]
mov esi, dword [ebp - 0x25c]
lea edx, [eax + ecx*2]
push 5
pop ecx
xor eax, eax
lea edi, [ebp - 0x22c]
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x222], ax
mov eax, dword [ebp - 0x238]
push edx
mov dword [ebp - 0x248], edx
mov dword [ebp - 0x21c], eax
call dword [sym.imp.kernel32.dll_lstrlenW]
mov esi, dword [ebp - 0x230]
lea edi, [eax + 1]
add dword [ebp - 0x238], edi
push 0x14
lea eax, [ebp - 0x22c]
push eax
mov ecx, esi
call fcn.10036c42
cmp eax, 0x14
jne 0x10025516
lea esi, [edi + edi]
mov edi, dword [ebp - 0x234]
push esi
push dword [ebp - 0x248]
mov ecx, edi
call fcn.10036c42
cmp eax, esi
jne 0x1002551e
inc dword [ebp - 0x240]
mov esi, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp - 0x250]
inc edx
add ecx, 0x14
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x254], ecx
cmp edx, dword [esi + 0x14]
jb 0x100253cb
xor eax, eax
mov ecx, dword [ebp - 0x230]
push eax
push eax
call fcn.10036c42
mov ecx, dword [ebp - 0x230]
push 4
lea eax, [ebp - 0x240]
push eax
call fcn.10036c42
cmp eax, 4
jne 0x1002551e
push 0
push 0
mov ecx, edi
call fcn.10036c42
push 4
lea eax, [ebp - 0x238]
push eax
mov ecx, edi
call fcn.10036c42
mov edi, dword [ebp - 0x234]
cmp eax, 4
jne 0x10025524
mov ecx, dword [ebp - 0x24c]
push 0
push 0
call fcn.10036c42
mov ecx, dword [ebp - 0x24c]
push 4
push 0x10097434
call fcn.10036c42
and dword [esi + 8], 0
and dword [esi + 4], 0
jmp 0x10025524
mov edi, dword [ebp - 0x234]
jmp 0x1002552a
mov edi, dword [ebp - 0x234]
mov esi, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x24c]
call fcn.1007a881
push dword [ebp - 0x24c]
call fcn.10036c42
mov eax, dword [ebp - 0x23c]
pop ecx
test eax, eax
je 0x1002555e
mov ecx, eax
call fcn.1007a881
push dword [ebp - 0x23c]
call fcn.10036c42
pop ecx
mov eax, dword [ebp - 0x244]
test eax, eax
je 0x1002557b
mov ecx, eax
call fcn.1007a881
push dword [ebp - 0x244]
call fcn.10036c42
pop ecx
test esi, esi
je 0x1002558d
mov ecx, esi
call fcn.1007a881
push esi
call fcn.10036c42
pop ecx
test edi, edi
je 0x1002559f
mov ecx, edi
call fcn.1007a881
push edi
call fcn.10036c42
pop ecx
mov ecx, ebx
call fcn.1007b2ed
mov ecx, ebx
call fcn.1007b102
push ebx
call fcn.10036c42
pop ecx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100255d7
or eax, 2
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.kernel32.dll_SetFileAttributesW]
call fcn.10064030
ret