Function at 0x460893
Capabilities:
Compare security identifiers

Disassembly:
push 0x194
mov eax, 0x51bc34
call fcn.004d8af2
mov edi, ecx
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x134], edi
xor ebx, ebx
push ebx
push ebx
push 3
push ebx
push 3
push 0x60000
mov dword [ebp - 4], ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x154], esi
cmp esi, 0xffffffff
je 0x461020
test esi, esi
je 0x461020
mov dword [ebp - method.ATL::CSecurityDesc.virtual_0], vtable.ATL::CSecurityDesc.0
mov dword [ebp - 0x138], ebx
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 3
push eax
push ecx
mov edx, esi
lea ecx, [ebp - 0x19c]
call fcn.0045e43f
pop ecx
pop ecx
mov byte [ebp - 4], 4
cmp dword [ebp - 0x19c], ebx
jge 0x460ab9
cmp dword [ebp - 0x198], ebx
mov eax, 0x30c
cmovne eax, dword [ebp - 0x198]
push eax
push dword [ebp - 0x19c]
push ecx
mov esi, esp
mov dword [ebp - 0x134], esi
mov ecx, dword [ebp - 0x194]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x164]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 5
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x194]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov dword [ebp - method.ATL::CSecurityDesc.virtual_0], vtable.ATL::CSecurityDesc.0
cmp dword [ebp - 0x138], ebx
je 0x460aa3
lea eax, [ebp - 0x134]
mov dword [ebp - 0x188], ebx
push eax
lea eax, [ebp - 0x188]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x460a91
test dword [ebp - 0x188], 0x8000
jne 0x460a91
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x158]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0x158]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0x150]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x140]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0x140], ebx
je 0x460a5b
push dword [ebp - 0x14c]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x140]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0x140], 0
je 0x460a91
push dword [ebp - 0x134]
call fcn.004e3620
pop ecx
push dword [ebp - 0x138]
call fcn.004e3620
pop ecx
mov dword [ebp - 0x138], ebx
lea ecx, [ebp - 0x154]
call fcn.00427477
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
jmp 0x461088
mov ecx, dword [ebp - 0x194]
add ecx, 0xfffffff0
call fcn.00407189
mov dword [ebp - 0x180], ebx
mov byte [ebp - 0x17c], bl
mov dword [ebp - 0x178], 2
mov dword [ebp - method.ATL::CDacl.virtual_0], vtable.ATL::CDacl.0
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x168], ebx
mov byte [ebp - 4], 6
cmp dword [ebp - 0x138], 0
je 0x460b73
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
test eax, eax
je 0x460b73
cmp dword [ebp - 0x134], 0
lea ecx, [ebp - 0x184]
mov eax, dword [ebp - 0x184]
je 0x460b6a
mov ebx, dword [ebp - 0x14c]
call dword [eax + 8]
test ebx, ebx
je 0x460b61
push ebx
lea ecx, [ebp - 0x184]
call fcn.004d4ad5
jmp 0x460b73
mov byte [ebp - 0x17c], 1
jmp 0x460b73
call dword [eax + 8]
mov byte [ebp - 0x17c], bl
push 0x220
push 0x20
push 2
mov ebx, 0x53d240
lea eax, [ebp - 0xd0]
push ebx
push eax
call fcn.004d6394
push 0x12
push 1
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 7
push ebx
push eax
call fcn.004d6394
add esp, 0x24
xor eax, eax
mov byte [ebp - 4], 8
xor ebx, ebx
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x170], eax
jbe 0x460fab
lea ecx, [ebp - 0x70]
call fcn.004d546f
xor eax, eax
mov byte [ebp - 4], 9
push ecx
push ecx
mov dword [ebp - 0x144], eax
lea ecx, [ebp - 0x184]
mov byte [ebp - 0x146], al
mov byte [ebp - 0x145], al
lea eax, [ebp - 0x145]
push eax
lea eax, [ebp - 0x146]
push eax
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x70]
push eax
push ebx
call fcn.004d46b6
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
mov ecx, dword [ebp - 0x140]
test eax, eax
lea eax, [ebp - 0xcc]
cmovne ecx, dword [ebp - 0x144]
push eax
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x140], ecx
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
jne 0x460c5d
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
inc ebx
call fcn.004d6486
cmp ebx, dword [ebp - 0x170]
jb 0x460bc0
jmp 0x460c75
push ebx
lea ecx, [ebp - 0x184]
call fcn.004d4f54
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 8
call fcn.004d6486
mov eax, dword [ebp - 0x140]
test eax, eax
je 0x460fab
xor ebx, ebx
lea ecx, [ebp - 0x184]
push ebx
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.004d456f
push ecx
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x13c]
call fcn.004d4480
push dword [ebp - 0x138]
push 4
push esi
call dword [sym.imp.ADVAPI32.dll_SetKernelObjectSecurity]
test eax, eax
jne 0x460e57
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x32b
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x164]
call fcn.00406620
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 0xb
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x130]
call fcn.004d6486
lea ecx, [ebp - 0xd0]
call fcn.004d6486
lea ecx, [ebp - 0x184]
call fcn.004d4dea
mov dword [ebp - method.ATL::CSecurityDesc.virtual_0], vtable.ATL::CSecurityDesc.0
cmp dword [ebp - 0x138], ebx
je 0x461077
lea eax, [ebp - 0x134]
mov dword [ebp - 0x18c], ebx
push eax
lea eax, [ebp - 0x18c]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x460e40
test dword [ebp - 0x18c], 0x8000
jne 0x460e40
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0x134]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x14c]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0x14c]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0x144], ebx
je 0x460e0a
push dword [ebp - 0x150]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0x144], 0
je 0x460e40
push dword [ebp - 0x158]
call fcn.004e3620
pop ecx
push dword [ebp - 0x138]
call fcn.004e3620
pop ecx
mov dword [ebp - 0x138], ebx
jmp 0x461077
lea ecx, [ebp - 0x130]
call fcn.004d6486
lea ecx, [ebp - 0xd0]
call fcn.004d6486
lea ecx, [ebp - 0x184]
call fcn.004d4dea
mov dword [ebp - method.ATL::CSecurityDesc.virtual_0], vtable.ATL::CSecurityDesc.0
cmp dword [ebp - 0x138], ebx
je 0x460f8e
lea eax, [ebp - 0x134]
mov dword [ebp - 0x190], ebx
push eax
lea eax, [ebp - 0x190]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x460f7c
test dword [ebp - 0x190], 0x8000
jne 0x460f7c
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0x134]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x14c]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0x14c]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0x144], ebx
je 0x460f47
push dword [ebp - 0x150]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0x144], ebx
je 0x460f7c
push dword [ebp - 0x158]
call fcn.004e3620
pop ecx
push dword [ebp - 0x138]
call fcn.004e3620
pop ecx
mov dword [ebp - 0x138], ebx
lea ecx, [ebp - 0x154]
call fcn.00427477
lea ecx, [edi + 8]
mov dword [edi], ebx
mov dword [edi + 4], ebx
call fcn.0040687a
jmp 0x461082
push 0x326
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x164]
call fcn.00406620
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x130]
call fcn.004d6486
lea ecx, [ebp - 0xd0]
call fcn.004d6486
lea ecx, [ebp - 0x184]
call fcn.004d4dea
lea ecx, [ebp - 0x13c]
mov dword [ebp - method.ATL::CSecurityDesc.virtual_0], vtable.ATL::CSecurityDesc.0
call fcn.004d5573
jmp 0x461077
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x309
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x164]
call fcn.00406620
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 2
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x15c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x154]
call fcn.00427477
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, edi
call fcn.004d8aa1
ret