Function at 0x1104e94
Capabilities:
Check if file exists
Delete file
Get common file path
Get file attributes
Get file size
Read file on windows
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x22c
mov eax, dword [0x111121c]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x214], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
xor esi, esi
cmp ecx, esi
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x220], eax
jne 0x1104ed7
xor eax, eax
jmp 0x1105220
push edi
mov edi, dword [ebx + 0x18]
cmp edi, esi
jne 0x1104ef0
mov eax, dword [ebx + 0x28]
test al, 4
je 0x1104ef0
test eax, 0x20000000
jne 0x1104ef0
mov edi, dword [ebx + 0x2c]
xor eax, eax
cmp edi, esi
mov dword [ebp - 0x218], esi
je 0x1104f2e
lea eax, [ebp - 0x218]
push eax
push edi
push ecx
call fcn.01100f3d
push eax
push edi
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call fcn.01103689
mov esi, eax
xor eax, eax
test esi, esi
sete al
test esi, esi
jne 0x1104fae
test byte [ebx + 4], 4
je 0x1104f6a
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x1104f6a
lea eax, [ebp - 0x218]
push eax
push edi
push dword [ebp - 0x21c]
call fcn.01100f3d
push eax
push edi
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call fcn.01103689
mov esi, eax
xor eax, eax
test esi, esi
sete al
xor edx, edx
cmp esi, edx
jne 0x1104fae
cmp eax, edx
je 0x1104fa7
cmp dword [ebp - 0x218], edx
je 0x1104fa7
cmp dword [ebx + 0x18], edx
jne 0x1104fa7
mov eax, dword [ebx + 0x28]
test al, 4
je 0x1104fa7
mov ecx, 0x20000000
test ecx, eax
jne 0x1104fa7
cmp dword [ebx + 0x2c], edx
je 0x1104fa7
or eax, ecx
mov ecx, dword [ebp - 0x214]
push ebx
mov dword [ebx + 0x28], eax
call fcn.01104a43
xor eax, eax
jmp 0x110521f
push edi
push dword [ebp - 0x21c]
call fcn.01100f8c
mov ecx, dword [ebp - 0x214]
call fcn.01102a96
mov ebx, eax
test ebx, ebx
jne 0x1104fdf
push esi
push dword [ebp - 0x21c]
call fcn.01101056
push esi
call fcn.011010c2
jmp 0x1104fa7
mov ecx, dword [ebp - 0x214]
lea eax, [esi + 0x231]
push eax
lea eax, [esi + 0x12c]
push eax
push edi
push ebx
call fcn.01102f10
test eax, eax
mov dword [ebp - 0x22c], eax
jne 0x1105024
push esi
push dword [ebp - 0x21c]
call fcn.01101056
push esi
call fcn.011010c2
mov ecx, dword [ebp - 0x214]
push ebx
call fcn.011026d5
jmp 0x1104fa7
or dword [ebp - 0x214], 0xffffffff
lea eax, [ebp - 0x210]
push eax
mov edi, 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x1105068
cmp eax, edi
ja 0x1105068
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1105068
test al, 0x10
je 0x1105068
test ax, 0x1007
lea eax, [ebp - 0x210]
je 0x110506d
mov eax, 0x1028d54
lea ecx, [ebp - 0x108]
push ecx
push 0
push 0x1028d50
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, 0x80
je 0x11050ae
push 0
push ebx
push 4
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0x108]
push eax
call edi
mov dword [ebp - 0x214], eax
push 0
push ebx
push 3
push 0
push 1
push 0x80000000
push esi
call edi
xor edi, edi
cmp eax, 0xffffffff
mov dword [ebp - 0x224], eax
je 0x11051bf
push edi
push eax
mov dword [ebp - 0x220], edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp dword [esi + 0x11c], edi
mov dword [ebp - 0x218], eax
je 0x11050f4
mov ebx, dword [esi + 0x124]
jmp 0x1105100
inc eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
cmp ebx, edi
je 0x11051b3
cmp dword [esi + 0x11c], edi
jne 0x110516f
push edi
lea eax, [ebp - 0x220]
push eax
push dword [ebp - 0x218]
push ebx
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1105138
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x11051b3
cmp dword [esi + 0x11c], edi
jne 0x110516f
lea edi, [esi + 0x124]
mov eax, dword [edi]
test eax, eax
je 0x1105153
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [ebp - 0x218]
mov dword [edi], ebx
mov dword [esi + 0x128], eax
mov dword [esi + 0x11c], 1
xor edi, edi
jmp 0x110517b
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x11051b3
push edi
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x220]
mov dword [ebp - 0x218], edi
push ebx
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x11051b3
mov dword [esi + 0x108], 1
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x108], edi
je 0x11051da
push 0x105
lea eax, [ebp - 0x108]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
cmp dword [ebp - 0x214], 0xffffffff
je 0x1105204
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x108], edi
jne 0x1105204
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
push dword [ebp - 0x21c]
call fcn.01101056
mov eax, dword [ebp - 0x228]
mov dword [eax + 0x40], esi
mov eax, dword [ebp - 0x22c]
pop edi
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0105eca9
leave
ret 0xc