Function at 0x45c330
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x523830
mov eax, dword fs:[0]
push eax
sub esp, 0xafc
mov eax, dword [0x580ca0]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [ebp + 0x14], 0
je 0x45c36a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
mov dword [ebp - 0x18], 0
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x228], 0
xor edx, edx
mov word [ebp - 0x224], dx
push 0x206
push 0
lea eax, [ebp - 0x222]
push eax
call fcn.004ba280
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x44c], cx
push 0x206
push 0
lea edx, [ebp - 0x44a]
push edx
call fcn.004ba280
add esp, 0xc
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0045cf10
mov dword [ebp - 0xaf4], eax
lea eax, [ebp - 0x244]
push eax
push 0xc
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0xaf4]
push edx
mov eax, dword [ebp - 0xaf4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
call edx
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x238]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0045cf10
mov dword [ebp - 0xaf8], eax
lea edx, [ebp - 0x244]
push edx
push 3
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xaf8]
push ecx
mov edx, dword [ebp - 0xaf8]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
call ecx
movzx edx, word [ebp - 0x244]
test edx, edx
jne 0x45c449
mov eax, 1
jmp 0x45ccaf
mov eax, dword [ebp - 0x23c]
push eax
push 0x104
lea ecx, [ebp - 0x224]
push ecx
call fcn.004c0fee
add esp, 0xc
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0
je 0x45c4d5
push 0x52fd78
lea eax, [ebp - 0x224]
push eax
call fcn.0043ae30
add esp, 8
test eax, eax
je 0x45c4b1
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9ddb
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004c1280
add esp, 0xc
jmp 0x45c4d3
push 0x52fd84
lea edx, [ebp - 0x224]
push edx
call fcn.0043ae30
add esp, 8
test eax, eax
je 0x45c4d3
mov eax, 1
jmp 0x45ccaf
jmp 0x45c53b
push str.x86_
lea eax, [ebp - 0x224]
push eax
call fcn.0043ae30
add esp, 8
test eax, eax
je 0x45c519
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9ddb
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004c1280
add esp, 0xc
jmp 0x45c53b
push 0x52fd9c
lea edx, [ebp - 0x224]
push edx
call fcn.0043ae30
add esp, 8
test eax, eax
je 0x45c53b
mov eax, 1
jmp 0x45ccaf
lea eax, [ebp - 0x224]
push eax
push str.ubundle.exe
call fcn.004bb00b
add esp, 8
test eax, eax
je 0x45c56b
lea ecx, [ebp - 0x224]
push ecx
push str.AiBoosterSetup.exe
call fcn.004bb00b
add esp, 8
test eax, eax
jne 0x45c57f
lea edx, [ebp - 0x44c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
jmp 0x45c5a7
push 0x104
lea eax, [ebp - 0x44c]
push eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
call fcn.004572e0
movzx edx, al
test edx, edx
jne 0x45c5a7
mov eax, 1
jmp 0x45ccaf
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0045cf10
mov dword [ebp - 0xafc], eax
lea eax, [ebp - 0x244]
push eax
push 9
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0xafc]
push edx
mov eax, dword [ebp - 0xafc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
call edx
movzx eax, word [ebp - 0x244]
test eax, eax
jne 0x45c5ee
mov eax, 1
jmp 0x45ccaf
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x228], ecx
mov edx, dword [ebp - 0x23c]
and edx, 0x10
je 0x45c6ad
push 0x52fde8
lea eax, [ebp - 0x224]
push eax
call fcn.004bb00b
add esp, 8
test eax, eax
je 0x45c639
push 0x52fdf0
lea ecx, [ebp - 0x224]
push ecx
call fcn.004bb00b
add esp, 8
test eax, eax
jne 0x45c643
mov eax, 1
jmp 0x45ccaf
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x45c6a6
lea edx, [ebp - 0x224]
push edx
lea ecx, [ebp - 0xa98]
call fcn.004012e0
mov dword [ebp - 4], 0
lea eax, [ebp - 0xa98]
push eax
mov ecx, 0x58626c
call fcn.0043b3f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa98]
call fcn.00401320
xor eax, eax
jmp 0x45ccaf
lea ecx, [ebp - 0x224]
push ecx
lea edx, [ebp - 0x44c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0xab4]
call fcn.004012e0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xab4]
push ecx
mov ecx, 0x58626c
call fcn.0043b3f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xab4]
call fcn.00401320
lea edx, [ebp - 0x44c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x45c863
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0045cf10
mov dword [ebp - 0xb00], eax
lea eax, [ebp - 0x244]
push eax
push 0x13
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0xb00]
push edx
mov eax, dword [ebp - 0xb00]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
call edx
lea eax, [ebp - 0x44c]
push eax
call fcn.004528d0
add esp, 4
cmp eax, dword [ebp - 0x23c]
jne 0x45c770
mov eax, 1
jmp 0x45ccaf
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jne 0x45c863
push 0
lea edx, [ebp - 0x44c]
push edx
push 0x52fdf8
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x660], 1
jmp 0x45c7c9
mov ecx, dword [ebp - 0x660]
add ecx, 1
mov dword [ebp - 0x660], ecx
cmp dword [ebp - 0x660], 0x64
jge 0x45c863
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45c81f
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x45c7fa
jmp 0x45c863
mov ecx, dword [ebp - 0x660]
push ecx
lea edx, [ebp - 0x44c]
push edx
push str._ws.del_d
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x45c7ba
lea ecx, [ebp - 0x65c]
push ecx
lea edx, [ebp - 0x44c]
push edx
call fcn.004bb2a3
add esp, 8
xor ecx, ecx
test eax, eax
setle cl
mov dword [ebp - 0x230], ecx
cmp dword [ebp - 0x230], 0
jne 0x45c85c
push 4
push 0
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x45c863
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x45c8a9
cmp dword [ebp - 0x230], 0
jne 0x45c8a9
mov eax, 1
jmp 0x45ccaf
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x45cb9e
cmp dword [ebp - 0x230], 0
je 0x45cb9e
push 0x104
lea ecx, [ebp - 0xa7c]
push ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 8]
call fcn.004572e0
movzx eax, al
test eax, eax
jne 0x45c8eb
mov eax, 1
jmp 0x45ccaf
push 0x52fe20
lea ecx, [ebp - 0xa7c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x224]
push edx
lea eax, [ebp - 0xa7c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0xa7c]
push ecx
call fcn.0045c280
add esp, 4
test eax, eax
jne 0x45c92e
mov eax, 1
jmp 0x45ccaf
push 0x52fe28
lea ecx, [ebp - 0xad0]
call fcn.004012e0
mov dword [ebp - 4], 2
lea edx, [ebp - 0xad0]
push edx
mov ecx, 0x58626c
call fcn.0043b3f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xad0]
call fcn.00401320
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea eax, [ebp - 0xa7c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x45c9a0
mov eax, 1
jmp 0x45ccaf
mov ecx, dword [ebp - 0x228]
push ecx
lea edx, [ebp - 0xa7c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x20
call fcn.004bf084
add esp, 4
mov dword [ebp - 0xad8], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0xad8], 0
je 0x45c9e7
mov ecx, dword [ebp - 0xad8]
call fcn.0045ccd0
mov dword [ebp - 0xb04], eax
jmp 0x45c9f1
mov dword [ebp - 0xb04], 0
mov eax, dword [ebp - 0xb04]
mov dword [ebp - 0xad4], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xad4]
push ecx
lea ecx, [ebp - 0x664]
call fcn.00474b20
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x664]
call fcn.0045cf20
movzx edx, al
test edx, edx
je 0x45ca63
mov eax, dword [ebp - 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xadc], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x664]
call fcn.004587b0
mov eax, dword [ebp - 0xadc]
jmp 0x45ccaf
mov ecx, dword [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x664]
call fcn.0045cf10
mov ecx, eax
call fcn.0045d1d0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x664]
call fcn.0045cf10
mov ecx, eax
call fcn.0045d1b0
xor ecx, ecx
mov word [ebp - 0x874], cx
push 0x206
push 0
lea edx, [ebp - 0x872]
push edx
call fcn.004ba280
add esp, 0xc
lea eax, [ebp - 0x44c]
push eax
lea ecx, [ebp - 0x874]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov dword [ebp - 0x668], eax
xor eax, eax
mov ecx, dword [ebp - 0x668]
mov word [ecx], ax
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45cb09
push 1
push 0
lea eax, [ebp - 0x874]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 1
lea ecx, [ebp - 0x874]
push ecx
lea edx, [ebp - 0x44c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 4
push 0
lea eax, [ebp - 0x874]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 0x22c]
push ecx
lea ecx, [ebp - 0x664]
call fcn.0045cf10
push eax
call fcn.0045d0a0
lea edx, [ebp - 0x44c]
push edx
lea eax, [ebp - 0xa7c]
push eax
lea ecx, [ebp - 0x664]
call fcn.0045cf10
push eax
call fcn.0045d0c0
lea ecx, [ebp - 0x664]
call fcn.0045cf40
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0xae0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x664]
call fcn.004587b0
mov eax, dword [ebp - 0xae0]
jmp 0x45ccaf
push 0x20
call fcn.004bf084
add esp, 4
mov dword [ebp - 0xae8], eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0xae8], 0
je 0x45cbd1
mov ecx, dword [ebp - 0xae8]
call fcn.0045ccd0
mov dword [ebp - 0xb08], eax
jmp 0x45cbdb
mov dword [ebp - 0xb08], 0
mov edx, dword [ebp - 0xb08]
mov dword [ebp - 0xae4], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xae4]
push eax
lea ecx, [ebp - 0x10]
call fcn.00474b20
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x10]
call fcn.0045cf20
movzx ecx, al
test ecx, ecx
je 0x45cc41
mov edx, dword [ebp - 0x22c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xaec], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004587b0
mov eax, dword [ebp - 0xaec]
jmp 0x45ccaf
mov eax, dword [ebp - 0x228]
push eax
lea ecx, [ebp - 0x10]
call fcn.0045cf10
mov ecx, eax
call fcn.0045d1d0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
lea ecx, [ebp - 0x10]
call fcn.0045cf10
mov ecx, eax
call fcn.0045d1b0
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x10]
call fcn.0045cf10
push eax
call fcn.0045d0a0
lea ecx, [ebp - 0x10]
call fcn.0045cf40
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0xaf0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004587b0
mov eax, dword [ebp - 0xaf0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004ba1db
mov esp, ebp
pop ebp
ret 0x10