Function at 0x794152
Capabilities:
Delete file
Get file size
Move file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x100324
call fcn.0081cf10
mov eax, dword [0x8e7be8]
lea ecx, [ebp - 0x324]
mov dword [ebp - 0xc], 0xfbea
mov byte [ebp - 1], 0
sub ecx, eax
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x794177
mov eax, dword [ebp + 8]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x794186
push esi
push edi
lea edi, [ebp - 0x324]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x794198
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x324]
and ecx, 3
push 0x41
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0079131f
add esp, 0x10
test al, al
je 0x794601
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x18]
call fcn.007913e7
xor esi, esi
pop ecx
xor edi, edi
xor ebx, ebx
cmp dword [0x8e7bf4], esi
pop ecx
mov dword [ebp - 8], eax
jl 0x794209
jg 0x7941f9
cmp dword [0x8e7bf0], esi
jb 0x794209
push dword [0x8e7bdc]
call fcn.00791660
pop ecx
mov edi, eax
mov ebx, edx
mov eax, dword [0xabbde8]
cmp eax, esi
je 0x79421d
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x10], eax
jmp 0x794222
xor ecx, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 8]
cdq
mov esi, eax
add esi, ecx
mov ecx, edx
adc ecx, dword [ebp - 0x10]
cmp ecx, dword [0x8e7be4]
jg 0x7945f3
jl 0x794249
cmp esi, dword [0x8e7be0]
jae 0x7945f3
sub edi, eax
sbb ebx, edx
cmp ebx, dword [0x8e7bf4]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
jl 0x7945f3
jg 0x79426e
mov eax, dword [0x8e7bf0]
cmp edi, eax
jbe 0x7945f3
mov eax, dword [0x8e7bdc]
lea edx, [ebp - 0x220]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x79427b
mov eax, dword [ebp + 8]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x79428a
lea edi, [ebp - 0x220]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x79429a
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x220]
rep movsb byte es:[edi], byte [esi]
call fcn.007938ee
mov eax, dword [0x8e7bdc]
lea ecx, [ebp - 0x11c]
sub ecx, eax
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x7942ca
mov eax, dword [0x8e7bfc]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x7942db
lea edi, [ebp - 0x11c]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x7942eb
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0xabbde8]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x794459
lea esi, [eax + 0x1c]
cmp byte [esi], 0
je 0x794459
mov edi, dword [ebp + 8]
mov cl, byte [esi]
mov al, cl
cmp cl, byte [edi]
jne 0x794345
test al, al
je 0x794341
mov cl, byte [esi + 1]
mov al, cl
cmp cl, byte [edi + 1]
jne 0x794345
inc esi
inc esi
inc edi
inc edi
test al, al
jne 0x794323
xor eax, eax
jmp 0x79434a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x794459
xor esi, esi
push esi
push 0x100
push 3
push esi
push esi
push SysReAllocStringLen
lea eax, [ebp - 0x11c]
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
je 0x794437
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [0xabbde8]
cmp dword [ecx + 0x18], eax
jne 0x79442d
mov esi, 0x100000
jmp 0x7943ab
push dword [ebp - 0xc]
lea eax, [ebp - 0x100324]
push esi
push eax
call fcn.0079c193
add esp, 0xc
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 8]
push eax
push esi
lea eax, [ebp - 0x100324]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 8], esi
je 0x794395
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ax, word [ebp - 0xc]
mov ecx, dword [0xabbde8]
or edi, 0xffffffff
xor esi, esi
cmp word [ecx + 0x120], ax
jne 0x794424
push esi
push 0x100
push 3
push esi
push esi
push 0x40000000
lea eax, [ebp - 0x11c]
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x79440f
push dword [0x8e7c00]
call fcn.0079c096
pop ecx
mov eax, dword [0xabbde8]
push esi
push esi
push dword [eax + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor esi, esi
jmp 0x794437
mov dword [ebp - 0xc], 0xfbea
jmp 0x794437
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or edi, 0xffffffff
cmp edi, 0xffffffff
mov eax, dword [0xabbde8]
mov word [eax + 0x120], si
mov eax, dword [0xabbde8]
mov byte [eax + 0x1c], 0
mov eax, dword [0xabbde8]
mov dword [eax + 0x18], esi
jne 0x7944af
xor esi, esi
push esi
push 0x100
push 5
push esi
push esi
push 0x40000000
lea eax, [ebp - 0x11c]
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x7944af
push dword [ebp + 8]
push str.FCACHE_cachefilestream___first_open_attempt_failed_on_file__s._n
push 7
call fcn.0079b709
add esp, 0xc
push esi
push 0x100
push 2
push esi
push esi
push 0x40000000
lea eax, [ebp - 0x11c]
push eax
call ebx
mov edi, eax
cmp edi, 0xffffffff
je 0x7945f3
mov eax, dword [0xabbde8]
cmp eax, esi
je 0x7944dd
push 0x795de3
push 0x105
push dword [eax + 0xc]
add eax, 0x128
push eax
push dword [ebp + 8]
call fcn.0081e355
add esp, 0x14
cmp eax, esi
mov dword [ebp - 8], eax
jne 0x7944f9
push dword [ebp + 8]
call fcn.00793b5b
cmp eax, esi
pop ecx
mov dword [ebp - 8], eax
jne 0x7944f9
push dword [0x8e7c00]
call fcn.0079c096
pop ecx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0xc]
push edi
push dword [ebp - 0x18]
call fcn.00793a40
add esp, 0x10
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0xabbd88], 0
jne 0x7945be
cmp esi, 0xffffffff
je 0x7945be
mov ebx, 0xabbd8c
push ebx
call fcn.0079c1f5
mov eax, esi
cdq
pop ecx
mov ecx, dword [0xabbde8]
add ecx, 0x10
mov edi, eax
add edi, dword [ecx]
mov esi, edx
adc esi, dword [ecx + 4]
cmp esi, dword [0x8e7be4]
jg 0x79459f
jl 0x79455e
cmp edi, dword [0x8e7be0]
jae 0x79459f
mov esi, dword [ebp - 0x10]
cmp esi, dword [0x8e7bf4]
jl 0x79459f
jg 0x794576
mov esi, dword [ebp - 0x14]
cmp esi, dword [0x8e7bf0]
jbe 0x79459f
add dword [ecx], eax
lea eax, [ebp - 0x220]
push eax
adc dword [ecx + 4], edx
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov eax, dword [ebp - 8]
mov byte [eax + 0x104], 1
mov byte [ebp - 1], 1
jmp 0x7945b5
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x7945b5
call fcn.007938b1
push ebx
call fcn.0079c207
pop ecx
jmp 0x7945f3
mov eax, dword [0xabbde8]
mov edx, dword [ebp + 8]
mov dword [eax + 0x18], esi
mov eax, dword [0xabbde8]
add eax, 0x1c
mov cl, byte [edx]
inc edx
mov byte [eax], cl
inc eax
test cl, cl
jne 0x7945d1
mov ax, word [ebp - 0xc]
mov ecx, dword [0xabbde8]
mov word [ecx + 0x120], ax
mov byte [0xabbd89], 1
push dword [ebp + 0xc]
push dword [ebp - 0x18]
call fcn.007913b2
pop ecx
pop ecx
pop ebx
mov al, byte [ebp - 1]
pop edi
pop esi
leave
ret