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

Disassembly:
push ebp
sub esp, 0x5c
lea ebp, [esp - 4]
mov eax, dword [0x592894]
xor eax, ebp
mov dword [ebp + 0x5c], eax
push 0xe4
mov eax, 0x521d64
call fcn.0047b854
mov edi, dword [ebp + 0x68]
mov eax, dword [edi]
mov eax, dword [eax + 4]
lea ecx, [eax + edi]
xor ebx, ebx
cmp dword [ecx + 0x14], ebx
jne 0x43855c
xor al, al
jmp 0x43873c
lea eax, [ebp + 0x40]
push eax
call fcn.00412b36
cmp dword [ebp + 0x58], 8
mov eax, dword [ebp + 0x44]
mov dword [ebp - 4], ebx
jae 0x438574
lea eax, [ebp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp + 0x3c], eax
cmp eax, 0xffffffff
jne 0x438586
mov dword [ebp + 0x3c], ebx
mov eax, dword [ebp + 0x6c]
test byte [eax], 0x92
jne 0x438594
or dword [ebp + 0x3c], 1
jmp 0x438598
and dword [ebp + 0x3c], 0xfffffffe
cmp dword [ebp + 0x58], 8
mov eax, dword [ebp + 0x44]
jae 0x4385a4
lea eax, [ebp + 0x44]
push dword [ebp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x438708
lea eax, [ebp + 0x38]
mov esi, 0x7530
push eax
mov dword [ebp + 0x38], esi
call fcn.00432974
mov ecx, eax
call fcn.00431f04
test al, al
je 0x438708
push 1
push 3
lea ecx, [ebp - 0xf0]
call fcn.0040ac7d
lea eax, [ebp + 0x1c]
push ebx
push eax
mov byte [ebp - 4], 1
call fcn.004391c2
pop ecx
pop ecx
push eax
push str.__failed:
push dword [ebp + 0x3c]
lea eax, [ebp - 0xe8]
push 0x52f004
push edi
push str.SetFileAttribute_
push eax
mov byte [ebp - 4], 2
call fcn.0040a99a
pop ecx
pop ecx
push eax
call fcn.0040ac41
pop ecx
pop ecx
push eax
call fcn.0040a99a
pop ecx
pop ecx
mov ecx, eax
call fcn.0042d8fa
push eax
call fcn.0040a99a
pop ecx
pop ecx
push eax
call fcn.0040aad8
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], 1
call fcn.0040365c
lea eax, [ebp + 0x38]
push eax
mov dword [ebp + 0x38], esi
call fcn.00432974
mov ecx, eax
call fcn.00431f04
test al, al
je 0x4386fa
push str.bp::file::setFileProperties
lea ecx, [ebp + 0x1c]
call fcn.0040979d
push str........._srclibs_bputils_srcUtils_bpfile_Windows.cpp
lea ecx, [ebp]
mov byte [ebp - 4], 3
call fcn.0040979d
push 0x1d4
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 4
mov dword [ebp + 0x38], esi
call fcn.004095fe
mov esi, eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 5
call fcn.00409e20
push esi
push eax
lea eax, [ebp + 0x38]
push eax
mov byte [ebp - 4], 6
call fcn.00432974
mov ecx, eax
call fcn.004322cc
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040365c
lea ecx, [ebp - 0x68]
call fcn.004a73e9
push ebx
push 1
lea ecx, [ebp]
call fcn.0040365c
push ebx
push 1
lea ecx, [ebp + 0x1c]
call fcn.0040365c
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], bl
call fcn.0040441f
mov ecx, dword [ebp + 0x6c]
push dword [ecx + 0xc]
mov eax, dword [edi]
mov eax, dword [eax + 4]
push dword [ecx + 8]
add eax, edi
push eax
mov byte [ebp - 4], 7
call fcn.00437e28
add esp, 0xc
jmp 0x43872f
push ebx
push 1
lea ecx, [ebp + 0x40]
call fcn.004036a7
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x5c]
xor ecx, ebp
call fcn.0047b812
add ebp, 0x60
leave
ret