Function at 0x422965
Capabilities:
Check if file exists
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x500ef0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x4229a2
cmp dword [ebx + 0x14], 8
jb 0x42298e
mov ebx, dword [ebx]
push ebx
push str.CUpdateCtrl::_tryAddACL_path___s__exe_is_not_run_by_admin
call fcn.004336ac
pop ecx
pop ecx
xor al, al
jmp 0x422b96
push edi
push 8
pop edi
mov eax, ebx
cmp dword [ebx + 0x14], edi
jb 0x4229af
mov eax, dword [ebx]
push esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor esi, esi
test eax, eax
jne 0x4229eb
mov eax, ebx
cmp dword [ebx + 0x14], edi
jb 0x4229c6
mov eax, dword [ebx]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
test eax, eax
je 0x4229eb
cmp dword [ebx + 0x14], edi
jb 0x4229d9
mov ebx, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.CUpdateCtrl::_tryAddACL_SHCreateDirectory_fail__path_is__s__last_error_is__d
jmp 0x422b72
mov eax, ebx
cmp dword [ebx + 0x14], edi
jb 0x4229f4
mov eax, dword [ebx]
lea ecx, [ebp - 0x68]
push ecx
push esi
lea ecx, [ebp - 0x58]
push ecx
push esi
push esi
push 4
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoW]
test eax, eax
jns 0x422a27
cmp dword [ebx + 0x14], edi
jb 0x422a15
mov ebx, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.CUpdateCtrl::_tryAddACL_GetNamedSecurityInfoW_fail__path_is__s__last_error_is__d
jmp 0x422b72
push 0x44
pop eax
push eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x48]
push esi
push eax
call fcn.0047bc10
add esp, 0xc
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x48]
push eax
push esi
push 0x1b
call dword [sym.imp.ADVAPI32.dll_CreateWellKnownSid]
test eax, eax
jne 0x422a69
cmp dword [ebx + 0x14], edi
jb 0x422a57
mov ebx, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.CUpdateCtrl::_tryAddACL_CreateWellKnownSid_fail__path_is__s__last_error_is__d
jmp 0x422b72
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x58]
call dword [sym.imp.ADVAPI32.dll_GetExplicitEntriesFromAclW]
test eax, eax
js 0x422ad4
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x54], esi
jbe 0x422ad4
mov ecx, esi
mov dword [ebp - 0x50], esi
mov esi, dword [ebp - 0x60]
lea eax, [ebp - 0x48]
add esi, ecx
mov ecx, edi
lea edi, [ebp - 0xa8]
push eax
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x8c]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
je 0x422aba
cmp dword [ebp - 0xa8], 0x1f01ff
je 0x422b30
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
inc eax
add ecx, 0x20
mov dword [ebp - 0x4c], eax
push 8
mov dword [ebp - 0x50], ecx
pop edi
cmp eax, dword [ebp - 0x54]
jb 0x422a8b
xor esi, esi
movaps xmm0, xmmword [0x4bd820]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x58]
lea eax, [ebp - 0x88]
mov dword [ebp - 0x88], 0x1f01ff
push eax
push 1
mov dword [ebp - 0x84], 2
mov dword [ebp - 0x80], 3
movups xmmword [ebp - 0x7c], xmm0
call dword [sym.imp.ADVAPI32.dll_SetEntriesInAclW]
test eax, eax
jns 0x422b40
cmp dword [ebx + 0x14], edi
jb 0x422b21
mov ebx, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.CUpdateCtrl::_tryAddACL_SetEntriesInAcl_fail__path_is__s__last_error_is__d
jmp 0x422b72
cmp dword [ebx + 0x14], 8
jb 0x422b38
mov ebx, dword [ebx]
push ebx
push str.CUpdateCtrl::_tryAddACL__path_is__s__already_add_ACL
jmp 0x422b8b
mov eax, ebx
cmp dword [ebx + 0x14], edi
jb 0x422b49
mov eax, dword [ebx]
push esi
push dword [ebp - 0x64]
push esi
push esi
push 4
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoW]
test eax, eax
jns 0x422b7e
cmp dword [ebx + 0x14], edi
jb 0x422b65
mov ebx, dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.CUpdateCtrl::_tryAddACL_SetNamedSecurityInfoW_fail__path_is__s__last_error_is__d
call fcn.004336ac
add esp, 0xc
xor al, al
jmp 0x422b94
cmp dword [ebx + 0x14], edi
jb 0x422b85
mov ebx, dword [ebx]
push ebx
push str.CUpdateCtrl::_tryAddACL_success__path_is__s
call fcn.004336ac
pop ecx
mov al, 1
pop ecx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0047a65d
leave
ret 4