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

Disassembly:
push 0xffffffffffffffff
push 0x4408c8
mov eax, dword fs:[0]
push eax
sub esp, 0x2ec
mov eax, dword [0x4530e4]
xor eax, esp
mov dword [esp + 0x2e8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4530e4]
xor eax, esp
push eax
lea eax, [esp + 0x300]
mov dword fs:[0], eax
mov eax, 7
xor edi, edi
xor ecx, ecx
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], edi
mov word [esp + 0xdc], cx
mov dword [esp + 0x308], edi
xor edx, edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edi
mov word [esp + 0x50], dx
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x7c], edi
mov word [esp + 0x6c], ax
push 0x104
lea ecx, [esp + 0xf8]
mov byte [esp + 0x30c], 2
mov edx, dword [0x4555a4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0xf4]
push 0x5c
push eax
call fcn.0042c19e
lea ecx, [esp + 0xfc]
sub eax, ecx
sar eax, 1
inc eax
add esp, 8
push eax
mov eax, ecx
lea esi, [esp + 0xdc]
call fcn.00408320
mov edx, esi
push edx
mov ebx, 0x446300
lea esi, [esp + 0x18]
call fcn.0040bd70
add esp, 4
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x54]
mov byte [esp + 0x310], 3
call fcn.00408090
mov ebp, 8
mov byte [esp + 0x308], 2
cmp dword [esp + 0x2c], ebp
jb 0x412e59
mov eax, dword [esp + 0x18]
push eax
call fcn.0042bb4c
add esp, 4
lea ecx, [esp + 0x4c]
push ecx
mov ebx, str.MxUp_
lea esi, [esp + 0x18]
call fcn.0040bd70
add esp, 4
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x70]
mov byte [esp + 0x310], 4
call fcn.00408090
mov byte [esp + 0x308], 2
cmp dword [esp + 0x2c], ebp
jb 0x412e9e
mov edx, dword [esp + 0x18]
push edx
call fcn.0042bb4c
add esp, 4
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x64], ebp
jae 0x412eac
lea eax, [esp + 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push edi
push eax
call esi
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x80], ebp
jae 0x412ec7
lea eax, [esp + 0x6c]
push edi
push eax
call esi
xor eax, eax
mov word [esp + 0x34], ax
push 0x53
mov eax, str._ProductID:_vdrive___ProductPn:_max3___ProductType:_intel___Lang:_en___UpdateType:_
lea esi, [esp + 0x34]
mov dword [esp + 0x4c], 7
mov dword [esp + 0x48], edi
call fcn.00408320
lea ecx, [esp + 0x68]
push ecx
mov ebx, str.mxup.dat
lea esi, [esp + 0xc0]
mov byte [esp + 0x30c], 5
call fcn.0040bd70
add esp, 4
mov byte [esp + 0x308], 6
mov eax, dword [esp + 0xc0]
cmp dword [esp + 0xd4], ebp
jae 0x412f2e
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
push 0xf
lea eax, [esp + 0x34]
jne 0x412f47
push str.all_auto_update
jmp 0x412f4c
push str.restart_install
call fcn.00405a80
push 0xc
push str.___AppPath:_
lea eax, [esp + 0x38]
call fcn.00405a80
push edi
lea edx, [esp + 0xdc]
push edx
or eax, 0xffffffff
lea esi, [esp + 0x38]
call fcn.00405970
push 0x11
push str.___UserDataPath:_
mov eax, esi
call fcn.00405a80
push edi
lea eax, [esp + 0x50]
push eax
or eax, 0xffffffff
call fcn.00405970
push 0x13
push str.___NotifyFileName:_
mov eax, esi
call fcn.00405a80
push edi
lea ecx, [esp + 0xc0]
push ecx
or eax, 0xffffffff
call fcn.00405970
push 0x15
push str.___CurMainModuleVer:_
mov eax, esi
call fcn.00405a80
mov eax, 7
xor edx, edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], edi
mov word [esp + 0xa4], dx
mov byte [esp + 0x308], al
push edi
push str.1.0.0.123
lea eax, [edx + 9]
lea ecx, [esp + 0xa8]
call fcn.004015f0
add esp, 8
push edi
lea eax, [esp + 0xa4]
push eax
or eax, 0xffffffff
call fcn.00405970
push 0x13
push str.___MxUpTempFolder:_
mov eax, esi
call fcn.00405a80
push edi
lea ecx, [esp + 0x6c]
push ecx
or eax, 0xffffffff
call fcn.00405970
push 0xd
push str.___DataPath:_
mov eax, esi
call fcn.00405a80
push edi
lea edx, [esp + 0x50]
push edx
or eax, 0xffffffff
call fcn.00405970
push 0x22
mov eax, 1
mov edi, esi
call fcn.00401680
lea eax, [esp + 0xd8]
push eax
mov ebx, str.MxUp.exe
lea esi, [esp + 0x88]
call fcn.0040bd70
mov eax, dword [esp + 0x8c]
add esp, 4
cmp dword [esp + 0x9c], ebp
jae 0x413085
lea eax, [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4131b5
cmp dword [esp + 0x9c], ebp
jb 0x4130ae
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0042bb4c
add esp, 4
xor esi, esi
xor edx, edx
mov edi, 7
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov word [esp + 0x88], dx
cmp dword [esp + 0xb8], ebp
jb 0x4130e6
mov eax, dword [esp + 0xa4]
push eax
call fcn.0042bb4c
add esp, 4
xor ecx, ecx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xb4], esi
mov word [esp + 0xa4], cx
cmp dword [esp + 0xd4], ebp
jb 0x413117
mov edx, dword [esp + 0xc0]
push edx
call fcn.0042bb4c
add esp, 4
xor eax, eax
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], esi
mov word [esp + 0xc0], ax
cmp dword [esp + 0x48], ebp
jb 0x413142
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0042bb4c
add esp, 4
xor edx, edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
mov word [esp + 0x34], dx
cmp dword [esp + 0x80], ebp
jb 0x413167
mov eax, dword [esp + 0x6c]
push eax
call fcn.0042bb4c
add esp, 4
xor ecx, ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], esi
mov word [esp + 0x6c], cx
cmp dword [esp + 0x64], ebp
jb 0x41318c
mov edx, dword [esp + 0x50]
push edx
call fcn.0042bb4c
add esp, 4
xor eax, eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov word [esp + 0x50], ax
cmp dword [esp + 0xf0], ebp
jb 0x413309
mov ecx, dword [esp + 0xdc]
push ecx
jmp 0x413301
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x48], ebp
jae 0x4131c3
lea ecx, [esp + 0x34]
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x9c], ebp
jae 0x4131da
lea eax, [esp + 0x88]
xor esi, esi
push esi
push esi
push ecx
push eax
push str.open
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [esp + 0x9c], ebp
jb 0x413205
mov edx, dword [esp + 0x88]
push edx
call fcn.0042bb4c
add esp, 4
xor eax, eax
mov edi, 7
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], esi
mov word [esp + 0x88], ax
cmp dword [esp + 0xb8], ebp
jb 0x41323b
mov ecx, dword [esp + 0xa4]
push ecx
call fcn.0042bb4c
add esp, 4
xor edx, edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xb4], esi
mov word [esp + 0xa4], dx
cmp dword [esp + 0xd4], ebp
jb 0x41326c
mov eax, dword [esp + 0xc0]
push eax
call fcn.0042bb4c
add esp, 4
xor ecx, ecx
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], esi
mov word [esp + 0xc0], cx
cmp dword [esp + 0x48], ebp
jb 0x413297
mov edx, dword [esp + 0x34]
push edx
call fcn.0042bb4c
add esp, 4
xor eax, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
mov word [esp + 0x34], ax
cmp dword [esp + 0x80], ebp
jb 0x4132bc
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0042bb4c
add esp, 4
xor edx, edx
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], esi
mov word [esp + 0x6c], dx
cmp dword [esp + 0x64], ebp
jb 0x4132e1
mov eax, dword [esp + 0x50]
push eax
call fcn.0042bb4c
add esp, 4
xor ecx, ecx
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov word [esp + 0x50], cx
cmp dword [esp + 0xf0], ebp
jb 0x413309
mov edx, dword [esp + 0xdc]
push edx
call fcn.0042bb4c
add esp, 4
mov ecx, dword [esp + 0x300]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2e8]
xor ecx, esp
call fcn.0042bb57
add esp, 0x2f8
ret