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

Disassembly:
mov eax, 0x1084126
call fcn.01068a88
sub esp, 0x284
mov eax, dword [0x1097470]
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp eax, ebx
push esi
push edi
jne 0x1052c20
mov eax, 0x80070057
jmp 0x10533f8
push eax
lea ecx, [ebp - 0x228]
call fcn.010134d0
mov dword [ebp - 4], ebx
mov dword [ebp - 0x220], ebx
lea eax, [ebp - 0x220]
push eax
push 0x10048e8
xor edi, edi
inc edi
push edi
push ebx
push 0x1010118
mov byte [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x1052c95
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x10533d3
push 0x1008a4c
push 0x26
push dword [ebp - 0x224]
lea eax, [ebp - 0x244]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
mov byte [ebp - 4], 2
jmp 0x1052cef
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
lea edx, [ebp - 0x280]
push edx
push dword [ebp - 0x228]
push eax
call dword [ecx + 0x104]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x1052d05
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x10533d3
push 0x1008a4c
push 0x2a
push dword [ebp - 0x224]
lea eax, [ebp - 0x244]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
mov byte [ebp - 4], 3
push eax
push 8
mov ecx, esi
call fcn.010726fd
push edi
lea ecx, [ebp - 0x244]
jmp 0x10533ce
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], ebx
cmp dword [ebp + 0xc], ebx
mov byte [ebp - 4], 4
jne 0x1052d5f
push dword [0x1096f90]
lea ecx, [ebp - 0x244]
call fcn.01012a13
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 5
call fcn.0101292a
push edi
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 4
call fcn.0101260e
jmp 0x1053171
cmp dword [ebp + 0xc], 2
jne 0x1052d91
push dword [0x1096f88]
lea ecx, [ebp - 0x244]
call fcn.01012a13
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 6
call fcn.0101292a
jmp 0x1052dc7
cmp dword [ebp + 0xc], edi
jne 0x1053171
push dword [0x1096f8c]
lea ecx, [ebp - 0x244]
call fcn.01012a13
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 7
call fcn.0101292a
xor edi, edi
inc edi
lea ecx, [ebp - 0x244]
push edi
call fcn.0101260e
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x234], ebx
mov word [ebp - 0x244], bx
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
lea edx, [ebp - 0x22c]
push edx
push eax
mov byte [ebp - 4], 0xb
call dword [ecx + 0x34]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x1052ea6
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x1052e57
push 0x1008a4c
push 0x42
push dword [ebp - 0x224]
lea eax, [ebp - 0x27c]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
push eax
push 8
mov ecx, esi
mov byte [ebp - 4], 0xc
call fcn.010726fd
push edi
lea ecx, [ebp - 0x27c]
call fcn.0101260e
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x234]
cmp eax, ebx
mov byte [ebp - 4], 9
je 0x1052e78
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x1052e8c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x230]
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x1052ea0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push edi
jmp 0x10533c8
push dword [ebp - 0x22c]
lea ecx, [ebp - 0x244]
call fcn.0104b7ca
push dword [0x1096f98]
lea ecx, [ebp - 0x24c]
call fcn.010134d0
push dword [0x1096f84]
lea ecx, [ebp - 0x248]
call fcn.010134d0
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
lea edx, [ebp - 0x230]
push edx
push dword [ebp - 0x248]
mov byte [ebp - 4], 0xe
push dword [ebp - 0x24c]
push eax
call dword [ecx + 0xd0]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x1052f3f
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x1052faa
push 0x1008a4c
push 0x49
push dword [ebp - 0x224]
lea eax, [ebp - 0x27c]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
mov byte [ebp - 4], 0xf
jmp 0x1052f94
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax]
lea edx, [ebp - 0x234]
push edx
push 0x1010128
push eax
call dword [ecx]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x105300f
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x1052faa
push 0x1008a4c
push 0x4c
push dword [ebp - 0x224]
lea eax, [ebp - 0x27c]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
mov byte [ebp - 4], 0x10
push eax
mov ecx, esi
push 8
call fcn.010726fd
lea ecx, [ebp - 0x27c]
push edi
call fcn.0101260e
push dword [ebp - 0x248]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push dword [ebp - 0x24c]
call esi
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x234]
cmp eax, ebx
mov byte [ebp - 4], 9
je 0x1052fe1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x1052ff5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x230]
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x1053009
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push edi
jmp 0x10530e7
mov eax, dword [ebp - 0x220]
mov ecx, dword [eax]
push ebx
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x234]
lea esi, [ebp - 0x244]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x48]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x1053112
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x1053086
push 0x1008a4c
push 0x4f
push dword [ebp - 0x224]
lea eax, [ebp - 0x27c]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
push eax
push 8
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.010726fd
push 1
lea ecx, [ebp - 0x27c]
call fcn.0101260e
push dword [ebp - 0x248]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push dword [ebp - 0x24c]
call esi
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x234]
cmp eax, ebx
mov byte [ebp - 4], 9
je 0x10530bd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x10530d1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x230]
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x10530e5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 1
lea ecx, [ebp - 0x25c]
call fcn.0101260e
mov eax, dword [ebp - 0x220]
cmp eax, ebx
mov byte [ebp - 4], bl
je 0x1053105
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x228]
call esi
jmp 0x10533f2
push dword [ebp - 0x248]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push dword [ebp - 0x24c]
call esi
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp - 0x234]
cmp eax, ebx
mov byte [ebp - 4], 9
je 0x1053149
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x22c]
cmp eax, ebx
mov byte [ebp - 4], 8
je 0x105315d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x230]
cmp eax, ebx
mov byte [ebp - 4], 4
je 0x1053171
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x26c]
push eax
call fcn.01045e5f
mov ecx, eax
call fcn.01046598
push dword [0x109703c]
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0x12
call fcn.01015295
mov eax, dword [ebp - 0x268]
cmp eax, ebx
mov esi, 0x1001d48
jne 0x10531aa
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x10531ce
mov eax, dword [ebp - 0x268]
cmp eax, ebx
jne 0x10531c2
mov eax, esi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x105320b
xor eax, eax
mov ecx, 0x82
lea edi, [ebp - 0x21c]
rep stosd dword es:[edi], eax
push ebx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x268]
cmp eax, ebx
jne 0x10531f2
mov eax, esi
lea ecx, [ebp - 0x21c]
push ecx
push ebx
push dword [0x1096e18]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x105321c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x224], eax
jmp 0x10533b9
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x244]
call fcn.01012a13
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0x13
call fcn.0101292a
push 1
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x12
call fcn.0101260e
mov eax, dword [ebp - 0x264]
push 4
add eax, 0xfffffffc
push eax
lea ecx, [ebp - 0x26c]
call fcn.010128b8
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x26c]
call fcn.010150ba
cmp dword [ebp - 0x268], ebx
je 0x105329f
mov esi, dword [ebp - 0x268]
push esi
lea ecx, [ebp - 0x290]
call fcn.01027507
mov eax, dword [ebp - 0x220]
mov word [ebp - 0x290], 8
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x290]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov byte [ebp - 4], 0x14
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x108]
cmp eax, ebx
mov dword [ebp - 0x224], eax
jge 0x105332d
call fcn.0107321f
mov esi, eax
cmp esi, ebx
je 0x10533ac
push 0x1008a4c
push 0x6e
push dword [ebp - 0x224]
lea eax, [ebp - 0x27c]
push 0x1001c58
push eax
call fcn.01071ba0
add esp, 0x14
push eax
push 8
mov ecx, esi
mov byte [ebp - 4], 0x15
call fcn.010726fd
push 1
lea ecx, [ebp - 0x27c]
call fcn.0101260e
jmp 0x10533ac
call fcn.01045e5f
push dword [ebp + 0xc]
mov esi, eax
mov ecx, esi
call fcn.01045e6a
push eax
lea ecx, [ebp - 0x244]
call fcn.01012a13
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 0x16
call fcn.0101292a
push 1
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x14
call fcn.0101260e
cmp dword [ebp - 0x254], ebx
je 0x1053392
mov eax, dword [ebp - 0x258]
cmp eax, ebx
jne 0x105338b
mov eax, 0x1001d48
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x268]
cmp eax, ebx
jne 0x10533a1
mov eax, 0x1001d48
push dword [ebp + 0xc]
mov ecx, esi
push eax
call fcn.010468f0
lea eax, [ebp - 0x290]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0x26c]
push 1
call fcn.0101260e
push 1
lea ecx, [ebp - 0x25c]
call fcn.0101260e
mov eax, dword [ebp - 0x220]
cmp eax, ebx
mov byte [ebp - 4], bl
je 0x10533e6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x228]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
call fcn.01067393
pop edi
pop esi
pop ebx
leave
ret 8