Function at 0x45ae70
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 0x50f9b0
mov eax, dword fs:[0]
push eax
sub esp, 0xafc
mov eax, dword [0x568cb8]
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 0x45aeaa
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.004b83b0
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x44c], cx
push 0x206
push 0
lea edx, [ebp - 0x44a]
push edx
call fcn.004b83b0
add esp, 0xc
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0043e5c0
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.0043e5c0
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 0x45af89
mov eax, 1
jmp 0x45b7ef
mov eax, dword [ebp - 0x23c]
push eax
push 0x104
lea ecx, [ebp - 0x224]
push ecx
call fcn.004be924
add esp, 0xc
mov edx, dword [ebp + 8]
cmp dword [edx + 0x14], 0
je 0x45b015
push 0x51abd0
lea eax, [ebp - 0x224]
push eax
call fcn.0043efc0
add esp, 8
test eax, eax
je 0x45aff1
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b7f07
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004bebb0
add esp, 0xc
jmp 0x45b013
push 0x51abdc
lea edx, [ebp - 0x224]
push edx
call fcn.0043efc0
add esp, 8
test eax, eax
je 0x45b013
mov eax, 1
jmp 0x45b7ef
jmp 0x45b07b
push str.x86_
lea eax, [ebp - 0x224]
push eax
call fcn.0043efc0
add esp, 8
test eax, eax
je 0x45b059
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b7f07
add esp, 4
lea edx, [eax + eax - 6]
push edx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x224]
push ecx
call fcn.004bebb0
add esp, 0xc
jmp 0x45b07b
push 0x51abf4
lea edx, [ebp - 0x224]
push edx
call fcn.0043efc0
add esp, 8
test eax, eax
je 0x45b07b
mov eax, 1
jmp 0x45b7ef
lea eax, [ebp - 0x224]
push eax
push str.ubundle.exe
call fcn.004b913b
add esp, 8
test eax, eax
je 0x45b0ab
lea ecx, [ebp - 0x224]
push ecx
push str.AiBoosterSetup.exe
call fcn.004b913b
add esp, 8
test eax, eax
jne 0x45b0bf
lea edx, [ebp - 0x44c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
jmp 0x45b0e7
push 0x104
lea eax, [ebp - 0x44c]
push eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
call fcn.00456220
movzx edx, al
test edx, edx
jne 0x45b0e7
mov eax, 1
jmp 0x45b7ef
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0043e5c0
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 0x45b12e
mov eax, 1
jmp 0x45b7ef
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x228], ecx
mov edx, dword [ebp - 0x23c]
and edx, 0x10
je 0x45b1ed
push 0x51ac40
lea eax, [ebp - 0x224]
push eax
call fcn.004b913b
add esp, 8
test eax, eax
je 0x45b179
push 0x51ac48
lea ecx, [ebp - 0x224]
push ecx
call fcn.004b913b
add esp, 8
test eax, eax
jne 0x45b183
mov eax, 1
jmp 0x45b7ef
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 0x45b1e6
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, 0x56d858
call fcn.0043a520
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa98]
call fcn.00401320
xor eax, eax
jmp 0x45b7ef
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, 0x56d858
call fcn.0043a520
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 0x45b3a3
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.0043e5c0
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.00451730
add esp, 4
cmp eax, dword [ebp - 0x23c]
jne 0x45b2b0
mov eax, 1
jmp 0x45b7ef
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jne 0x45b3a3
push 0
lea edx, [ebp - 0x44c]
push edx
push 0x51ac50
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x660], 1
jmp 0x45b309
mov ecx, dword [ebp - 0x660]
add ecx, 1
mov dword [ebp - 0x660], ecx
cmp dword [ebp - 0x660], 0x64
jge 0x45b3a3
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45b35f
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x45b33a
jmp 0x45b3a3
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 0x45b2fa
lea ecx, [ebp - 0x65c]
push ecx
lea edx, [ebp - 0x44c]
push edx
call fcn.004b93d3
add esp, 8
xor ecx, ecx
test eax, eax
setle cl
mov dword [ebp - 0x230], ecx
cmp dword [ebp - 0x230], 0
jne 0x45b39c
push 4
push 0
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x45b3a3
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 0x45b3e9
cmp dword [ebp - 0x230], 0
jne 0x45b3e9
mov eax, 1
jmp 0x45b7ef
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x45b6de
cmp dword [ebp - 0x230], 0
je 0x45b6de
push 0x104
lea ecx, [ebp - 0xa7c]
push ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 8]
call fcn.00456220
movzx eax, al
test eax, eax
jne 0x45b42b
mov eax, 1
jmp 0x45b7ef
push 0x51ac78
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.0045adc0
add esp, 4
test eax, eax
jne 0x45b46e
mov eax, 1
jmp 0x45b7ef
push 0x51ac80
lea ecx, [ebp - 0xad0]
call fcn.004012e0
mov dword [ebp - 4], 2
lea edx, [ebp - 0xad0]
push edx
mov ecx, 0x56d858
call fcn.0043a520
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 0x45b4e0
mov eax, 1
jmp 0x45b7ef
mov ecx, dword [ebp - 0x228]
push ecx
lea edx, [ebp - 0xa7c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x20
call fcn.004bd0c6
add esp, 4
mov dword [ebp - 0xad8], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0xad8], 0
je 0x45b527
mov ecx, dword [ebp - 0xad8]
call fcn.0045b810
mov dword [ebp - 0xb04], eax
jmp 0x45b531
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.0045ba30
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x664]
call fcn.0044f290
movzx edx, al
test edx, edx
je 0x45b5a3
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.0044f270
mov eax, dword [ebp - 0xadc]
jmp 0x45b7ef
mov ecx, dword [ebp - 0x228]
push ecx
lea ecx, [ebp - 0x664]
call fcn.0043e5c0
mov ecx, eax
call fcn.0045bce0
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x664]
call fcn.0043e5c0
mov ecx, eax
call fcn.0045bcc0
xor ecx, ecx
mov word [ebp - 0x874], cx
push 0x206
push 0
lea edx, [ebp - 0x872]
push edx
call fcn.004b83b0
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 0x45b649
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.0043e5c0
push eax
call fcn.0045bbb0
lea edx, [ebp - 0x44c]
push edx
lea eax, [ebp - 0xa7c]
push eax
lea ecx, [ebp - 0x664]
call fcn.0043e5c0
push eax
call fcn.0045bbd0
lea ecx, [ebp - 0x664]
call fcn.0045ba50
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.0044f270
mov eax, dword [ebp - 0xae0]
jmp 0x45b7ef
push 0x20
call fcn.004bd0c6
add esp, 4
mov dword [ebp - 0xae8], eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0xae8], 0
je 0x45b711
mov ecx, dword [ebp - 0xae8]
call fcn.0045b810
mov dword [ebp - 0xb08], eax
jmp 0x45b71b
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.0045ba30
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x10]
call fcn.0044f290
movzx ecx, al
test ecx, ecx
je 0x45b781
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.0044f270
mov eax, dword [ebp - 0xaec]
jmp 0x45b7ef
mov eax, dword [ebp - 0x228]
push eax
lea ecx, [ebp - 0x10]
call fcn.0043e5c0
mov ecx, eax
call fcn.0045bce0
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
lea ecx, [ebp - 0x10]
call fcn.0043e5c0
mov ecx, eax
call fcn.0045bcc0
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x10]
call fcn.0043e5c0
push eax
call fcn.0045bbb0
lea ecx, [ebp - 0x10]
call fcn.0045ba50
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.0044f270
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.004b8307
mov esp, ebp
pop ebp
ret 0x10