Function at 0x4c7d05c0
Capabilities:
Delete file
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 8]
xor eax, eax
cmp ebx, eax
push esi
mov esi, ecx
mov dword [esi], 0x4c785e58
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
mov dword [esi + 8], ebx
je 0x4c7d0915
cmp dword [ebp + 0x10], 1
push edi
jne 0x4c7d086d
push eax
push 0x100
push 3
push eax
push eax
push 0x80000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4c7d0644
push 0x116
push 0x4c785ed0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c78142c
call fcn.4c7c02b0
push ebx
push 0x4c785ea0
call fcn.4c7c02b0
add esp, 0x18
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [ebp - 0x4c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x4c7d0914
cmp dword [ebp - 0x2c], 0
jne 0x4c7d0914
mov ecx, dword [ebp - 0x28]
push 0
lea edx, [ebp + 8]
push edx
push 0x18
lea eax, [ebp - 0x18]
push eax
push edi
mov dword [esi + 4], ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4c7d06ae
push 0x129
push 0x4c785ed0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c78142c
call fcn.4c7c02b0
add esp, 0x10
pop edi
mov dword [esi + 8], 0
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [ebp - 0x18], 4
jne 0x4c7d07ce
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
shr eax, 1
add eax, 1
lea ecx, [eax + eax*2]
shr ecx, 2
imul ecx, dword [ebp - 0x10]
lea eax, [edx + ecx*4 + 0x18]
mov ecx, dword [ebp + 8]
cmp eax, ecx
mov dword [esi + 4], eax
jae 0x4c7d06df
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
push eax
call sub.MFC42.dll_operatornew
add esp, 4
push 0
push 0
push 0
push edi
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 8]
push 0
lea ecx, [ebp + 8]
push ecx
add edx, 0x18
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4c7d0750
push 0x13d
push 0x4c785ed0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c78142c
call fcn.4c7c02b0
mov ecx, dword [esi + 8]
push ecx
call sub.MFC42.dll_operatordelete
add esp, 0x14
pop edi
mov dword [esi + 8], 0
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 4]
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov edx, dword [esi + 8]
sub eax, ecx
sub eax, 0x18
add ecx, eax
mov dword [ebp + 8], eax
mov dword [edx + 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
push 0
lea eax, [eax + ecx + 0x18]
mov ecx, dword [ebp - 4]
lea edx, [ebp + 8]
push edx
mov edx, dword [esi + 8]
push ecx
add edx, eax
push edx
push edi
mov dword [ebp + 8], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4c7d083c
push 0x14a
push 0x4c785ed0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c78142c
call fcn.4c7c02b0
mov eax, dword [esi + 8]
push eax
call sub.MFC42.dll_operatordelete
add esp, 0x14
pop edi
mov dword [esi + 8], 0
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esi + 4]
push ecx
call sub.MFC42.dll_operatornew
add esp, 4
push 0
push 0
push 0
push edi
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push 0
lea edx, [ebp + 8]
push edx
push eax
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4c7d083c
push 0x154
push 0x4c785ed0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4c78142c
call fcn.4c7c02b0
mov edx, dword [esi + 8]
push edx
call sub.MFC42.dll_operatordelete
add esp, 0x14
pop edi
mov dword [esi + 8], 0
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
or dword [esi + 0xc], 0x80000000
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0xc], 0
je 0x4c7d090d
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, esi
call fcn.4c7cff60
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [ebx], 4
mov dword [ebp + 8], ebx
jne 0x4c7d0900
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
shr eax, 1
add eax, 1
lea eax, [eax + eax*2]
shr eax, 2
imul eax, dword [ebx + 8]
lea edi, [ebx + 0x10]
lea eax, [ecx + eax*4 + 0x18]
push eax
mov dword [ebp + 0xc], edi
mov dword [esi + 4], eax
call sub.MFC42.dll_operatornew
mov dword [esi + 8], eax
mov edi, dword [edi]
add esp, 4
add edi, 0x18
push edi
push eax
push ebx
mov dword [ebp + 0x10], eax
call fcn.4c7d54a0
mov eax, dword [esi + 4]
mov edx, dword [ebp + 8]
sub eax, dword [edx + 0x14]
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
mov ecx, dword [ebp + 0x10]
sub eax, edi
add edx, eax
add ecx, edi
add ebx, edi
mov edi, dword [esi + 8]
mov dword [edi + 0x10], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x14]
push edx
add eax, ecx
push eax
push ebx
call fcn.4c7d54a0
or dword [esi + 0xc], 0x80000000
mov ecx, esi
call fcn.4c7cff60
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + ecx + 0x18]
mov dword [esi + 4], edx
mov ecx, esi
call fcn.4c7cff60
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc