Function at 0x4198e0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x30138
call fcn.00463720
mov eax, dword [0x4a57cc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x30134], ecx
mov dword [ebp - 0x20014], 0
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x30134]
cmp dword [eax + 0x534], 0
jne 0x419922
xor eax, eax
jmp 0x419d46
mov ecx, dword [ebp + 0xc]
push ecx
push str._s.comp
lea edx, [ebp - 0x30118]
push edx
call fcn.00463edd
add esp, 0xc
lea eax, [ebp - 0x30118]
push eax
mov ecx, dword [ebp - 0x30134]
call fcn.004196a0
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x3011c], eax
cmp dword [ebp - 0x3011c], 0xffffffff
jne 0x41999d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp + 8]
push edx
push str.Make_Compressed_File_Error__:_Cannot_open_src_file___s__:_error_code___d
mov eax, dword [ebp - 0x30134]
push eax
call fcn.0041e290
add esp, 0x10
xor eax, eax
jmp 0x419d46
cmp dword [ebp + 0x14], 0
je 0x419a01
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea ecx, [ebp - 0x30118]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x419a01
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [ebp - 0x30118]
push edx
push str.Make_Compressed_File_Error__:_Cannot_create_dest_file___s__:_error_code___d
mov eax, dword [ebp - 0x30134]
push eax
call fcn.0041e290
add esp, 0x10
mov ecx, dword [ebp - 0x3011c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x419d46
mov edx, dword [ebp + 0xc]
push edx
push str._s.gz
lea eax, [ebp - 0x30118]
push eax
call fcn.00463edd
add esp, 0xc
push 0x48b4c8
lea ecx, [ebp - 0x30118]
push ecx
call fcn.00437fd0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x419a76
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [ebp - 0x30118]
push edx
push str.Make_Compressed_File_Error__:_Cannot_create_gz_file___s__:_error_code___d
mov eax, dword [ebp - 0x30134]
push eax
call fcn.0041e290
add esp, 0x10
mov ecx, dword [ebp - 0x3011c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x419d46
push 2
push 0
push 0
mov eax, dword [ebp - 0x3011c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x20014], eax
push 0
push 0
push 0
mov ecx, dword [ebp - 0x3011c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [ebp - 0x20014], 0
jbe 0x419cca
mov dword [ebp - 0x3012c], 0x20000
cmp dword [ebp - 0x20014], 0x10000
jae 0x419ad3
mov edx, dword [ebp - 0x20014]
mov dword [ebp - 0x30138], edx
jmp 0x419add
mov dword [ebp - 0x30138], 0x10000
mov eax, dword [ebp - 0x30138]
mov dword [ebp - 0x30128], eax
push 0
lea ecx, [ebp - 0x30120]
push ecx
mov edx, dword [ebp - 0x30128]
push edx
lea eax, [ebp - 0x30018]
push eax
mov ecx, dword [ebp - 0x3011c]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x419b1f
mov edx, dword [ebp - 0x30120]
cmp edx, dword [ebp - 0x30128]
je 0x419b68
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp + 8]
push eax
push str.Make_Compressed_File_Error__:_read_file___s__error_:_error_code___d
mov ecx, dword [ebp - 0x30134]
push ecx
call fcn.0041e290
add esp, 0x10
mov edx, dword [ebp - 0x3011c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 8]
push ecx
call fcn.00437d30
add esp, 4
xor eax, eax
jmp 0x419d46
cmp dword [ebp + 0x14], 0
je 0x419c99
push 9
mov edx, dword [ebp - 0x30120]
push edx
lea eax, [ebp - 0x30018]
push eax
lea ecx, [ebp - 0x3012c]
push ecx
lea edx, [ebp - 0x20010]
push edx
call fcn.004383b0
add esp, 0x14
test eax, eax
je 0x419bde
mov eax, dword [ebp + 8]
push eax
push str.Compress_of_file__s__failed_
mov ecx, dword [ebp - 0x30134]
push ecx
call fcn.0041e290
add esp, 0xc
mov edx, dword [ebp - 0x3011c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 8]
push ecx
call fcn.00437d30
add esp, 4
xor eax, eax
jmp 0x419d46
mov edx, dword [ebp - 0x3012c]
cmp edx, dword [ebp - 0x30120]
jb 0x419c4c
mov eax, dword [ebp - 0x30120]
or eax, 0x80000000
mov dword [ebp - 0x3012c], eax
push 0
lea ecx, [ebp - 0x30124]
push ecx
push 4
lea edx, [ebp - 0x3012c]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea ecx, [ebp - 0x30124]
push ecx
mov edx, dword [ebp - 0x30120]
push edx
lea eax, [ebp - 0x30018]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [ebp - 0x30120]
mov eax, dword [ebp - 0xc]
lea ecx, [eax + edx + 4]
mov dword [ebp - 0xc], ecx
jmp 0x419c99
push 0
lea edx, [ebp - 0x30124]
push edx
push 4
lea eax, [ebp - 0x3012c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea edx, [ebp - 0x30124]
push edx
mov eax, dword [ebp - 0x3012c]
push eax
lea ecx, [ebp - 0x20010]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x3012c]
mov ecx, dword [ebp - 0xc]
lea edx, [ecx + eax + 4]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x30120]
push eax
lea ecx, [ebp - 0x30018]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00437af0
add esp, 0xc
mov eax, dword [ebp - 0x20014]
sub eax, dword [ebp - 0x30120]
mov dword [ebp - 0x20014], eax
jmp 0x419aa2
mov ecx, dword [ebp - 0x3011c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x14], 0
je 0x419ce7
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
push eax
call fcn.00437d30
add esp, 4
cmp dword [ebp + 0x10], 0
je 0x419d43
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
lea ecx, [ebp - 0x30118]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x30130], eax
push 2
push 0
push 0
mov edx, dword [ebp - 0x30130]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x30130]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
call fcn.004635af
mov esp, ebp
pop ebp
ret 0x10