Function at 0x40e560
Capabilities:
Check if file exists
Create directory
Create process on windows
Delete file
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x46565a
mov eax, dword fs:[0]
push eax
mov eax, 0x1b30
call fcn.0044a500
mov eax, dword [0x484ea8]
xor eax, esp
mov dword [esp + 0x1b2c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x484ea8]
xor eax, esp
push eax
lea eax, [esp + 0x1b44]
mov dword fs:[0], eax
call fcn.0040dc90
xor edi, edi
mov dword [esp + 0x28], edi
call fcn.0042925e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e5c4
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.360tray
mov dword [esp + 0x1b54], edi
call fcn.0040cf60
mov ecx, 0x4869c8
call fcn.0040d0e0
cmp eax, edi
jne 0x40e62a
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push str.360sd
call fcn.0040cf60
mov ecx, 0x4869c8
call fcn.0040d0e0
cmp eax, edi
jne 0x40e62a
push str.http:__count.liangxiala.com_setup_getInstallsetting.php
push str._s_equipment2
lea ecx, [esp + 0x24]
push ecx
jmp 0x40e639
push str.http:__count.liangxiala.com_setup_getInstallsetting.php
push str._s_equipment1
lea edx, [esp + 0x24]
push edx
call fcn.00401d50
mov ebp, dword [esp + 0x28]
mov ebx, 1
add esp, 0xc
cmp dword [ebp - 4], ebx
jle 0x40e660
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [esp + 0x20]
call fcn.004015b0
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
push ecx
push ebp
call fcn.0040da20
mov esi, dword [esp + 0x30]
add esp, 8
cmp esi, edi
jne 0x40e6b2
push edi
push edi
push 0x46dcfc
call fcn.00429545
lea eax, [ebp - 0x10]
mov dword [esp + 0x1b4c], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f03d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40f03d
call fcn.0042925e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e6cc
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push esi
lea ecx, [esp + 0x1c]
push 0x46d3b8
push ecx
mov byte [esp + 0x1b58], 1
call fcn.00401d50
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.0040e280
add esp, 0x14
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b50], 2
call fcn.00401cd0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x1b4c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e740
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x84]
call fcn.0041a990
push edi
lea ecx, [esp + 0x40]
mov byte [esp + 0x1b50], 3
call fcn.0041d070
mov esi, dword [esp + 0x18]
cmp dword [esi - 4], ebx
mov byte [esp + 0x1b4c], 4
jle 0x40e780
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004015b0
mov esi, dword [esp + 0x18]
mov eax, esi
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], edi
mov byte [esp + 0x50], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40e796
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x54]
call fcn.0040be70
push ebx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b58], 5
call fcn.0041c070
test al, al
sete bl
cmp dword [esp + 0x64], 0x10
mov byte [esp + 0x1b4c], 4
jb 0x40e7ec
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004202af
add esp, 4
test bl, bl
je 0x40e85d
push edi
push edi
push 0x46dce8
call fcn.00429545
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b4c], 3
call fcn.0041d1d0
lea ecx, [esp + 0x84]
call fcn.0040e500
lea eax, [esi - 0x10]
mov byte [esp + 0x1b4c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e83d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov dword [esp + 0x1b4c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40e69d
lea ecx, [esp + 0x3c]
call fcn.0041c8c0
cmp eax, edi
jg 0x40e8ad
push edi
push edi
push 0x46dcfc
call fcn.00429545
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b4c], 3
call fcn.0041d1d0
lea ecx, [esp + 0x84]
call fcn.0040e500
lea eax, [esi - 0x10]
mov byte [esp + 0x1b4c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x40e831
call fcn.0042925e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e8c7
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b4c], 6
call fcn.0042925e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e8f9
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x24]
push ecx
push str.address
push edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1b58], 7
call fcn.0041dd00
mov ecx, eax
call fcn.0041e0a0
push eax
call fcn.0040ceb0
add esp, 8
lea edx, [esp + 0x20]
push edx
push str.name
push edi
lea ecx, [esp + 0x48]
call fcn.0041dd00
mov ecx, eax
call fcn.0041e0a0
push eax
call fcn.0040ceb0
mov esi, dword [esp + 0x28]
add esp, 8
cmp dword [esi - 0xc], edi
jle 0x40e97a
push 0x7c
push esi
call fcn.0044a5e5
add esp, 8
cmp eax, edi
je 0x40e97a
sub eax, esi
mov esi, eax
cmp esi, 0xffffffff
jne 0x40e98b
push edi
push edi
push 0x46dcfc
call fcn.00429545
jmp 0x40effc
push esi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x28]
call fcn.00401a70
mov ecx, dword [eax]
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
push 0x46d3b8
push 0x4865e0
call ebp
add esp, 0xc
lea ecx, [esp + 0x28]
call fcn.0040a680
add esi, 1
push esi
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x28]
call fcn.0040bbe0
mov eax, dword [eax]
push eax
push str._s.exe
push 0x4866e8
call ebp
add esp, 0xc
lea ecx, [esp + 0x28]
call fcn.0040a680
push str.uninstall000.ini
push 0x4864d8
lea ecx, [esp + 0x1940]
push str._s_s
push ecx
call ebp
add esp, 0x10
lea edx, [esp + 0x1938]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x46dccc
push 0x46dcc8
lea ecx, [esp + 0x2c]
call fcn.0040b970
lea eax, [esp + 0x1a3c]
push eax
push ecx
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00401a20
call fcn.0040afd0
add esp, 8
cmp eax, edi
jne 0x40ea5b
push edi
push edi
push 0x46dcb8
call fcn.00429545
jmp 0x40effc
push 0x4866e8
call fcn.00408c10
add esp, 4
lea ecx, [esp + 0xfc]
mov dword [0x4868fc], edi
mov dword [0x486900], edi
mov dword [0x486908], edi
call fcn.0040a980
lea ecx, [esp + 0xfc]
mov byte [esp + 0x1b4c], 8
call fcn.0040b7c0
test eax, eax
jne 0x40eac9
push 0x4864d8
lea eax, [esp + 0x152c]
push 0x46dc9c
push eax
call ebp
add esp, 0xc
push edi
push edi
lea ecx, [esp + 0x1530]
push ecx
call fcn.00429545
jmp 0x40efe8
lea edx, [esp + 0x1a3c]
push edx
call fcn.00408690
mov ebx, eax
add esp, 4
cmp ebx, edi
je 0x40efe8
push ebx
lea ecx, [esp + 0x38]
call fcn.004092d0
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x104]
mov byte [esp + 0x1b54], 9
call fcn.0040aea0
mov edx, dword [esp + 0x34]
test eax, eax
push edx
sete byte [esp + 0x1b]
mov byte [esp + 0x1b50], 8
call fcn.004202af
add esp, 4
cmp byte [esp + 0x17], 0
je 0x40eb6a
lea ecx, [esp + 0x11c8]
call fcn.004095b0
push eax
lea eax, [esp + 0x152c]
push 0x46dc9c
push eax
call ebp
add esp, 0xc
push edi
push edi
lea ecx, [esp + 0x1530]
push ecx
call fcn.00429545
push ebx
call fcn.004202af
add esp, 4
jmp 0x40efe8
movzx edx, word [esp + 0x72]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x4863d0
mov dword [0x486900], edx
call fcn.0040cf60
push str.name
push str.setup
call fcn.0040b0e0
add esp, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x48639c
call fcn.0040cf60
push 0x46dc90
push str.setup
call fcn.0040b0e0
add esp, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x4865e0
call fcn.0040cf60
push str.title
push str.runapp
call fcn.0040b0e0
add esp, 8
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x4866e8
call fcn.0040cf60
push str.filename
push str.runapp
call fcn.0040b0e0
mov eax, dword [0x486900]
push eax
push str.nums
push str.files
call fcn.00408b40
add esp, 0x18
lea ecx, [esp + 0x4c]
call fcn.00408280
mov ecx, 8
lea esi, [esp + 0x4c]
lea edi, [esp + 0x124]
mov dword [esp + 0x54], 0x40d7f0
push 0x4864d8
rep movsd dword es:[edi], dword [esi]
call fcn.00408690
mov esi, eax
add esp, 4
test esi, esi
je 0x40eb5c
push esi
lea ecx, [esp + 0x2c]
call fcn.004092d0
push ebx
lea ecx, [esp + 0x38]
mov byte [esp + 0x1b50], 0xa
call fcn.004092d0
push 0
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x108]
mov byte [esp + 0x1b58], 0xb
call fcn.0040aad0
test eax, eax
mov eax, dword [esp + 0x34]
push eax
sete byte [esp + 0x1b]
call fcn.004202af
mov ecx, dword [esp + 0x2c]
push ecx
mov byte [esp + 0x1b54], 8
call fcn.004202af
add esp, 8
cmp byte [esp + 0x17], 0
je 0x40ecff
push 0x4864d8
lea ecx, [esp + 0x11cc]
call fcn.004095b0
push eax
lea edx, [esp + 0x1530]
push 0x46dc54
push edx
call ebp
add esp, 0x10
push 0
push 0
lea eax, [esp + 0x1530]
push eax
call fcn.00429545
push ebx
call fcn.004202af
push esi
call fcn.004202af
add esp, 8
jmp 0x40efe8
mov ecx, dword [0x486900]
mov dword [0x486904], ecx
lea ecx, [esp + 0xfc]
call fcn.004082a0
push ebx
call fcn.004202af
push esi
call fcn.004202af
push 0x4864d8
lea edx, [esp + 0x1638]
push str._srs
push edx
call ebp
mov edi, 1
push edi
push str.nums
push str.dirs
call fcn.00408b40
add esp, 0x1c
lea eax, [esp + 0x1630]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0040cf60
push 0x46dc40
push str.dirs
call fcn.0040b0e0
add dword [0x486904], edi
add esp, 0xc
lea ecx, [esp + 0x30]
call fcn.004019f0
lea ecx, [esp + 0x28]
call fcn.004019f0
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push 0
push 0
lea ecx, [esp + 0x1738]
push ecx
push 0
mov byte [esp + 0x1b5c], 0xd
call esi
push 0x4865e0
lea edx, [esp + 0x1734]
push edx
lea eax, [esp + 0x38]
push str._s_s.lnk
push eax
call fcn.00401d50
push 0x4866e8
push 0x4864d8
lea ecx, [esp + 0x40]
push str._s_s
push ecx
call fcn.00401d50
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
push 0
push eax
push eax
push edx
call fcn.00408de0
add esp, 0x2c
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00401a20
push 0x46dc30
push str.desk
call fcn.0040b0e0
add dword [0x486904], edi
add esp, 0xc
push 0
push 2
lea ecx, [esp + 0x1224]
push ecx
push 0
call esi
push 0x46dc24
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x1220]
push edx
call esi
push 0x4865e0
lea eax, [esp + 0x1220]
push eax
call esi
lea ecx, [esp + 0x121c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40ee71
push eax
lea edx, [esp + 0x1220]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 2
push str.nums
push str.startmenu
call fcn.00408b40
push 0x4865e0
lea eax, [esp + 0x122c]
push eax
lea ecx, [esp + 0x1334]
push str._s_s.lnk
push ecx
call ebp
push 0x4866e8
push 0x4864d8
lea edx, [esp + 0x1448]
push str._s_s
push edx
call ebp
push 0
lea eax, [esp + 0x1454]
push eax
mov ecx, eax
push ecx
lea edx, [esp + 0x1358]
push edx
call fcn.00408de0
add esp, 0x38
lea eax, [esp + 0x1324]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.0040cf60
push 0x46dc40
push str.startmenu
call fcn.0040b0e0
add dword [0x486904], edi
push 0x4865e0
lea ecx, [esp + 0x122c]
push ecx
lea edx, [esp + 0x1334]
push str._s
push edx
call ebp
push str.uninstall.exe
push 0x4864d8
lea eax, [esp + 0x1448]
push str._s_s
push eax
call ebp
push 0
lea ecx, [esp + 0x1454]
push ecx
mov edx, ecx
push edx
lea eax, [esp + 0x1358]
push eax
call fcn.00408de0
add esp, 0x38
lea edx, [esp + 0x1324]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.0040cf60
push 0x46dbf4
push str.startmenu
call fcn.0040b0e0
mov eax, dword [0x486904]
add eax, edi
push eax
push str.nums
push str.uninstallnums
mov dword [0x486904], eax
call fcn.00408b40
push edi
push str.biao
push 0x46dbd8
call fcn.00408b40
call fcn.00408ed0
push 0x4864d8
push str._sUpdate.exe
lea eax, [esp + 0x1860]
push eax
call ebp
add esp, 0x30
push 5
push 0
push str._setup
lea ecx, [esp + 0x1840]
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0x28]
call fcn.0040a680
lea ecx, [esp + 0x30]
call fcn.0040a680
lea ecx, [esp + 0xfc]
mov byte [esp + 0x1b4c], 7
call fcn.0040a250
lea ecx, [esp + 0x20]
call fcn.0040a680
lea ecx, [esp + 0x24]
call fcn.0040a680
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1b4c], 3
call fcn.0041d1d0
lea ecx, [esp + 0x84]
call fcn.0040e500
lea ecx, [esp + 0x18]
call fcn.0040a680
lea ecx, [esp + 0x1c]
call fcn.0040a680
mov ecx, dword [esp + 0x1b44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1b2c]
xor ecx, esp
call fcn.00448c24
add esp, 0x1b3c
ret