Function at 0x405578
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc8
mov eax, dword [0x44c018]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0xbc], 2
push edi
mov edi, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [ebp - 0xc4], ebx
mov byte [ebp - 0xc0], bl
mov dword [ebp - 0xc8], vtable.ATL::CDacl.0
movups xmmword [ebp - 0xb8], xmm0
test edi, edi
je 0x405615
lea eax, [ebp - 0x88]
push eax
push ebx
lea eax, [ebp - 0x74]
push eax
push ebx
push ebx
push 4
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoW]
test eax, eax
je 0x4055e7
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x405615
mov esi, dword [ebp - 0x74]
test esi, esi
je 0x405609
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc8]
call dword [eax + 8]
push esi
lea ecx, [ebp - 0xc8]
call fcn.004043a8
push dword [ebp - 0x88]
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea eax, [ebp - 0x98]
mov dword [ebp - 0x84], ebx
push eax
push ecx
lea eax, [ebp - 0xa8]
mov dword [ebp - 0x80], ebx
push eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0x7c], ebx
push eax
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
call fcn.00403fe5
cmp dword [ebp - 0x80], ebx
mov esi, ebx
mov ebx, dword [ebp - 0xa8]
jbe 0x405733
mov eax, dword [ebp - 0x84]
add eax, 4
mov dword [ebp - 0x74], eax
cmp esi, dword [ebp - 0x80]
jae 0x4057d4
push 0xb
push 1
lea eax, [ebp - 0x6c]
push 0x447da0
push eax
call fcn.00403d6b
add esp, 0x10
cmp dword [ebp - 0x74], 0
je 0x4056e6
lea ecx, [ebp - 0x6c]
call fcn.00403f4b
test al, al
je 0x4056e6
mov ecx, dword [ebp - 0x74]
lea ecx, [ecx - 4]
call fcn.00403f4b
test al, al
je 0x4056e6
push dword [ebp - 0x74]
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
setne byte [ebp - 0x6d]
jmp 0x4056ea
mov byte [ebp - 0x6d], 0
lea ecx, [ebp - 0x6c]
call fcn.00403e3c
cmp byte [ebp - 0x6d], 0
je 0x405725
cmp esi, dword [ebp - 0xa4]
jae 0x4057d4
test dword [ebx + esi*4], 0x1f01ff
je 0x405725
cmp esi, dword [ebp - 0x94]
jae 0x4057d4
mov eax, dword [ebp - 0x98]
test byte [eax + esi], 3
jne 0x405791
add dword [ebp - 0x74], 0x60
inc esi
cmp esi, dword [ebp - 0x80]
jb 0x40569b
lea ecx, [ebp - 0xc8]
call fcn.00404309
push 0xb
push 1
lea eax, [ebp - 0x6c]
push 0x447da0
push eax
call fcn.00403d6b
pop ecx
pop ecx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0xc8]
call fcn.0040428c
lea ecx, [ebp - 0x6c]
call fcn.00403e3c
test edi, edi
je 0x405791
push 0
lea ecx, [ebp - 0xc8]
call fcn.00404109
push eax
push 0
push 0
push 4
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoW]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, dword [ebp - 0x98]
test esi, esi
je 0x4057a2
push esi
call fcn.0041d98e
pop ecx
test ebx, ebx
je 0x4057ad
push ebx
call fcn.0041d98e
pop ecx
lea ecx, [ebp - 0x84]
call fcn.0040649b
lea ecx, [ebp - 0xc8]
call fcn.00404265
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00418ae7
leave
ret 0xc
push 0x80070057
call fcn.00403c2a
int3