Function at 0x401150
Capabilities:
Acquire debug privileges
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x411040]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
push edi
push 0x12
mov dword [esp + 0x10], 0
call fcn.00402360
mov esi, eax
add esp, 4
mov eax, 0x33
push esi
mov dword [esi + 0xe], 0x32
mov dword [esi], 0x65006b
mov dword [esi + 8], 0x6c0065
mov dword [esi + 4], 0x6e0072
mov word [esi + 0xc], ax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, eax
push esi
mov dword [esp + 0x14], ebx
call fcn.00402369
add esp, 4
test ebx, ebx
je 0x401457
push 0x12
call fcn.00402360
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
add esp, 4
mov word [esi + 0x10], 0x73
push esi
push ebx
mov dword [esi + 0xb], 0x65636f72
mov word [esi + 6], 0x6572
mov dword [esi], 0x43746547
mov word [esi + 9], 0x5074
mov word [esi + 4], 0x7275
mov byte [esi + 8], 0x6e
mov byte [esi + 0xf], 0x73
call edi
push esi
mov dword [0x412dc8], eax
call fcn.00402369
add esp, 4
cmp dword [0x412dc8], 0
je 0x401457
push 0x1a
call fcn.00402360
mov esi, eax
xor eax, eax
mov word [esi + 0x18], ax
mov eax, 0x70
add esp, 4
mov word [esi + 8], ax
mov eax, 0x32
push esi
mov dword [esi], 0x640041
mov dword [esi + 0x14], 0x6c006c
mov dword [esi + 4], 0x610076
mov dword [esi + 0xa], 0x330069
mov dword [esi + 0x10], 0x64002e
mov word [esi + 0xe], ax
call dword [0x412dcc]
push esi
mov ebx, eax
call fcn.00402369
add esp, 4
test ebx, ebx
je 0x401457
push 0x11
call fcn.00402360
mov esi, eax
add esp, 4
mov dword [esi + 3], 0x6f72506e
push esi
push ebx
mov dword [esi + 0xa], 0x6b6f5473
mov word [esi + 1], 0x6570
mov word [esi + 0xe], 0x6e65
mov word [esi + 8], 0x7365
mov byte [esi + 7], 0x63
mov byte [esi], 0x4f
mov byte [esi + 0x10], 0
call edi
push esi
mov dword [0x412dc0], eax
call fcn.00402369
add esp, 4
cmp dword [0x412dc0], 0
je 0x401457
lea eax, [esp + 0xc]
push eax
push 0x20
call dword [0x412dc8]
push eax
call dword [0x412dc0]
test eax, eax
je 0x401400
push 0x16
call fcn.00402360
mov esi, eax
add esp, 4
mov word [esi + 0xe], 0x5665
push esi
push ebx
mov word [esi + 4], 0x7075
mov word [esi + 0x11], 0x756c
mov byte [esi + 0x10], 0x61
mov word [esi + 0x14], 0x57
mov word [esi + 0xa], 0x6c69
mov word [esi + 1], 0x6f6f
mov word [esi + 7], 0x6972
mov word [esi + 0xc], 0x6765
mov byte [esi + 0x13], 0x65
mov byte [esi + 3], 0x6b
mov byte [esi], 0x4c
mov byte [esi + 6], 0x50
mov byte [esi + 9], 0x76
call edi
push esi
mov dword [0x412dbc], eax
call fcn.00402369
mov eax, dword [0x412dbc]
add esp, 4
test eax, eax
je 0x401400
lea ecx, [esp + 0x14]
push ecx
push str.SeDebugPrivilege
push 0
call eax
test eax, eax
je 0x401400
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
push 0x16
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 2
call fcn.00402360
mov esi, eax
add esp, 4
mov dword [esi + 1], 0x73756a64
push esi
push ebx
mov word [esi + 0xf], 0x6c69
mov dword [esi + 0x12], 0x736567
mov dword [esi + 6], 0x656b6f54
mov dword [esi + 0xa], 0x6972506e
mov byte [esi], 0x41
mov byte [esi + 0x11], 0x65
mov byte [esi + 0xe], 0x76
mov byte [esi + 5], 0x74
call edi
push esi
mov dword [0x412dc4], eax
call fcn.00402369
mov eax, dword [0x412dc4]
add esp, 4
test eax, eax
je 0x401400
push 0
push 0
push 0x10
lea ecx, [esp + 0x28]
push ecx
push 0
push dword [esp + 0x20]
call eax
push 0xc
call fcn.00402360
mov esi, eax
add esp, 4
mov word [esi + 1], 0x6f6c
push esi
push dword [esp + 0x14]
mov word [esi + 7], 0x646e
mov word [esi + 4], 0x4865
mov word [esi + 9], 0x656c
mov byte [esi + 0xb], 0
mov byte [esi + 3], 0x73
mov byte [esi], 0x43
mov byte [esi + 6], 0x61
call edi
push esi
mov dword [0x412db8], eax
call fcn.00402369
mov eax, dword [0x412db8]
add esp, 4
test eax, eax
je 0x401457
push dword [esp + 0xc]
call eax
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00402226
mov esp, ebp
pop ebp
ret