Function at 0x404ecc
Capabilities:
Set file attributes

Disassembly:
push 0x20
mov eax, 0x408263
call fcn.0040785d
mov edi, edx
mov esi, ecx
push edi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], edi
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCFileInterface::CreateDirectories_wchar_t_const__]
push 2
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], ebx
mov byte [ebp - 0x18], bl
mov byte [ebp - 0x17], bl
mov byte [ebp - 0x16], bl
mov byte [ebp - 0x15], bl
mov byte [ebp - 0x14], bl
mov byte [ebp - 0x13], 5
je 0x404f1e
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x20], ebx
lea eax, [ebp - 0x20]
push eax
mov al, byte [esi + 0x30]
push ebx
push ebx
push ebx
neg al
push ebx
push ebx
push ebx
push ebx
sbb eax, eax
add eax, 0x13
push eax
push 1
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x404f6b
call edi
test eax, eax
jg 0x404f54
call edi
jmp 0x404f60
call edi
and eax, 0xffff
or eax, 0x80070000
push eax
push 0x2e61316b
call fcn.004061ee
push 0xf
call dword [sym.imp.ADVAPI32.dll_GetSidLengthRequired]
add eax, 0x10
add eax, eax
push 1
push eax
push 0x40
mov dword [ebp - 0x24], eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
lea esi, [ebp - 0x1c]
call fcn.00405b67
mov byte [ebp - 4], 1
push 2
push dword [ebp - 0x24]
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_InitializeAcl]
test eax, eax
jne 0x404fd7
call edi
test eax, eax
jg 0x404fba
call edi
mov ebx, 0xffff
mov esi, 0x80070000
jmp 0x404fca
call edi
mov ebx, 0xffff
and eax, ebx
mov esi, 0x80070000
or eax, esi
push eax
push 0x2e61316c
call fcn.004061ee
jmp 0x404fe1
mov ebx, 0xffff
mov esi, 0x80070000
push dword [ebp - 0x20]
push 0x10000000
push 2
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_AddAccessAllowedAce]
test eax, eax
jne 0x404ffc
call edi
jmp 0x405004
push dword [ebp - 0x1c]
call fcn.004050c3
test eax, eax
je 0x405019
jle 0x40500e
and eax, ebx
or eax, esi
push eax
push 0x2e61316d
call fcn.004061ee
xor eax, eax
cmp dword [ebp + 8], eax
je 0x405062
cmp dword [ebp + 8], 1
jne 0x40502b
mov eax, 0x1000a9
mov ecx, dword [ebp - 0x2c]
push dword [ecx + 0x38]
push eax
push 2
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_AddAccessAllowedAce]
test eax, eax
jne 0x405045
call edi
jmp 0x40504d
push dword [ebp - 0x1c]
call fcn.004050c3
test eax, eax
je 0x405062
jle 0x405057
and eax, ebx
or eax, esi
push eax
push 0x2e61316e
call fcn.004061ee
xor eax, eax
push eax
push dword [ebp - 0x1c]
push eax
push eax
push 0x80000004
push 1
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoW]
xor edi, edi
cmp eax, edi
je 0x405091
jle 0x405086
and eax, ebx
or eax, esi
push eax
push 0x2e61316f
call fcn.004061ee
mov byte [ebp - 4], 0
cmp dword [ebp - 0x1c], edi
je 0x4050a6
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x1c], edi
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x20], edi
je 0x4050bb
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x20], edi
call fcn.004078e0
ret 4