Function at 0x407ea8
Capabilities:
Check if file exists
Create process on windows
Get file attributes

Disassembly:
push 0x13c
mov eax, 0x430a1e
call fcn.0041bab3
mov byte [ebp - 0x1d], dl
mov edi, ecx
mov dword [ebp - 0x28], edi
xor ebx, ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 4], 2
call fcn.00412bcd
push eax
lea ecx, [ebp - 0x18]
call fcn.0040f03e
mov byte [ebp - 4], 3
call fcn.00412bcd
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040f03e
mov byte [ebp - 4], 4
cmp byte [0x445fc8], bl
je 0x407fef
mov eax, dword [0x445fcc]
cmp dword [eax - 0xc], ebx
jne 0x407f1a
push str.__silent
lea ecx, [ebp - 0x18]
call fcn.00412822
jmp 0x407fef
lea ecx, [ebp - 0x88]
call fcn.00401a5a
mov esi, eax
push 0x439c58
lea edx, [ebp + 0xc]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x78]
call fcn.0040e275
pop ecx
push esi
mov edx, eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
call fcn.0041245e
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x6c]
mov edx, eax
mov dword [esp], str..report.txt
call fcn.0040e275
pop ecx
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.004124b3
mov ecx, dword [ebp - 0x6c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x70]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x78]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x88]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea eax, [ebp - 0x1c]
mov edx, str.__silent__
push eax
lea ecx, [ebp - 0x80]
call fcn.0040e2da
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x5c]
mov edx, eax
mov dword [esp], 0x438ab4
call fcn.0040e275
pop ecx
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xa
call fcn.004124b3
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [ebp - 0x14]
call fcn.00401e2e
mov byte [ebp - 4], 0xb
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x408080
call fcn.00412bcd
push eax
lea ecx, [ebp - 0x48]
call fcn.0040f03e
push ecx
mov byte [ebp - 4], 0xc
lea ebx, [ebp - 0x48]
mov ecx, dword [ebp - 0x14]
mov esi, esp
lea ecx, [ecx - 0x10]
call fcn.00412c8f
add eax, 0x10
lea ecx, [ebp - 0xfc]
mov edx, ebx
mov dword [esi], eax
call fcn.00407cae
pop ecx
mov ecx, dword [ebp - 0xf4]
cmp dword [eax], 0
lea ecx, [ecx - 0x10]
setge bl
call fcn.00412d0e
mov esi, dword [ebp - 0x48]
test bl, bl
je 0x408072
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x408072
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x14]
call fcn.004124b3
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0xb
call fcn.00412d0e
xor ebx, ebx
lea eax, [ebp + 8]
mov edx, str.Ninite.exe__
push eax
lea ecx, [ebp - 0x50]
call fcn.0040e2da
pop ecx
mov esi, 0x438ab4
mov byte [ebp - 4], 0xd
push esi
mov edx, eax
lea ecx, [ebp - 0x84]
call fcn.0040e275
pop ecx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xe
push ecx
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.0041245e
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x74]
mov edx, eax
mov dword [esp], str.__fullpath__
call fcn.0040e275
pop ecx
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x10
push ecx
mov edx, eax
lea ecx, [ebp - 0x58]
call fcn.0041245e
pop ecx
push esi
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x10]
call fcn.0040e275
pop ecx
mov ecx, dword [ebp - 0x58]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x74]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x64]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x84]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [0x445ff8]
test eax, eax
mov ecx, dword [0x445ffc]
cmovne ecx, eax
test ecx, ecx
je 0x40817e
push dword [ecx + 4]
lea eax, [ebp - 0x7c]
push dword [ecx]
push str.__proxyauth___ws____ws_
push eax
call fcn.00401b15
add esp, 0x10
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x10]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00411eb9
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x7c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [0x445fec]
mov ecx, dword [0x445fe8]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x24], ebx
test eax, eax
je 0x408293
mov edi, ebx
mov ecx, dword [ecx + edi*4]
sub ecx, 0x10
call fcn.00412c8f
lea esi, [eax + 0x10]
mov dword [ebp - 0x24], esi
push ecx
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x24]
call fcn.0040e1e5
push 0x439c58
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.004123c4
mov ebx, eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x54]
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00412d0e
inc bl
je 0x408202
push 0x439c58
call fcn.00418252
pop ecx
push eax
push 0x439c58
lea ecx, [ebp - 0x24]
call fcn.00411eb9
mov esi, dword [ebp - 0x24]
push 0x438fcc
lea edx, [ebp - 0x10]
lea ecx, [ebp - 0x44]
call fcn.0040e275
pop ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1b
push ecx
mov edx, eax
lea ecx, [ebp - 0x68]
call fcn.0041245e
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x60]
mov edx, eax
mov dword [esp], 0x438ab4
call fcn.0040e275
pop ecx
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1d
call fcn.004124b3
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x44]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x17
call fcn.00412d0e
mov eax, dword [0x445fec]
inc edi
mov ecx, dword [0x445fe8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x40819b
mov edi, dword [ebp - 0x28]
xor ebx, ebx
cmp byte [ebp - 0x1d], 0
mov byte [0x445fc4], 1
mov dword [ebp - 0x4c], 1
je 0x40846c
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebp - 0x40], esi
test esi, esi
mov byte [ebp - 4], 0x1e
setne al
test al, al
jne 0x408358
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x186
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov edi, esp
call fcn.00412bcd
push eax
mov ecx, edi
call fcn.0040f03e
lea ecx, [ebp - 0xd8]
call fcn.00412d2a
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0xd8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1f
call fcn.00402671
mov ecx, dword [ebp - 0xd0]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
test esi, esi
je 0x408337
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
jmp 0x408783
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.RunDll
push esi
call ebx
test eax, eax
mov dword [ebp - 0x44], eax
setne cl
test cl, cl
jne 0x4083b7
push 0x188
push 0x80004005
push ecx
mov edi, esp
call fcn.00412bcd
push eax
mov ecx, edi
call fcn.0040f03e
lea ecx, [ebp - 0xb4]
call fcn.00412d2a
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0xb4]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x20
call fcn.00402671
mov ecx, dword [ebp - 0xac]
jmp 0x408324
cmp byte [0x445fd0], 0
je 0x40841b
push str.HandlerEx
push esi
call ebx
test eax, eax
mov dword [0x445fe4], eax
setne al
test al, al
jne 0x40841b
push 0x18c
push 0x80004005
push ecx
mov edi, esp
call fcn.00412bcd
push eax
mov ecx, edi
call fcn.0040f03e
lea ecx, [ebp - 0xc0]
call fcn.00412d2a
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0xc0]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x21
call fcn.00402671
mov ecx, dword [ebp - 0xb8]
jmp 0x408324
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
je 0x40842c
push ebx
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp + 0x18], 0
je 0x408443
push ebx
push 6
push 0x111
push dword [ebp + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push dword [ebp - 0x10]
push esi
call dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
mov dword [0x445fe4], ebx
mov byte [ebp - 4], 0x17
test esi, esi
je 0x408646
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x408646
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
push 0x44
pop esi
push esi
lea eax, [ebp - 0x148]
mov byte [ebp - 4], 0x22
push ebx
push eax
call fcn.00418540
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0x148], esi
cmp dword [eax - 4], 1
jle 0x4084ad
push dword [eax - 0xc]
lea ecx, [ebp - 0x10]
call fcn.004128bc
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x148]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
setne al
test al, al
jne 0x40855f
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1b1
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00412bcd
push eax
mov ecx, esi
call fcn.0040f03e
lea ecx, [ebp - 0xcc]
call fcn.00412d2a
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 0x23
push eax
mov ecx, edi
call fcn.00402671
mov ecx, dword [ebp - 0xc4]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
cmp dword [ebp - 0x34], 0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x408548
push dword [ebp - 0x34]
call esi
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x38], 0
je 0x408337
push dword [ebp - 0x38]
call esi
mov dword [ebp - 0x38], ebx
jmp 0x408337
cmp byte [0x445fc8], 0
jne 0x4085a6
push 0x12c
push dword [ebp - 0x38]
call dword [sym.imp.USER32.dll_WaitForInputIdle]
cmp byte [0x445fc8], 0
jne 0x4085a6
cmp dword [ebp + 0x14], 0
je 0x40858f
push ebx
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp + 0x18], 0
je 0x4085a6
push ebx
push 6
push 0x111
push dword [ebp + 0x18]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffff
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
setne al
test al, al
jne 0x408623
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1c6
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov esi, esp
call fcn.00412bcd
push eax
mov ecx, esi
call fcn.0040f03e
lea ecx, [ebp - 0xa8]
call fcn.00412d2a
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x24
push eax
mov ecx, edi
call fcn.00402671
mov ecx, dword [ebp - 0xa0]
jmp 0x40852c
mov byte [ebp - 4], 0x17
cmp dword [ebp - 0x34], 0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x40863b
push dword [ebp - 0x34]
call esi
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x38], 0
je 0x408646
push dword [ebp - 0x38]
call esi
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [ebp - 0x1c]
cmp dword [esi - 0xc], 0
je 0x4086f3
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
push ebx
push ecx
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x25
lea ebx, [ebp - 0x98]
mov edi, esp
call fcn.00412c8f
add eax, 0x10
lea ecx, [ebp - 0xe4]
mov edx, ebx
mov dword [edi], eax
call fcn.00402ca3
pop ecx
pop ecx
mov ecx, dword [ebp - 0xdc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x98]
test eax, eax
je 0x4086e1
push eax
push edi
lea ecx, [ebp - 0x3c]
call fcn.0040e0c3
mov ecx, dword [ebp + 0x1c]
mov byte [ebp - 4], 0x26
push dword [eax]
call fcn.00412355
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov byte [ebp - 4], 0x17
test edi, edi
je 0x4086f0
push edi
call fcn.00418695
pop ecx
mov edi, dword [ebp - 0x28]
cmp byte [0x445fc8], 0
je 0x408755
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x408755
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0x1d5
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
push str.The_process_returned_an_error
call fcn.0041284d
lea ecx, [ebp - 0xf0]
call fcn.00412d2a
push eax
mov ecx, edi
mov byte [ebp - 4], 0x27
call fcn.00402671
mov ecx, dword [ebp - 0xe8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
jmp 0x40876a
and dword [edi], 0
and dword [edi + 4], 0
call fcn.00412bcd
push eax
lea ecx, [edi + 8]
call fcn.0040f03e
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
lea ecx, [esi - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov ecx, dword [ebp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.00412d0e
mov eax, edi
call fcn.0041ba81
ret