Function at 0x1104deb
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 0x1104e2e
xor eax, eax
jmp 0x1105177
push edi
mov edi, dword [ebx + 0x18]
cmp edi, esi
jne 0x1104e47
mov eax, dword [ebx + 0x28]
test al, 4
je 0x1104e47
test eax, 0x20000000
jne 0x1104e47
mov edi, dword [ebx + 0x2c]
xor eax, eax
cmp edi, esi
mov dword [ebp - 0x218], esi
je 0x1104e85
lea eax, [ebp - 0x218]
push eax
push edi
push ecx
call fcn.01100e94
push eax
push edi
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call fcn.011035e0
mov esi, eax
xor eax, eax
test esi, esi
sete al
test esi, esi
jne 0x1104f05
test byte [ebx + 4], 4
je 0x1104ec1
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x1104ec1
lea eax, [ebp - 0x218]
push eax
push edi
push dword [ebp - 0x21c]
call fcn.01100e94
push eax
push edi
push dword [ebp - 0x220]
push dword [ebp - 0x21c]
call fcn.011035e0
mov esi, eax
xor eax, eax
test esi, esi
sete al
xor edx, edx
cmp esi, edx
jne 0x1104f05
cmp eax, edx
je 0x1104efe
cmp dword [ebp - 0x218], edx
je 0x1104efe
cmp dword [ebx + 0x18], edx
jne 0x1104efe
mov eax, dword [ebx + 0x28]
test al, 4
je 0x1104efe
mov ecx, 0x20000000
test ecx, eax
jne 0x1104efe
cmp dword [ebx + 0x2c], edx
je 0x1104efe
or eax, ecx
mov ecx, dword [ebp - 0x214]
push ebx
mov dword [ebx + 0x28], eax
call fcn.0110499a
xor eax, eax
jmp 0x1105176
push edi
push dword [ebp - 0x21c]
call fcn.01100ee3
mov ecx, dword [ebp - 0x214]
call fcn.011029ed
mov ebx, eax
test ebx, ebx
jne 0x1104f36
push esi
push dword [ebp - 0x21c]
call fcn.01100fad
push esi
call fcn.01101019
jmp 0x1104efe
mov ecx, dword [ebp - 0x214]
lea eax, [esi + 0x231]
push eax
lea eax, [esi + 0x12c]
push eax
push edi
push ebx
call fcn.01102e67
test eax, eax
mov dword [ebp - 0x22c], eax
jne 0x1104f7b
push esi
push dword [ebp - 0x21c]
call fcn.01100fad
push esi
call fcn.01101019
mov ecx, dword [ebp - 0x214]
push ebx
call fcn.0110262c
jmp 0x1104efe
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 0x1104fbf
cmp eax, edi
ja 0x1104fbf
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1104fbf
test al, 0x10
je 0x1104fbf
test ax, 0x1007
lea eax, [ebp - 0x210]
je 0x1104fc4
mov eax, 0x1028d34
lea ecx, [ebp - 0x108]
push ecx
push 0
push 0x1028d30
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, 0x80
je 0x1105005
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 accept
push esi
call edi
xor edi, edi
cmp eax, 0xffffffff
mov dword [ebp - 0x224], eax
je 0x1105116
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 0x110504b
mov ebx, dword [esi + 0x124]
jmp 0x1105057
inc eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
cmp ebx, edi
je 0x110510a
cmp dword [esi + 0x11c], edi
jne 0x11050c6
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 0x110508f
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x110510a
cmp dword [esi + 0x11c], edi
jne 0x11050c6
lea edi, [esi + 0x124]
mov eax, dword [edi]
test eax, eax
je 0x11050aa
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 0x11050d2
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x110510a
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 0x110510a
mov dword [esi + 0x108], 1
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x108], edi
je 0x1105131
push 0x105
lea eax, [ebp - 0x108]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
cmp dword [ebp - 0x214], 0xffffffff
je 0x110515b
push dword [ebp - 0x214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x108], edi
jne 0x110515b
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
push dword [ebp - 0x21c]
call fcn.01100fad
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.0105ec09
leave
ret 0xc