Function at 0x46c9b6
Capabilities:
Compare security identifiers

Disassembly:
push 0x16c
mov eax, 0x51d6d6
call fcn.004d8af2
mov byte [ebp - 0xf2], dl
mov edi, ecx
mov dword [ebp - 0xe4], edi
push 0x60000
xor esi, esi
mov dword [ebp - 0xe4], edi
push esi
push str.Winsta0
call dword [sym.imp.USER32.dll_OpenWindowStationW]
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x46ca4e
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x17
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov dword [ebp - 4], esi
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
add ecx, 0xfffffff0
call fcn.00407189
jmp 0x46d7bb
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x128], 4
push ecx
push esi
push esi
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x124], esi
push ecx
push eax
call dword [sym.imp.USER32.dll_GetUserObjectSecurity]
mov ebx, dword [ebp - 0x124]
test ebx, ebx
jne 0x46cad6
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1c
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov dword [ebp - 4], 1
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
jmp 0x46ca44
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
cmp ebx, 0x7fffffff
ja 0x46d7c3
push ebx
cmp ebx, 0x1000
jb 0x46cb04
call fcn.00405b07
jmp 0x46cb09
call fcn.004d8429
pop ecx
lea esi, [eax + ebx]
mov dword [ebp - 0x100], eax
push ebx
xor ebx, ebx
mov dword [ebp - 0xfc], eax
push ebx
push eax
mov dword [ebp - 0xf8], esi
call fcn.004d9f30
add esp, 0xc
mov dword [ebp - 0xfc], esi
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0xd8], ebx
call fcn.004b775d
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x124]
mov esi, dword [ebp - 0x100]
mov eax, dword [ebp - 0xfc]
push ecx
sub eax, esi
push eax
push esi
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0xd4]
call dword [sym.imp.USER32.dll_GetUserObjectSecurity]
test eax, eax
jne 0x46cbd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1f
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 3
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x46d76c
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
mov dword [ebp - 0xdc], ebx
mov byte [ebp - 4], 4
test esi, esi
je 0x46cc00
lea ecx, [ebp - 0xe0]
call fcn.004d5573
push esi
lea ecx, [ebp - 0xe0]
call fcn.004d5638
lea eax, [ebp - 0x130]
mov dword [ebp - 0x130], ebx
push eax
push 0x20008
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x46cd85
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x25
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 5
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x12c], ebx
push eax
lea eax, [ebp - 0x12c]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x12c], 0x8000
jne 0x46d75a
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xe8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0xe8]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xec]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0xec]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0xd4], 0
je 0x46cd4c
push dword [ebp - 0xf0]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0xd4], 0
je 0x46d75a
push dword [ebp - 0xe4]
jmp 0x46d754
mov esi, vtable.ATL::CAccessToken.0
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x110], ebx
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x118], eax
call fcn.004d546f
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x11c]
call fcn.004d405d
test al, al
jne 0x46cf1c
push 0x29
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], esi
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x134], ebx
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x134], 0x8000
jne 0x46d75a
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0xe4]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0xf0]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0xd8], 0
je 0x46ceef
push dword [ebp - 0xec]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0xd8], 0
jmp 0x46d74c
mov dword [ebp - 0x170], ebx
mov byte [ebp - 0x16c], bl
mov dword [ebp - 0x168], 2
mov dword [ebp - method.ATL::CDacl.virtual_0], vtable.ATL::CDacl.0
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
lea eax, [ebp - 0x11d]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0xf1]
mov byte [ebp - 0xf1], bl
push eax
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004d4d64
test al, al
jne 0x46d04c
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x2e
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], esi
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x138], ebx
push eax
lea eax, [ebp - 0x138]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x138], 0x8000
jmp 0x46ce67
cmp byte [ebp - 0xf1], 0
jne 0x46d105
push 0x2f
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xb
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x11c], esi
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x13c], ebx
push eax
lea eax, [ebp - 0x13c]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x13c], 0x8000
jmp 0x46ce67
xor esi, esi
cmp dword [ebp - 0x160], esi
jbe 0x46d183
lea ecx, [ebp - 0xd0]
call fcn.004d546f
push ecx
push ecx
xor eax, eax
mov byte [ebp - 4], 0xc
push eax
push eax
push eax
lea eax, [ebp - 0xd0]
push eax
push esi
lea ecx, [ebp - 0x174]
call fcn.004d46b6
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
je 0x46d16b
cmp byte [ebp - 0xf2], 0
jne 0x46d25e
push esi
lea ecx, [ebp - 0x174]
call fcn.004d4f54
inc ebx
xor esi, esi
jmp 0x46d16c
inc esi
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 9
call fcn.004d6486
cmp esi, dword [ebp - 0x160]
jb 0x46d10f
cmp byte [ebp - 0xf2], 0
je 0x46d490
xor ebx, ebx
lea eax, [ebp - 0x70]
push ebx
push 0x7037f
push eax
lea ecx, [ebp - 0x174]
call fcn.004d456f
test al, al
jne 0x46d3c2
push 0x47
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xd
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
cmp dword [ebp - 0xdc], ebx
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x144], ebx
push eax
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x144], 0x8000
jmp 0x46ce67
and dword [edi + 4], 0
lea ecx, [edi + 8]
mov dword [edi], 1
call fcn.0040687a
lea ecx, [ebp - 0xd0]
call fcn.004d6486
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
and dword [ebp - 0x140], 0
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0x140]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d3ab
test dword [ebp - 0x140], 0x8000
jne 0x46d3ab
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0xe4]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0xf0]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0xd8], 0
je 0x46d375
push dword [ebp - 0xec]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0xd8], 0
je 0x46d3ab
push dword [ebp - 0xe8]
call fcn.004e3620
pop ecx
push dword [ebp - 0xdc]
call fcn.004e3620
and dword [ebp - 0xdc], 0
jmp 0x46d76b
push 9
push 0xf0000000
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x174]
call fcn.004d456f
test al, al
jne 0x46d49a
push 0x48
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xe
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x148], ebx
push eax
lea eax, [ebp - 0x148]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x148], 0x8000
jmp 0x46ce67
test ebx, ebx
je 0x46d61b
xor ebx, ebx
push ecx
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004d4480
push dword [ebp - 0xdc]
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0xd4]
call dword [sym.imp.USER32.dll_SetUserObjectSecurity]
test eax, eax
jne 0x46d598
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x52
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 - 0x10c]
call fcn.00406620
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xf
push eax
mov ecx, edi
call fcn.0040121b
mov ecx, dword [ebp - 0x104]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x14c], ebx
push eax
lea eax, [ebp - 0x14c]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x14c], 0x8000
jmp 0x46ce67
lea ecx, [edi + 8]
mov dword [edi], ebx
mov dword [edi + 4], ebx
call fcn.0040687a
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x150], ebx
push eax
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x150], 0x8000
jmp 0x46ce67
xor ebx, ebx
mov dword [edi], 1
lea ecx, [edi + 8]
mov dword [edi + 4], ebx
call fcn.0040687a
lea ecx, [ebp - 0x174]
call fcn.004d4dea
lea ecx, [ebp - 0x70]
call fcn.004d6486
lea ecx, [ebp - 0x11c]
mov dword [ebp - method.ATL::CAccessToken.virtual_0], vtable.ATL::CAccessToken.0
call fcn.004065be
mov dword [ebp - 0xe0], vtable.ATL::CSecurityDesc.0
cmp dword [ebp - 0xdc], ebx
je 0x46d76c
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x154], ebx
push eax
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorControl]
test eax, eax
je 0x46d75a
test dword [ebp - 0x154], 0x8000
jne 0x46d75a
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorOwner]
push dword [ebp - 0xe4]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorGroup]
push dword [ebp - 0xf0]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorDacl]
cmp dword [ebp - 0xd8], ebx
je 0x46d725
push dword [ebp - 0xec]
call fcn.004e3620
pop ecx
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xdc]
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorSacl]
cmp dword [ebp - 0xd8], ebx
je 0x46d75a
push dword [ebp - 0xe8]
call fcn.004e3620
pop ecx
push dword [ebp - 0xdc]
call fcn.004e3620
mov dword [ebp - 0xdc], ebx
pop ecx
mov ecx, dword [ebp - 0x100]
test ecx, ecx
je 0x46d7bb
mov eax, dword [ebp - 0xf8]
sub eax, ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], eax
cmp eax, 0x1000
jb 0x46d7b2
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00405c9b
mov eax, dword [ebp - 0xd4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd8]
push eax
push ecx
call fcn.004d840d
pop ecx
pop ecx
mov eax, edi
call fcn.004d8aa1
ret
call fcn.00404636
int3