Function at 0x404ed7
Capabilities:
Set file attributes

Disassembly:
push 0x20
mov eax, 0x40826d
call fcn.0040782d
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 0x404f29
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 0x404f76
call edi
test eax, eax
jg 0x404f5f
call edi
jmp 0x404f6b
call edi
and eax, 0xffff
or eax, 0x80070000
push eax
push 0x2e61316b
call fcn.004061b2
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.00405b2b
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 0x404fe2
call edi
test eax, eax
jg 0x404fc5
call edi
mov ebx, 0xffff
mov esi, 0x80070000
jmp 0x404fd5
call edi
mov ebx, 0xffff
and eax, ebx
mov esi, 0x80070000
or eax, esi
push eax
push 0x2e61316c
call fcn.004061b2
jmp 0x404fec
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 0x405007
call edi
jmp 0x40500f
push dword [ebp - 0x1c]
call fcn.004050ce
test eax, eax
je 0x405024
jle 0x405019
and eax, ebx
or eax, esi
push eax
push 0x2e61316d
call fcn.004061b2
xor eax, eax
cmp dword [ebp + 8], eax
je 0x40506d
cmp dword [ebp + 8], 1
jne 0x405036
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 0x405050
call edi
jmp 0x405058
push dword [ebp - 0x1c]
call fcn.004050ce
test eax, eax
je 0x40506d
jle 0x405062
and eax, ebx
or eax, esi
push eax
push 0x2e61316e
call fcn.004061b2
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 0x40509c
jle 0x405091
and eax, ebx
or eax, esi
push eax
push 0x2e61316f
call fcn.004061b2
mov byte [ebp - 4], 0
cmp dword [ebp - 0x1c], edi
je 0x4050b1
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 0x4050c6
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov dword [ebp - 0x20], edi
call fcn.004078b0
ret 4