Function at 0x412830
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb4
mov eax, dword [0x557008]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor edi, edi
dec edi
lea ecx, [ebp - 0x74]
mov dword [ecx + 4], edi
mov dword [ecx], edi
push 0
call fcn.00426cb0
call dword [sym.imp.ole32.dll_CoImpersonateClient]
test eax, eax
js 0x412a73
lea ebx, [ebp - 0xb4]
mov dword [ebx], 0xffffffff
push 0x14
call fcn.004a8ae0
add esp, 4
mov esi, eax
mov ecx, eax
push 0x413370
push 0x413360
call fcn.0046e510
mov dword [ebp - 0x80], esi
mov ecx, ebx
push esi
call fcn.0046e660
lea ebx, [ebp - 0x60]
push 0x40
push dword [ebp + 0x20]
push ebx
call fcn.004eb020
add esp, 0xc
lea esi, [ebp - 0x74]
mov ecx, esi
push ebx
call fcn.00426d50
mov ecx, ebx
call fcn.00426d20
mov ecx, esi
call fcn.0046b330
test al, al
jne 0x4128f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x412a57
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
lea ecx, [ebp - 0xb4]
call fcn.0046e680
test esi, esi
jns 0x412903
jmp 0x412b55
lea ecx, [ebp - 0xb4]
call fcn.0046e680
mov esi, dword [ebp + 8]
lea ebx, [ebp - 0x80]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov ecx, ebx
call fcn.004eb9c0
mov ecx, esi
mov edx, dword [ebp + 0x10]
push ebx
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.00412ba0
add esp, 0xc
test eax, eax
js 0x412a6c
mov esi, dword [ebp + 0x1c]
lea ebx, [ebp - 0x8c]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
lea ecx, [ebp - 0x80]
call fcn.004d4890
mov ecx, eax
push esi
push ebx
call fcn.0042c5d0
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x94], edi
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0xa4], xmm0
movdqu xmmword [ebp - 0xb4], xmm0
lea esi, [ebp - 0xb4]
mov ecx, esi
push ebx
call fcn.0042cb10
mov ecx, esi
push 0
push dword [ebp + 0xc]
call fcn.004ecfb0
lea esi, [ebp - 0x5c]
pcmpeqd xmm0, xmm0
movdqu xmmword [esi + 0x3c], xmm0
movdqu xmmword [esi + 0x2c], xmm0
movdqu xmmword [esi + 0x1c], xmm0
movdqu xmmword [esi + 0xc], xmm0
movdqu xmmword [esi - 4], xmm0
lea ebx, [ebp - 0x60]
mov ecx, ebx
call fcn.00429d10
mov byte [esi + 0xe], 1
push esi
call fcn.004283c0
add esp, 4
lea esi, [ebp - 0x68]
mov dword [esi + 4], edi
mov dword [esi], edi
push ebx
lea eax, [ebp - 0xb4]
push eax
push esi
call fcn.00426e80
add esp, 0xc
mov ecx, esi
call fcn.0046b330
test al, al
je 0x412a81
xor esi, esi
lea eax, [ebp - 0x6c]
mov dword [eax], esi
lea ecx, [ebp - 0x74]
call fcn.00426e20
mov edi, eax
lea ecx, [ebp - 0x68]
call fcn.00426e20
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push esi
push esi
push 0x101000
lea ecx, [ebp - 0x6c]
push ecx
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x412a81
mov ebx, dword [ebp - 0x6c]
test ebx, ebx
je 0x412a9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
mov edi, 0
cmp ebx, 0xffffffff
je 0x412a4c
mov edi, eax
call fcn.0046e500
mov eax, edi
mov edi, ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, edi
jmp 0x412a9f
lea ecx, [ebp - 0xb4]
call fcn.0046e680
mov esi, 0x80004005
jmp 0x412b55
mov esi, eax
jmp 0x412b4d
mov esi, eax
jmp 0x412b55
mov edi, ebx
jmp 0x412b21
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov esi, 0x80004005
cmovne esi, ecx
xor ebx, ebx
lea ecx, [ebp - 0x68]
call fcn.00426d20
lea edi, [ebp - 0x60]
mov ecx, edi
call fcn.00429d60
test esi, esi
js 0x412a7a
lea ecx, [ebp - 0x80]
push edi
call fcn.004eb9d0
mov ecx, edi
call fcn.004131c0
mov ecx, edi
call fcn.0046e900
lea eax, [ebx + 1]
mov dword [ebp - 0xc0], eax
cmp eax, 2
jb 0x412adf
call fcn.0046e500
xor edi, edi
mov dword [ebp - 0xbc], ebx
mov eax, dword [ebp + 0x24]
cmp dword [eax], ebx
je 0x412b21
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov eax, dword [ebx]
inc eax
cmp eax, 2
jae 0x412b74
cmp dword [ebp - 0xc0], 2
jb 0x412b1a
mov eax, dword [ebp - 0xbc]
mov dword [ebx], eax
mov ebx, ecx
call fcn.0046e500
mov ecx, ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [edi + 1]
cmp eax, 2
jb 0x412b37
call fcn.0046e500
push edi
call fcn.0046aff0
add esp, 4
lea ecx, [ebp - 0xb4]
call fcn.0042ce80
lea ecx, [ebp - 0x8c]
call fcn.0046e900
lea ecx, [ebp - 0x80]
call fcn.004eba80
lea ecx, [ebp - 0x74]
call fcn.00426d20
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a927c
mov eax, esi
add esp, 0xb4
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0xb8], ecx
call fcn.0046e500
push dword [ebx]
call fcn.0046aff0
mov ecx, dword [ebp - 0xb8]
add esp, 4
mov dword [ebx], 0
jmp 0x412b00