Function at 0x401f00
Capabilities:
Delete file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x61c
mov dword [ebp - 0x408], 0x80000
mov eax, dword [ebp - 0x408]
add eax, 0x400
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x614], 0
mov ecx, dword [ebp - 0x408]
and ecx, 0x1ff
test ecx, ecx
je 0x401f45
xor eax, eax
jmp 0x4023b5
xor edx, edx
test edx, edx
je 0x401f52
xor eax, eax
jmp 0x4023b5
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 0x2e
jne 0x401f72
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + 1]
cmp eax, 0x5c
jne 0x401f72
mov ecx, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp + 0xc], ecx
cmp dword [ebp - 0x614], 0
je 0x401f90
mov edx, dword [ebp + 0xc]
push edx
push str._s_.
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
lea ecx, [ebp - 0x400]
push ecx
call fcn.00401e8a
add esp, 4
cmp dword [ebp - 0x614], 0
je 0x401fbd
mov edx, dword [ebp + 0xc]
push edx
push str._s_..
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
lea ecx, [ebp - 0x400]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call section..text
add esp, 8
test eax, eax
je 0x401ff6
cmp dword [ebp + 0x10], 0
je 0x401fe2
push str.file_compression_error
call dword [ebp + 0x10]
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x4023b5
cmp dword [ebp - 0x614], 0
je 0x402014
mov ecx, dword [ebp + 0xc]
push ecx
push str._s_...
mov edx, dword [ebp + 0x10]
push edx
call fcn.00401ec1
add esp, 0xc
lea eax, [ebp - 0x608]
push eax
lea ecx, [ebp - 0x400]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00401cb2
add esp, 0xc
test eax, eax
jne 0x402054
cmp dword [ebp + 0x10], 0
je 0x402040
push str.error_getting_file_info
call dword [ebp + 0x10]
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x4023b5
cmp dword [ebp - 0x614], 0
je 0x402072
mov ecx, dword [ebp + 0xc]
push ecx
push str._s_....
mov edx, dword [ebp + 0x10]
push edx
call fcn.00401ec1
add esp, 0xc
mov eax, dword [ebp - 0x404]
push eax
call fcn.0043982d
add esp, 4
mov dword [ebp - 0x60c], eax
cmp dword [ebp - 0x60c], 0
jne 0x4020b2
cmp dword [ebp + 0x10], 0
je 0x40209e
push str.error_getting_memory
call dword [ebp + 0x10]
lea ecx, [ebp - 0x400]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x4023b5
cmp dword [ebp - 0x614], 0
je 0x4020d0
mov edx, dword [ebp + 0xc]
push edx
push str._s_.....
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
push 0x4729bc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043aeb1
add esp, 8
mov dword [ebp - 0x610], eax
cmp dword [ebp - 0x610], 0
jne 0x402141
push 0x4729c0
mov edx, dword [ebp + 8]
push edx
call fcn.0043aeb1
add esp, 8
mov dword [ebp - 0x610], eax
cmp dword [ebp - 0x610], 0
jne 0x402141
cmp dword [ebp + 0x10], 0
je 0x40211e
push str.error_opening_package_file
call dword [ebp + 0x10]
mov eax, dword [ebp - 0x60c]
push eax
call fcn.004397f5
add esp, 4
lea ecx, [ebp - 0x400]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x4023b5
cmp dword [ebp - 0x614], 0
je 0x40215f
mov edx, dword [ebp + 0xc]
push edx
push str._s_......
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
push 0x4729ec
lea ecx, [ebp - 0x400]
push ecx
call fcn.0043aeb1
add esp, 8
mov dword [ebp - 0x61c], eax
cmp dword [ebp - 0x61c], 0
jne 0x4021c2
cmp dword [ebp + 0x10], 0
je 0x402190
push str.error_opening_temp_z_file
call dword [ebp + 0x10]
mov edx, dword [ebp - 0x610]
push edx
call fcn.0043ad76
add esp, 4
mov eax, dword [ebp - 0x60c]
push eax
call fcn.004397f5
add esp, 4
lea ecx, [ebp - 0x400]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
jmp 0x4023b5
cmp dword [ebp - 0x614], 0
je 0x4021e0
mov edx, dword [ebp + 0xc]
push edx
push str._s_.......
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
push 2
push 0
mov ecx, dword [ebp - 0x610]
push ecx
call fcn.0043c143
add esp, 0xc
mov edx, dword [ebp - 0x610]
push edx
call fcn.0043c556
add esp, 4
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x610]
push eax
push 0x200
push 1
lea ecx, [ebp - 0x608]
push ecx
call fcn.0043b01f
add esp, 0x10
cmp dword [ebp - 0x614], 0
je 0x402243
mov edx, dword [ebp + 0xc]
push edx
push str._s_........
mov eax, dword [ebp + 0x10]
push eax
call fcn.00401ec1
add esp, 0xc
mov ecx, dword [ebp - 0x61c]
push ecx
mov edx, dword [ebp - 0x408]
push edx
push 1
mov eax, dword [ebp - 0x60c]
push eax
call fcn.00451525
add esp, 0x10
mov dword [ebp - 0x618], eax
cmp dword [ebp - 0x618], 0
je 0x4022e0
mov ecx, dword [ebp - 0x618]
cmp ecx, dword [ebp - 0x408]
jae 0x4022bc
mov edx, dword [ebp - 0x618]
and edx, 0xfffffe00
mov dword [ebp - 0x618], edx
mov eax, dword [ebp - 0x618]
add eax, 0x200
mov dword [ebp - 0x618], eax
mov ecx, dword [ebp - 0x618]
cmp ecx, dword [ebp - 0x408]
jbe 0x4022bc
mov edx, dword [ebp - 0x408]
mov dword [ebp - 0x618], edx
mov eax, dword [ebp - 0x610]
push eax
mov ecx, dword [ebp - 0x618]
push ecx
push 1
mov edx, dword [ebp - 0x60c]
push edx
call fcn.0043b01f
add esp, 0x10
jmp 0x402243
cmp dword [ebp - 0x614], 0
je 0x4022fe
mov eax, dword [ebp + 0xc]
push eax
push str._s_.........
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401ec1
add esp, 0xc
mov edx, dword [ebp - 0x61c]
push edx
call fcn.0043ad76
add esp, 4
cmp dword [ebp - 0x614], 0
je 0x40232b
mov eax, dword [ebp + 0xc]
push eax
push str._s_..........
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401ec1
add esp, 0xc
mov edx, dword [ebp - 0x610]
push edx
call fcn.0043ad76
add esp, 4
cmp dword [ebp - 0x614], 0
je 0x402358
mov eax, dword [ebp + 0xc]
push eax
push str._s_...........
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401ec1
add esp, 0xc
mov edx, dword [ebp - 0x60c]
push edx
call fcn.004397f5
add esp, 4
cmp dword [ebp - 0x614], 0
je 0x402385
mov eax, dword [ebp + 0xc]
push eax
push str._s_............
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401ec1
add esp, 0xc
lea edx, [ebp - 0x400]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x614], 0
je 0x4023b0
mov eax, dword [ebp + 0xc]
push eax
push str._s_.............
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00401ec1
add esp, 0xc
mov eax, 1
mov esp, ebp
pop ebp
ret