Function at 0x1004f370
Capabilities:
Check if file exists
Create directory
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f6765
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x1013b7e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x10c]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x110], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xd4], 0
call fcn.1008ef30
mov edi, dword [ebp - 0xe0]
mov ecx, edi
mov dword [ebp - 4], 1
call fcn.1008ef30
push esi
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0xd4], 1
call fcn.1008fd50
test al, al
je 0x1004fde5
push 0
push 0x101029f8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.100070f0
push 2
push 0x1010483c
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 2
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.100070f0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x10c]
call fcn.1008fa30
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x1004f49f
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004f495
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe0f
push edx
push ecx
call fcn.100899c7
add esp, 8
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 6
cmp edx, 0x10
jb 0x1004f4e9
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004f4df
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe14
push edx
push ecx
call fcn.100899c7
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.100063a0
mov ecx, eax
test ecx, ecx
je 0x1004fe19
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xd8], eax
push 0x101018f8
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 7
call fcn.100060e0
test al, al
jne 0x1004f544
push 0
push 0x101018f8
lea ecx, [ebp - 0xd8]
call fcn.10006ea0
push 3
push 0x10108d5c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.100070f0
push 0xfde9
lea eax, [ebp - 0xd8]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x10c]
call fcn.1008fba0
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov byte [ebp - 4], 0xa
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1004f5b7
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xb8]
call fcn.1000c350
mov edx, dword [ebp - 0xe4]
or edi, 0xffffffff
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1004f5f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
cmp edx, 0x10
jb 0x1004f62f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004f625
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe23
push edx
push ecx
call fcn.100899c7
add esp, 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov edx, dword [ebp - 0xd8]
mov eax, edi
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1004f662
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.100063a0
mov ecx, eax
test ecx, ecx
je 0x1004fe28
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xdc], eax
push 0x101018f8
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0xf
call fcn.100060e0
test al, al
jne 0x1004f6ab
push 0
push 0x101018f8
lea ecx, [ebp - 0xdc]
call fcn.10006ea0
push 4
push str.path
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.100070f0
push 0xfde9
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x10c]
call fcn.1008fba0
mov edx, dword [eax]
xor eax, eax
mov ecx, edx
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1004f720
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x88]
call fcn.1000c350
mov edx, dword [ebp - 0xe8]
mov eax, edi
mov byte [ebp - 4], 0x14
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1004f75d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x15
cmp edx, 0x10
jb 0x1004f795
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004f78b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe32
push edx
push ecx
call fcn.100899c7
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov edx, dword [ebp - 0xdc]
mov eax, edi
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1004f7c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 6
push str.update
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.100070f0
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp - 0x10c]
call fcn.1008f1e0
mov edx, dword [ebp - 0x14]
movzx esi, al
mov dword [ebp - 0xe4], esi
mov byte [ebp - 4], 0x16
cmp edx, 0x10
jb 0x1004f83f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004f835
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe37
push edx
push ecx
call fcn.100899c7
add esp, 8
xor eax, eax
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov ecx, dword [ebp - 0xec]
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xf4]
mov byte [ebp - 4], 0x18
push eax
call fcn.100502f0
mov eax, dword [ebp - 0xf4]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x1004f8eb
add eax, 0x38
lea ecx, [ebp - 0x28]
push eax
call fcn.1000e7b0
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xd4], 3
call fcn.10008660
movups xmm0, xmmword [ebp - 0x28]
xor eax, eax
lea ecx, [ebp - 0x28]
mov word [ebp - 0x28], ax
movups xmmword [ebp - 0xa0], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [ebp - 0x90], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
call fcn.10008660
test esi, esi
je 0x1004f8eb
mov ecx, dword [ebp - 0xf4]
call fcn.10057e50
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe8], eax
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0x1a
cmovae eax, dword [ebp - 0x88]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edx, eax
lea esi, [edx + 2]
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x1004f930
sub edx, esi
lea ecx, [ebp - 0x70]
sar edx, 1
push edx
push eax
call fcn.1000c350
mov esi, dword [ebp - 0xec]
add esi, 0x10
or dword [ebp - 0xd4], 4
lea ecx, [ebp - 0x58]
xor eax, eax
mov byte [ebp - 4], 0x1b
mov word [ebp - 0x58], ax
mov eax, dword [ebp - 0x60]
add eax, dword [esi + 0x10]
push eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
call fcn.10021f70
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x1004f98a
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x58]
push eax
call fcn.10021d70
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
push dword [ebp - 0x60]
cmovae eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x58]
push eax
call fcn.10021d70
lea ecx, [ebp - 0x70]
call fcn.10008660
movups xmm0, xmmword [ebp - 0x58]
xor eax, eax
mov byte [ebp - 4], 0x1a
mov word [ebp - 0x58], ax
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0xe8]
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0xd4], eax
movq xmm0, qword [ebp - 0x48]
movq qword [ebp - 0x60], xmm0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
call fcn.10008660
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x1004f9fd
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1004fa19
cmp dword [esi + 0x14], 8
jb 0x1004fa10
mov esi, dword [esi]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp dword [ebp - 0x78], 0
je 0x1004fa7c
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1004fa7c
cmp dword [ebp - 0x8c], 8
lea eax, [ebp - 0xa0]
cmovae eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x70]
lea eax, [ebp - 0x88]
cmovae ecx, dword [ebp - 0x70]
cmp dword [ebp - 0x74], 8
push ecx
cmovae eax, dword [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
jmp 0x1004fa9f
cmp dword [ebp - 0x8c], 8
lea eax, [ebp - 0xa0]
push dword [ebp - 0x90]
cmovae eax, dword [ebp - 0xa0]
lea ecx, [ebp - 0x70]
push eax
call fcn.1000c350
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x1004fac3
cmp dword [ebp - 0xe4], 0
je 0x1004fac3
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.100555a0
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
push 0xfde9
cmovae eax, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10085110
add esp, 0xc
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
call fcn.1008bd40
push 4
push str.path
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.100070f0
mov esi, dword [ebp - 0xe0]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x1e
push eax
mov ecx, esi
call fcn.1008f060
mov ecx, eax
call fcn.1008c340
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1d
cmp edx, 0x10
jb 0x1004fb6a
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fb60
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe3c
push edx
push ecx
call fcn.100899c7
add esp, 8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1008c2d0
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0x1a
cmp edx, 0x10
jb 0x1004fbbc
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fbb2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe41
push edx
push ecx
call fcn.100899c7
add esp, 8
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
push 0xfde9
cmovae eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10085110
add esp, 0xc
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
call fcn.1008bd40
push 3
push 0x10108d5c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.100070f0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x21
push eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.1008f060
mov ecx, eax
call fcn.1008c340
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x20
cmp edx, 0x10
jb 0x1004fc66
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fc5c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe46
push edx
push ecx
call fcn.100899c7
add esp, 8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1008c2d0
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 0x1a
cmp edx, 0x10
jb 0x1004fcb8
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fcae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe4b
push edx
push ecx
call fcn.100899c7
add esp, 8
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x40]
call fcn.1008bd40
push 2
push 0x1010483c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.100070f0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.1008f060
mov ecx, eax
call fcn.1008c340
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x1004fd3a
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fd30
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe50
push edx
push ecx
call fcn.100899c7
add esp, 8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.1008c2d0
lea ecx, [ebp - 0x70]
call fcn.10008660
mov esi, dword [ebp - 0xf0]
test esi, esi
je 0x1004fd84
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x1004fd84
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x1004fd84
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0xa0]
call fcn.10008660
lea ecx, [ebp - 0x88]
call fcn.10008660
lea ecx, [ebp - 0xb8]
call fcn.10008660
mov edx, dword [ebp - 0xbc]
cmp edx, 0x10
jb 0x1004fddf
mov ecx, dword [ebp - 0xd0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1004fdd5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1004fe55
push edx
push ecx
call fcn.100899c7
add esp, 8
mov edi, dword [ebp - 0xe0]
lea ecx, [ebp - 0x10c]
call fcn.1008c2d0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10089d41
mov esp, ebp
pop ebp
ret 8
call fcn.100c8c99
call fcn.100c8c99
push 0x80004005
call fcn.100060c0
call fcn.100c8c99
push 0x80004005
call fcn.100060c0
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
call fcn.100c8c99
int3