Function at 0x41ed5e
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4ce43f
mov eax, dword fs:[0]
push eax
sub esp, 0x198
mov eax, dword [0x4fa654]
xor eax, esp
mov dword [esp + 0x190], eax
push ebx
push esi
push edi
mov eax, dword [0x4fa654]
xor eax, esp
push eax
lea eax, [esp + 0x1a8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor esi, esi
cmp dword [eax + 0x14], 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jb 0x41edb7
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push esi
push esi
push 1
push eax
call dword [sym.imp.ADVAPI32.dll_GetFileSecurityW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp eax, 0x7a
je 0x41ee87
call ebx
mov edi, eax
lea eax, [esp + 0x34]
push eax
call fcn.00404d9c
lea eax, [esp + 0x34]
push str.GetFileSecurity___failed._Error
push eax
mov dword [esp + 0x1b8], esi
call fcn.00405e4c
pop ecx
pop ecx
push edi
lea eax, [esp + 0x38]
push eax
call fcn.0040aae0
lea edx, [esp + 0x184]
lea ecx, [esp + 0x34]
call fcn.00404d5e
mov byte [esp + 0x1b0], 1
cmp dword [esp + 0x198], 8
mov eax, dword [esp + 0x184]
jae 0x41ee39
lea eax, [esp + 0x184]
xor ecx, ecx
push eax
inc ecx
call fcn.0042181f
pop ecx
push 1
xor edi, edi
lea esi, [esp + 0x188]
call fcn.00401198
or dword [esp + 0x1b0], 0xffffffff
lea ecx, [esp + 0x84]
call fcn.00404e06
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0x88], vtable.std::ios_base.0
call fcn.00445c6f
pop ecx
xor al, al
jmp 0x41f19c
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x13]
mov dword [esp + 0x184], esi
mov dword [esp + 0x188], esi
mov dword [esp + 0x18c], esi
push eax
lea esi, [esp + 0x188]
mov byte [esp + 0x17], 0
call fcn.0041fb7f
mov dword [esp + 0x1b0], 2
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x14], 8
jb 0x41eecd
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push dword [esp + 0x20]
xor edi, edi
push dword [esp + 0x18c]
inc edi
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_GetFileSecurityW]
test eax, eax
jne 0x41efa8
call ebx
mov esi, eax
lea eax, [esp + 0x34]
push eax
call fcn.00404d9c
lea eax, [esp + 0x34]
push str.GetFileSecurity___failed._Error
push eax
mov byte [esp + 0x1b8], 3
call fcn.00405e4c
pop ecx
pop ecx
push esi
lea eax, [esp + 0x38]
push eax
call fcn.0040aae0
lea edx, [esp + 0x168]
lea ecx, [esp + 0x34]
call fcn.00404d5e
mov byte [esp + 0x1b0], 4
cmp dword [esp + 0x17c], 8
mov eax, dword [esp + 0x168]
jae 0x41ef52
lea eax, [esp + 0x168]
push eax
mov ecx, edi
call fcn.0042181f
pop ecx
push edi
xor edi, edi
lea esi, [esp + 0x16c]
call fcn.00401198
lea ecx, [esp + 0x84]
mov byte [esp + 0x1b0], 2
call fcn.00404e06
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0x88], vtable.std::ios_base.0
call fcn.00445c6f
pop ecx
lea esi, [esp + 0x184]
call fcn.0041a6ce
jmp 0x41ee80
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x18c]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
test eax, eax
jne 0x41f012
call ebx
mov esi, eax
lea eax, [esp + 0x34]
push eax
call fcn.00404d9c
lea eax, [esp + 0x34]
push str.GetSecurityDescriptorOwner_failed._Error
push eax
mov byte [esp + 0x1b8], 5
call fcn.00405e4c
pop ecx
pop ecx
push esi
lea eax, [esp + 0x38]
push eax
call fcn.0040aae0
lea edx, [esp + 0x168]
lea ecx, [esp + 0x34]
call fcn.00404d5e
mov byte [esp + 0x1b0], 6
jmp 0x41ef3a
push dword [esp + 0x14]
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x41f188
and dword [esp + 0x14], eax
mov esi, dword [sym.imp.ADVAPI32.dll_ConvertSidToStringSidW]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x24]
call esi
mov dword [esp + 0x28], eax
mov edi, str.unknown
test eax, eax
jne 0x41f052
mov dword [esp + 0x14], edi
and dword [esp + 0x18], 0
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x24]
call esi
mov dword [esp + 0x24], eax
test eax, eax
jne 0x41f06e
mov dword [esp + 0x18], edi
call ebx
mov esi, eax
lea eax, [esp + 0xcc]
push eax
call fcn.00404d9c
lea eax, [esp + 0xcc]
push str.EqualSid_
push eax
mov byte [esp + 0x1b8], 7
call fcn.00405e4c
push dword [esp + 0x1c]
lea eax, [esp + 0xd8]
push eax
call fcn.00405e4c
lea eax, [esp + 0xdc]
push 0x4e5b30
push eax
call fcn.00405e4c
push dword [esp + 0x30]
lea eax, [esp + 0xe8]
push eax
call fcn.00405e4c
lea eax, [esp + 0xec]
push str.__failed._Error
push eax
call fcn.00405e4c
add esp, 0x28
push esi
lea eax, [esp + 0xd0]
push eax
call fcn.0040aae0
lea edx, [esp + 0x168]
lea ecx, [esp + 0xcc]
call fcn.00404d5e
mov byte [esp + 0x1b0], 8
cmp dword [esp + 0x17c], 8
mov eax, dword [esp + 0x168]
jae 0x41f123
lea eax, [esp + 0x168]
xor ecx, ecx
push eax
inc ecx
call fcn.0042181f
pop ecx
push 1
xor edi, edi
lea esi, [esp + 0x16c]
call fcn.00401198
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1b0], 2
call fcn.00404e06
lea eax, [esp + 0x11c]
push eax
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.00445c6f
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
pop ecx
cmp dword [esp + 0x28], edi
je 0x41f17c
push dword [esp + 0x14]
call esi
cmp dword [esp + 0x24], edi
je 0x41f188
push dword [esp + 0x18]
call esi
lea esi, [esp + 0x184]
call fcn.0041a6ce
cmp dword [esp + 0x2c], 0
setne al
mov ecx, dword [esp + 0x1a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.004466c5
mov esp, ebp
pop ebp
ret