Function at 0x451380
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 0x50f220
mov eax, dword fs:[0]
push eax
sub esp, 0xafc
mov eax, dword [0x568e30]
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 0x4513ba
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.004b8df0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x44c], cx
push 0x206
push 0
lea edx, [ebp - 0x44a]
push edx
call fcn.004b8df0
add esp, 0xc
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0044e120
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.0044e120
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 0x451499
mov eax, 1
jmp 0x451cff
mov eax, dword [ebp - 0x23c]
push eax
push 0x104
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9b1b
add esp, 0xc
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0
je 0x451525
push 0x51a138
lea eax, [ebp - 0x224]
push eax
call fcn.00451d20
add esp, 8
test eax, eax
je 0x451501
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9387
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9db0
add esp, 0xc
jmp 0x451523
push 0x51a144
lea edx, [ebp - 0x224]
push edx
call fcn.00451d20
add esp, 8
test eax, eax
je 0x451523
mov eax, 1
jmp 0x451cff
jmp 0x45158b
push str.x86_
lea eax, [ebp - 0x224]
push eax
call fcn.00451d20
add esp, 8
test eax, eax
je 0x451569
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9387
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9db0
add esp, 0xc
jmp 0x45158b
push 0x51a15c
lea edx, [ebp - 0x224]
push edx
call fcn.00451d20
add esp, 8
test eax, eax
je 0x45158b
mov eax, 1
jmp 0x451cff
lea eax, [ebp - 0x224]
push eax
push str.ubundle.exe
call fcn.004b9ae4
add esp, 8
test eax, eax
je 0x4515bb
lea ecx, [ebp - 0x224]
push ecx
push str.AiBoosterSetup.exe
call fcn.004b9ae4
add esp, 8
test eax, eax
jne 0x4515cf
lea edx, [ebp - 0x44c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
jmp 0x4515f7
push 0x104
lea eax, [ebp - 0x44c]
push eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
call fcn.0044c1c0
movzx edx, al
test edx, edx
jne 0x4515f7
mov eax, 1
jmp 0x451cff
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0044e120
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 0x45163e
mov eax, 1
jmp 0x451cff
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x228], ecx
mov edx, dword [ebp - 0x23c]
and edx, 0x10
je 0x4516fd
push 0x51a1a8
lea eax, [ebp - 0x224]
push eax
call fcn.004b9ae4
add esp, 8
test eax, eax
je 0x451689
push 0x51a1b0
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b9ae4
add esp, 8
test eax, eax
jne 0x451693
mov eax, 1
jmp 0x451cff
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 0x4516f6
lea edx, [ebp - 0x224]
push edx
lea ecx, [ebp - 0xa98]
call fcn.0040d8d0
mov dword [ebp - 4], 0
lea eax, [ebp - 0xa98]
push eax
mov ecx, 0x56d840
call fcn.00441c00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa98]
call fcn.00401340
xor eax, eax
jmp 0x451cff
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.0040d8d0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xab4]
push ecx
mov ecx, 0x56d840
call fcn.00441c00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xab4]
call fcn.00401340
lea edx, [ebp - 0x44c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x4518b3
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0044e120
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.00447620
add esp, 4
cmp eax, dword [ebp - 0x23c]
jne 0x4517c0
mov eax, 1
jmp 0x451cff
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jne 0x4518b3
push 0
lea edx, [ebp - 0x44c]
push edx
push 0x51a1b8
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x660], 1
jmp 0x451819
mov ecx, dword [ebp - 0x660]
add ecx, 1
mov dword [ebp - 0x660], ecx
cmp dword [ebp - 0x660], 0x64
jge 0x4518b3
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45186f
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x45184a
jmp 0x4518b3
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 0x45180a
lea ecx, [ebp - 0x65c]
push ecx
lea edx, [ebp - 0x44c]
push edx
call fcn.004badb9
add esp, 8
xor ecx, ecx
test eax, eax
setle cl
mov dword [ebp - 0x230], ecx
cmp dword [ebp - 0x230], 0
jne 0x4518ac
push 4
push 0
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x4518b3
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 0x4518f9
cmp dword [ebp - 0x230], 0
jne 0x4518f9
mov eax, 1
jmp 0x451cff
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x451bee
cmp dword [ebp - 0x230], 0
je 0x451bee
push 0x104
lea ecx, [ebp - 0xa7c]
push ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 8]
call fcn.0044c1c0
movzx eax, al
test eax, eax
jne 0x45193b
mov eax, 1
jmp 0x451cff
push 0x51a1e0
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.004512d0
add esp, 4
test eax, eax
jne 0x45197e
mov eax, 1
jmp 0x451cff
push 0x51a1e8
lea ecx, [ebp - 0xad0]
call fcn.0040d8d0
mov dword [ebp - 4], 2
lea edx, [ebp - 0xad0]
push edx
mov ecx, 0x56d840
call fcn.00441c00
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xad0]
call fcn.00401340
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 0x4519f0
mov eax, 1
jmp 0x451cff
mov ecx, dword [ebp - 0x228]
push ecx
lea edx, [ebp - 0xa7c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x20
call fcn.004b9963
add esp, 4
mov dword [ebp - 0xad8], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0xad8], 0
je 0x451a37
mov ecx, dword [ebp - 0xad8]
call fcn.00451d40
mov dword [ebp - 0xb04], eax
jmp 0x451a41
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.00451f80
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x664]
call fcn.00451fd0
movzx edx, al
test edx, edx
je 0x451ab3
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.00451f60
mov eax, dword [ebp - 0xadc]
jmp 0x451cff
mov ecx, dword [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x664]
call fcn.0044e120
mov ecx, eax
call fcn.00452250
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x664]
call fcn.0044e120
mov ecx, eax
call fcn.00452230
xor ecx, ecx
mov word [ebp - 0x874], cx
push 0x206
push 0
lea edx, [ebp - 0x872]
push edx
call fcn.004b8df0
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 0x451b59
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.0044e120
push eax
call fcn.00452120
lea edx, [ebp - 0x44c]
push edx
lea eax, [ebp - 0xa7c]
push eax
lea ecx, [ebp - 0x664]
call fcn.0044e120
push eax
call fcn.00452140
lea ecx, [ebp - 0x664]
call fcn.00466610
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.00451f60
mov eax, dword [ebp - 0xae0]
jmp 0x451cff
push 0x20
call fcn.004b9963
add esp, 4
mov dword [ebp - 0xae8], eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0xae8], 0
je 0x451c21
mov ecx, dword [ebp - 0xae8]
call fcn.00451d40
mov dword [ebp - 0xb08], eax
jmp 0x451c2b
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.00451f80
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x10]
call fcn.00451fd0
movzx ecx, al
test ecx, ecx
je 0x451c91
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.00451f60
mov eax, dword [ebp - 0xaec]
jmp 0x451cff
mov eax, dword [ebp - 0x228]
push eax
lea ecx, [ebp - 0x10]
call fcn.0044e120
mov ecx, eax
call fcn.00452250
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
lea ecx, [ebp - 0x10]
call fcn.0044e120
mov ecx, eax
call fcn.00452230
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x10]
call fcn.0044e120
push eax
call fcn.00452120
lea ecx, [ebp - 0x10]
call fcn.00466610
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.00451f60
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.004b8dd5
mov esp, ebp
pop ebp
ret 0x10