Function at 0x401910
Capabilities:
Acquire debug privileges
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a4
mov eax, dword [0x42b0a4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov ecx, 0x42c300
mov dword [ebp - 0x494], ebx
call fcn.00408510
test eax, eax
je 0x401b1c
mov eax, dword [0x42cd0c]
cmp eax, 6
je 0x4019a5
cmp eax, 7
je 0x4019a5
mov edx, eax
mov dword [0x42c2f0], edx
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + 0x42cd14]
mov word [eax + 0x44e1b8], cx
add eax, 2
cmp cx, bx
jne 0x401960
xor eax, eax
jmp 0x401980
movzx ecx, word [eax + 0x42cd98]
mov word [eax + 0x44e238], cx
add eax, 2
cmp cx, bx
jne 0x401980
mov dword [ebp - 0x494], 1
jmp 0x401b2b
mov eax, dword [0x4270cc]
mov ecx, dword [0x4270d0]
mov edx, dword [0x4270d4]
mov dword [ebp - 0x288], eax
movzx eax, word [0x4270d8]
push 0x72
mov dword [ebp - 0x284], ecx
lea ecx, [ebp - 0x27a]
push ebx
push ecx
mov dword [ebp - 0x280], edx
mov word [ebp - 0x27c], ax
call fcn.00414050
mov edx, dword [0x4270dc]
mov eax, dword [0x4270e0]
mov ecx, dword [0x4270e4]
add esp, 0xc
push 0x72
mov dword [ebp - 0x204], eax
mov dword [ebp - 0x208], edx
mov dx, word [0x4270e8]
lea eax, [ebp - 0x1fa]
push ebx
push eax
mov dword [ebp - 0x200], ecx
mov word [ebp - 0x1fc], dx
call fcn.00414050
mov ecx, dword [0x4270ec]
mov edx, dword [0x4270f0]
mov eax, dword [0x4270f4]
add esp, 0xc
push 0x72
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x188], ecx
mov cx, word [0x4270f8]
lea edx, [ebp - 0x17a]
push ebx
push edx
mov dword [ebp - 0x180], eax
mov word [ebp - 0x17c], cx
call fcn.00414050
mov ecx, dword [0x427100]
mov eax, dword [0x4270fc]
mov edx, dword [0x427104]
add esp, 0xc
push 0x70
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x108], eax
mov eax, dword [0x427108]
lea ecx, [ebp - 0xf8]
push ebx
push ecx
mov dword [ebp - 0x100], edx
mov dword [ebp - 0xfc], eax
call fcn.00414050
mov eax, dword [0x427110]
mov ecx, dword [0x427114]
mov edx, dword [0x42710c]
add esp, 0xc
mov dword [ebp - 0x84], eax
movzx eax, word [0x42711c]
push 0x6e
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x88], edx
mov edx, dword [0x427118]
lea ecx, [ebp - 0x76]
push ebx
push ecx
mov dword [ebp - 0x7c], edx
mov word [ebp - 0x78], ax
call fcn.00414050
add esp, 0xc
xor esi, esi
lea edi, [ebp - 0x288]
lea esp, [esp]
push edi
mov ecx, 0x42c300
call fcn.00408650
test eax, eax
jne 0x401d0e
inc esi
sub edi, 0xffffff80
cmp esi, 5
jl 0x401b00
or edx, 0xffffffff
mov dword [0x42c2f0], edx
mov dword [0x44e348], ebx
cmp dword [0x44e1b0], 3
jne 0x401d71
cmp edx, 5
ja 0x401d6b
cmp dword [0x44e348], ebx
jne 0x401d71
push 0x206
lea ecx, [ebp - 0x48e]
xor eax, eax
push ebx
push ecx
mov dword [ebp - 0x49c], ebx
xor esi, esi
mov word [ebp - 0x490], ax
call fcn.00414050
add esp, 0xc
push 0x104
lea edx, [ebp - 0x210]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x210]
push 0x5c
push eax
call fcn.00412d21
lea edx, [ebp - 0x210]
xor ecx, ecx
push edx
mov word [eax], cx
lea eax, [ebp - 0x490]
push 0x104
push eax
call fcn.004125f5
lea eax, [ebp - 0x490]
add esp, 0x14
add eax, 0xfffffffe
lea ecx, [ecx]
mov cx, word [eax + 2]
add eax, 2
cmp cx, bx
jne 0x401bc0
mov ecx, dword [0x427120]
mov edx, dword [0x427124]
mov dword [eax], ecx
mov ecx, dword [0x427128]
mov dword [eax + 4], edx
mov edx, dword [0x42712c]
mov dword [eax + 8], ecx
mov ecx, dword [0x427130]
mov dword [eax + 0xc], edx
mov edx, dword [0x427134]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
lea eax, [ebp - 0x490]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x401c54
lea ecx, [ebp - 0x49c]
push ecx
call fcn.00402c60
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x401d71
mov eax, dword [ebp - 0x49c]
cmp eax, 0xa
jl 0x401d71
lea edx, [ebp - 0x490]
push edx
mov ecx, esi
call fcn.00404250
add esp, 4
test eax, eax
jne 0x401d71
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x490]
push eax
call fcn.00401000
test eax, eax
je 0x401d71
cmp esi, ebx
je 0x401c7c
push esi
call fcn.0041201c
add esp, 4
lea ecx, [ebp - 0x498]
push ecx
push 0x28
mov dword [ebp - 0x498], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x401cc4
mov edi, dword [ebp - 0x498]
lea edx, [ebp - 0x4a0]
push edx
push 0x427150
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x401cc4
lea esi, [ebp - 0x4a0]
call fcn.004089f0
mov eax, dword [ebp - 0x498]
cmp eax, ebx
je 0x401cd5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x42cd10]
lea ebx, [ebp - 0x490]
call fcn.004088c0
test eax, eax
jne 0x401d71
mov eax, dword [0x42cd10]
mov dword [0x44e348], eax
mov eax, dword [ebp - 0x494]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00412027
mov esp, ebp
pop ebp
ret
mov edx, esi
shl edx, 7
lea eax, [ebp + edx - 0x288]
mov edx, 0x44e238
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bx
jne 0x401d21
mov edx, 6
mov dword [0x42c2f0], edx
xor eax, eax
lea ecx, [ecx]
movzx ecx, word [eax + 0x42cd14]
mov word [eax + 0x44e1b8], cx
add eax, 2
cmp cx, bx
jne 0x401d40
mov dword [0x42c2f4], esi
mov dword [ebp - 0x494], 1
jmp 0x401b2b
mov dword [0x44e348], ebx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x494]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00412027
mov esp, ebp
pop ebp
ret