Function at 0x34095400
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [0x341a55a8], 0
jne 0x34095416
cmp dword [0x341a55a4], 3
jbe 0x34095420
mov eax, dword [0x341a55a8]
jmp 0x3409593b
mov eax, dword [0x341a55a4]
add eax, 1
mov dword [0x341a55a4], eax
mov dword [ebp - 4], 0
call fcn.340f2a20
test eax, eax
je 0x3409544d
push 0x3418e1b4
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 4], eax
jmp 0x3409545b
push 0x3418e1d0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x34095468
xor eax, eax
jmp 0x3409593b
push str.OpenThreadToken
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54b0], eax
push str.SetThreadToken
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54b4], eax
push str.OpenProcessToken
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54b8], eax
push str.DuplicateToken
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54bc], eax
push str.DuplicateTokenEx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54c0], eax
push str.GetTokenInformation
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54c4], eax
push str.SetTokenInformation
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54c8], eax
push str.GetFileSecurityA
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54cc], eax
push str.GetFileSecurityW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54d0], eax
push str.SetFileSecurityA
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54d4], eax
push str.SetFileSecurityW
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54d8], eax
push str.RegGetKeySecurity
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54dc], eax
push str.RegSetKeySecurity
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54e0], eax
push str.GetKernelObjectSecurity
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54e4], eax
push str.SetKernelObjectSecurity
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54e8], eax
push str.GetAclInformation
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54ec], eax
push str.SetAclInformation
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54f0], eax
push str.GetSecurityDescriptorDacl
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54f4], eax
push str.SetSecurityDescriptorDacl
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54f8], eax
push str.GetSecurityDescriptorGroup
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a54fc], eax
push str.SetSecurityDescriptorGroup
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5500], eax
push str.GetSecurityDescriptorOwner
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5504], eax
push str.SetSecurityDescriptorOwner
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5508], eax
push str.GetSecurityDescriptorSacl
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a550c], eax
push str.SetSecurityDescriptorSacl
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5510], eax
push str.LookupAccountNameA
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5514], eax
push str.LookupAccountNameW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5518], eax
push str.LookupAccountSidA
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a551c], eax
push str.LookupAccountSidW
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5520], eax
push str.LookupPrivilegeValueA
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5524], eax
push str.LookupPrivilegeValueW
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5528], eax
push str.LookupPrivilegeNameA
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a552c], eax
push str.LookupPrivilegeNameW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5530], eax
push str.LookupPrivilegeDisplayNameA
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5534], eax
push str.LookupPrivilegeDisplayNameW
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5538], eax
push str.AdjustTokenPrivileges
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a553c], eax
push str.ImpersonateAnonymousToken
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5540], eax
push str.ImpersonateNamedPipeClient
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5544], eax
push str.ImpersonateLoggedOnUser
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5548], eax
push str.RevertToSelf
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a554c], eax
push str.LogonUserA
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5550], eax
push str.LogonUserW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5554], eax
push str.CreateProcessAsUserA
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5558], eax
push str.CreateProcessAsUserW
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a555c], eax
push str.CreateProcessWithLogonW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5560], eax
push str.CreateProcessWithTokenW
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5564], eax
push str.ConvertSidToStringSidA
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5568], eax
push str.ConvertSidToStringSidW
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a556c], eax
push str.ConvertStringSidToSidA
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5570], eax
push str.ConvertStringSidToSidW
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5574], eax
push str.ConvertStringSecurityDescriptorToSecurityDescriptorA
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5578], eax
push str.ConvertStringSecurityDescriptorToSecurityDescriptorW
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a557c], eax
push str.CopySid
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5580], eax
push str.EqualSid
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5584], eax
push str.EqualPrefixSid
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5588], eax
push str.FreeSid
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a558c], eax
push str.QueryServiceConfig2A
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5590], eax
push str.QueryServiceConfig2W
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5594], eax
push str.ChangeServiceConfig2A
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a5598], eax
push str.ChangeServiceConfig2W
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a559c], eax
push str.QueryServiceStatusEx
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x341a55a0], eax
mov dword [0x341a55a8], 1
mov eax, 1
mov esp, ebp
pop ebp
ret