Function at 0x402eb0
Capabilities:
Delete file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0xec
test eax, eax
mov byte [0x408180], 0
je 0x4030a2
mov eax, dword [0x4089d8]
cmp eax, 2
je 0x403080
cmp eax, 3
je 0x402f80
xor ebx, ebx
sub eax, 1
je 0x4030af
cmp dword [0x4089d8], 1
je 0x402f31
mov eax, 0x4085c0
call fcn.00401930
test al, al
je 0x403362
mov eax, dword [0x4089d8]
sub eax, 2
cmp eax, 1
jbe 0x4033c3
cmp dword [0x4089d8], 3
jne 0x402f31
cmp byte [0x4089ca], 0
je 0x4030b6
test bl, bl
je 0x402f42
cmp byte [0x4085b0], 0
jne 0x403472
cmp dword [0x4089d8], 3
je 0x403410
mov eax, dword [0x4089d8]
cmp eax, 2
je 0x403300
cmp eax, 3
je 0x403270
sub eax, 1
je 0x403106
mov eax, str.uncompress:_bad_srcMode
call fcn.004017a0
lea esi, [esi]
mov edx, ebx
mov eax, 0x4085c0
call fcn.00401380
mov edx, ebx
mov eax, 0x408e20
call fcn.00401380
xor ebx, ebx
mov esi, dword [ebx*4 + 0x40500c]
mov eax, 0x408e20
mov edi, dword [ebx*4 + 0x40501c]
mov edx, esi
call fcn.00401260
test al, al
jne 0x403016
add ebx, 1
cmp ebx, 4
jne 0x402f9a
mov ecx, 0x408e20
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x402fc5
mov eax, edx
mov ebx, 1
shr eax, 0x10
test edx, 0x8080
cmove edx, eax
lea eax, [ecx + 2]
cmove ecx, eax
add dl, dl
sbb ecx, 3
sub ecx, 0x408e20
mov dword [ecx + 0x408e20], 0x74756f2e
mov byte [ecx + 0x408e24], 0
jmp 0x402eef
mov ebx, 0x408e20
mov eax, dword [ebx]
add ebx, 4
lea edx, [eax - 0x1010101]
not eax
and edx, eax
and edx, 0x80808080
je 0x40301b
mov eax, edx
shr eax, 0x10
test edx, 0x8080
cmove edx, eax
lea eax, [ebx + 2]
cmove ebx, eax
add dl, dl
mov dword [esp], esi
sbb ebx, 3
call sub.cygwin1.dll_strlen
sub ebx, 0x408e20
mov dword [esp + 4], edi
mov dword [esp], 0x408e20
sub ebx, eax
mov byte [ebx + 0x408e20], 0
xor ebx, ebx
call sub.cygwin1.dll_strcat
jmp 0x402eef
mov edx, ebx
mov eax, 0x4085c0
xor ebx, ebx
call fcn.00401380
mov edx, str._stdout_
mov eax, 0x408e20
call fcn.00401380
jmp 0x402eef
cmp dword [0x4089d8], 1
jne 0x403606
mov edx, str._stdin_
jmp 0x403082
lea eax, [ebp - 0xd0]
mov dword [esp + 4], eax
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__lstat64
test eax, eax
jne 0x4030e6
mov eax, dword [ebp - 0xc0]
and eax, 0xf000
cmp eax, 0x8000
je 0x402f31
cmp byte [0x4085b0], 0
jne 0x4036c5
mov edi, dword [0x408184]
test edi, edi
jg 0x4031f1
jmp 0x4033ae
call sub.cygwin1.dll___getreent
mov edi, dword [eax + 4]
nop
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [ebp - 0xd4], eax
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 4]
mov dword [esp], eax
call sub.cygwin1.dll_fileno
mov dword [esp], eax
call sub.cygwin1.dll_isatty
test eax, eax
jne 0x403573
mov esi, dword [0x4089d0]
test esi, esi
jle 0x403182
call sub.cygwin1.dll___getreent
mov dword [esp + 8], 0x4085c0
mov dword [esp + 4], str.___s:
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, 0x4085c0
call fcn.004019c0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fflush
mov eax, dword [ebp - 0xd4]
mov byte [0x408180], 1
mov dword [0x409234], eax
mov edx, eax
mov eax, edi
call fcn.00402890
mov dword [0x409234], 0
test al, al
je 0x403200
cmp dword [0x4089d8], 3
je 0x403630
mov ecx, dword [0x4089d0]
mov byte [0x408180], 0
test ecx, ecx
jle 0x4031f1
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 5
mov dword [esp + 4], 1
mov dword [esp], str.done_n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [0x4089d8], 3
mov byte [0x409231], 1
mov byte [0x408180], 0
je 0x403610
cmp dword [0x408184], 1
mov byte [0x408180], 0
jle 0x403564
mov ebx, dword [0x4089d0]
test ebx, ebx
jle 0x4034b0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.not_a_bzip2_file._n
mov dword [esp + 0xc], eax
call sub.cygwin1.dll_fwrite
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x4063d6
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__fopen64
mov edx, 0x406632
mov edi, eax
mov eax, 0x408e20
call fcn.00401960
test eax, eax
mov dword [ebp - 0xd4], eax
je 0x403667
test edi, edi
jne 0x40313e
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov esi, dword [0x4089dc]
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_Cant_open_input_file__s:__s._n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [ebp - 0xd4]
mov dword [esp], eax
call sub.cygwin1.dll_fclose
jmp 0x4030f3
mov dword [esp + 4], 0x4063d6
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__fopen64
mov edi, eax
call sub.cygwin1.dll___getreent
test edi, edi
mov eax, dword [eax + 8]
mov dword [ebp - 0xd4], eax
jne 0x40313e
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov esi, dword [0x4089dc]
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_Cant_open_input_file__s:_s._n
jmp 0x403396
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov esi, dword [0x4089dc]
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_Cant_open_input_file__s:__s._n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [0x408184]
test eax, eax
jg 0x4031f1
mov dword [0x408184], 1
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x70]
mov dword [esp + 4], eax
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__stat64
mov eax, dword [ebp - 0x60]
and eax, 0xf000
cmp eax, 0x4000
jne 0x402f1b
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 4], str._s:_Input_file__s_is_a_directory._n
mov dword [esp + 8], ebx
jmp 0x4035b0
mov eax, 0x408e20
call fcn.00401930
test al, al
je 0x403437
cmp byte [0x4089ca], 0
je 0x4035e5
mov dword [esp], 0x408e20
call sub.cygwin1.dll_remove
cmp dword [0x4089d8], 3
jne 0x402f4f
cmp byte [0x4089ca], 0
je 0x4034e0
mov dword [esp + 4], 0x408020
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__stat64
test eax, eax
je 0x402f4f
call fcn.00401a60
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 0x10], 0x408e20
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 8], ebx
mov dword [esp + 4], str._s:_Cant_guess_original_name_for__s____using__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x402f42
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 4], str._s:__s_is_not_a_bzip2_file._n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x4031f1
lea eax, [ebp - 0xd0]
mov dword [esp + 4], eax
mov dword [esp], 0x4085c0
call sub.cygwin1.dll__lstat64
test eax, eax
jne 0x4035d0
movzx eax, word [ebp - 0xbc]
lea edi, [eax - 1]
test edi, edi
jle 0x4035d0
cmp edi, 1
mov eax, 0x4065b1
mov esi, dword [0x4089dc]
mov ebx, 0x4065b0
cmovne ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_Input_file__s_has__d_other_link_s._n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [0x408184]
test eax, eax
jg 0x4031f1
jmp 0x4033ae
mov dword [0x408184], 2
jmp 0x40322f
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str._s:_I_wont_read_compressed_data_from_a_terminal._n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str._s:_For_help__type:___s___help._n
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, dword [0x408184]
test eax, eax
jg 0x4031f1
jmp 0x4033ae
cmp dword [0x4089d8], 3
je 0x403451
lea esi, [esi]
jmp 0x402f4f
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0x408e20
mov dword [esp + 4], str._s:_Output_file__s_already_exists._n
mov dword [esp + 8], ebx
jmp 0x4035b0
mov eax, str.uncompress:_bad_modes_n
call fcn.004017a0
mov dword [esp], 0x408e20
call sub.cygwin1.dll_remove
test eax, eax
je 0x40321b
jmp 0x40346d
mov eax, 0x408e20
call fcn.00402120
cmp byte [0x409238], 0
mov byte [0x408180], 0
jne 0x4031b8
mov dword [esp], 0x4085c0
call sub.cygwin1.dll_remove
test eax, eax
je 0x4031b8
jmp 0x40346d
mov esi, esi
lea edi, [edi]
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov esi, dword [0x4089dc]
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0x408e20
mov dword [esp + 8], esi
mov dword [esp + 4], str._s:_Cant_create_output_file__s:__s._n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
test edi, edi
je 0x4030f3
mov dword [esp], edi
call sub.cygwin1.dll_fclose
nop
jmp 0x4030f3
mov ebx, dword [0x4089dc]
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0x4085c0
mov dword [esp + 4], str._s:_Input_file__s_is_not_a_normal_file._n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
jmp 0x4030f3