Function at 0x42cab0
Capabilities:
Check if file exists
Check mutex on windows
Create directory
Delete file
Get file attributes
Get file size

Disassembly:
mov eax, 0x162c
call fcn.0044c0a0
mov eax, dword [0x48a394]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
je 0x42ceb6
mov eax, dword [esp + 0x1640]
cmp eax, 2
jne 0x42cae7
cmp dword [0x48a390], ebp
je 0x42ceb6
jmp 0x42caef
cmp eax, ebp
je 0x42ceb6
mov al, byte [0x491b54]
test al, al
jne 0x42cb0d
push ebp
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x491b50], eax
mov byte [0x491b54], 1
mov eax, dword [0x491b50]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, 0x3ff
xor eax, eax
lea edi, [esp + 0x63e]
mov word [esp + 0x63c], bp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x236]
mov word [esp + 0x234], bp
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
push ecx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x26]
mov ecx, dword [esp + 0x24]
and edx, 0xffff
and eax, 0xffff
push edx
mov edx, dword [esp + 0x26]
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x26]
push ecx
mov ecx, dword [esp + 0x28]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
push str._04d__02d__02d__02d:_02d:_02d
lea edx, [esp + 0x250]
push 0x100
push edx
call fcn.0044b1c5
lea eax, [esp + 0x258]
push 0x100
lea ecx, [esp + 0x664]
push eax
push ecx
call fcn.0044aebd
mov eax, dword [esp + 0x1674]
add esp, 0x30
lea edx, [esp + 0x1648]
lea ecx, [esp + 0x234]
push edx
push eax
push 0x800
push ecx
call fcn.0044b1a8
add esp, 4
lea edx, [esp + eax*2 + 0x648]
push edx
call fcn.0044d083
lea eax, [esp + 0x64c]
push eax
call fcn.0044b1a8
mov ecx, 0x800
lea edx, [esp + 0x650]
sub ecx, eax
push ecx
push 0x489cd8
push edx
call fcn.0044aefa
mov al, byte [0x491b55]
add esp, 0x20
test al, al
jne 0x42cd7c
mov eax, 0x491b58
test eax, eax
je 0x42ceaa
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x2e]
mov word [esp + 0x2c], bp
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x2c]
push 0x104
push ecx
push ebp
mov word [0x491b58], bp
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x489e00
call fcn.0044b1a8
lea edx, [esp + 0x30]
mov esi, eax
push edx
call fcn.0044b1a8
add esi, eax
add esp, 8
cmp esi, 0x104
ja 0x42ceaa
lea eax, [esp + 0x2c]
push 0x5c
push eax
call fcn.0044b659
lea ecx, [esp + 0x34]
push 0x2f
push ecx
mov esi, eax
call fcn.0044b659
add esp, 0x10
cmp esi, ebp
jne 0x42ccc1
cmp eax, ebp
jne 0x42ccc5
jmp 0x42ceaa
cmp esi, eax
ja 0x42ccc7
mov esi, eax
mov word [esi], bp
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x436]
mov word [esp + 0x434], bp
lea edx, [esi + 4]
rep stosd dword es:[edi], eax
push 0x2e
push edx
stosw word es:[edi], ax
call fcn.0044b659
add esp, 8
cmp eax, ebp
je 0x42ccf9
mov word [eax], bp
add esi, 2
lea eax, [esp + 0x434]
push esi
push str._s.log
push 0x104
push eax
call fcn.0044b1c5
lea ecx, [esp + 0x3c]
push ecx
push 0x491b58
call fcn.0044b634
push str.LiveUpdateLog
push 0x491b58
call fcn.0044b60a
add esp, 0x20
push 0x491b58
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42cd54
test al, 0x10
jne 0x42cd54
push 0x491b58
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebp
push 0x491b58
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea edx, [esp + 0x434]
push edx
push 0x491b58
call fcn.0044b60a
add esp, 8
mov byte [0x491b55], 1
push 0x491b58
xor bl, bl
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42cd92
test al, 0x10
je 0x42cdbf
push 0x491b58
call fcn.0042c9e0
add esp, 4
test al, al
jne 0x42ce28
mov ecx, dword [0x491b50]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x162c
ret
push ebp
push 0x80
push 3
push ebp
push 1
push SysReAllocString
push 0x491b58
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x42ce2a
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ebp
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
push 1
push ebp
push ebp
push eax
call fcn.0044c970
xor ecx, ecx
add eax, edi
adc edx, ecx
mov dword [esp + 0x18], edx
js 0x42ce2a
jg 0x42ce1d
cmp eax, 0x19000
jbe 0x42ce2a
push 0x491b58
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov bl, 1
push 0x48a398
push 0x491b58
call fcn.0044c4c5
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x42ce5a
mov edx, dword [0x491b50]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x162c
ret
test bl, bl
mov byte [esp + 0x12], 0xff
mov byte [esp + 0x13], 0xfe
je 0x42ce7a
push esi
push 2
lea eax, [esp + 0x1a]
push 1
push eax
call fcn.0044c35b
add esp, 0x10
lea ecx, [esp + 0x63c]
push esi
push ecx
call fcn.0044b1a8
add esp, 4
lea edx, [esp + 0x640]
push eax
push 2
push edx
call fcn.0044c35b
push esi
call fcn.0044cf1d
push esi
call fcn.0044c2de
add esp, 0x18
mov eax, dword [0x491b50]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x162c
ret