Function at 0x421520
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
lea eax, [esp + 0x54]
mov ebx, dword [esp + 0x90]
call fcn.0041d3b0
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4216f8
cmp dword [ebx], 1
jle 0x42157f
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x58]
test ecx, ecx
je 0x4218b8
mov eax, dword [esp + 0x94]
mov edx, dword [eax + 0x4c]
test edx, edx
je 0x421920
mov dword [esp + 0x34], 0
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx]
jge 0x42161b
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x60], edi
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x68], esi
mov dword [esp], ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov eax, ebx
call fcn.00420380
test eax, eax
jne 0x421690
mov eax, dword [ebx + 0xc]
add dword [ebx + 0x10], 1
add eax, 1
mov dword [ebx + 0xc], eax
cmp dword [ebx], eax
jg 0x4215a0
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x4216b7
lea esi, [esi]
mov edx, dword [ebx + 0x10]
test edx, edx
mov dword [esp + 0x38], edx
jle 0x421674
cmp dword [ebx], 1
jle 0x421674
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x421674
cmp dword [0x42601c], 1
jle 0x421674
call sub.cygwin1.dll___getreent
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str._d_files_decompressed_:__6zu_bytes_total__n
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, ebp
mov ecx, esi
mov edx, edi
call fcn.00420510
mov eax, dword [esp + 0x34]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
or dword [esp + 0x34], eax
mov eax, dword [ebx + 0xc]
add eax, 1
mov dword [ebx + 0xc], eax
cmp eax, dword [ebx]
jl 0x4215a0
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
jne 0x421630
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sub.cygwin1.dll_fclose
test eax, eax
je 0x421630
cmp dword [0x42601c], 0
jg 0x421b8c
cmp dword [0x42601c], 4
jg 0x421bbd
mov dword [esp], 0x48
call sub.cygwin1.dll_exit
lea esi, [esi]
mov edx, dword [esp + 0x9c]
test edx, edx
je 0x421723
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0041c2c0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx]
mov dword [esp + 0x34], 0
cmp edx, eax
jle 0x421854
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], ebp
jmp 0x421809
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0041c220
mov edx, eax
test eax, eax
je 0x421880
mov dword [esp + 0x44], eax
mov eax, edi
call fcn.0041e400
mov edx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov dword [esp], edx
call sub.cygwin1.dll_free
mov eax, dword [esp + 0x40]
test eax, eax
je 0x421831
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x20], edi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x10], eax
mov eax, ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], ebp
call fcn.00420380
test eax, eax
jne 0x4217f6
add dword [ebx + 0x10], 1
or dword [esp + 0x34], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx]
add eax, 1
mov dword [ebx + 0xc], eax
cmp eax, edx
jge 0x421848
mov edi, dword [esp + 0x98]
mov edi, dword [edi + eax*4]
test esi, esi
jne 0x421750
mov edx, dword [esp + 0xa0]
mov eax, edi
call fcn.0041e400
test eax, eax
jne 0x42178d
mov dword [esp + 0x34], 1
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx]
add eax, 1
mov dword [ebx + 0xc], eax
cmp eax, edx
jl 0x421809
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x421630
mov eax, dword [esp + 0x98]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00421030
jmp 0x421630
cmp dword [0x42601c], 1
jle 0x421831
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], str.zstd:___output_dir_mirror_cannot_decompress__s_into__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp + 0x34], 1
jmp 0x421839
mov eax, dword [0x42601c]
cmp eax, 1
jg 0x421970
mov edx, dword [esp + 0x94]
mov edx, dword [edx + 0x54]
test edx, edx
je 0x42157f
cmp eax, 1
jne 0x421900
call sub.cygwin1.dll___getreent
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], str.zstd:_Aborting..._not_deleting_files_and_processing_into_dst:__s_n
mov dword [esp + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov eax, ebp
mov ecx, esi
mov edx, edi
call fcn.00420510
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], 0x1b6
xor ecx, ecx
mov dword [esp], eax
mov eax, ebx
call fcn.0041d010
mov dword [esp + 0x38], eax
test eax, eax
jne 0x421591
cmp dword [0x42601c], 0
jg 0x421a9c
cmp dword [0x42601c], 4
jg 0x421acd
mov dword [esp], 0x13
call sub.cygwin1.dll_exit
nop
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], str._stdout_
mov dword [esp], eax
call fcn.00423288
test eax, eax
je 0x421a36
call sub.cygwin1.dll___getreent
mov edx, dword [esp + 0xa4]
mov dword [esp + 4], str.zstd:_WARNING:_all_input_files_will_be_processed_and_concatenated_into_a_single_output_file:__s__n
mov dword [esp + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 1
jle 0x4219e3
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x48
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.The_concatenated_output_CANNOT_regenerate_the_original_directory_tree.__n
call sub.cygwin1.dll_fwrite
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 0x54]
test eax, eax
je 0x42157f
mov ecx, dword [ebx + 8]
mov eax, dword [0x42601c]
test ecx, ecx
je 0x421a63
test eax, eax
jle 0x421900
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4d
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.Aborting._Use__f_if_you_really_want_to_delete_the_files_and_output_to_stdout_n
call sub.cygwin1.dll_fwrite
jmp 0x421900
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x50
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.zstd:_WARNING:_all_input_files_will_be_processed_and_concatenated_into_stdout.__n
call sub.cygwin1.dll_fwrite
jmp 0x4219b2
cmp eax, 1
jle 0x42157f
mov eax, dword [ebx + 4]
mov dword [esp + 8], 0x429c46
mov dword [esp + 4], str.Aborting...
mov dword [esp + 0xc], eax
mov dword [esp], str.This_is_a_destructive_operation._Proceed___y_n_:
call fcn.0041b0e0
test eax, eax
je 0x42157f
jmp 0x421900
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.zstd:
call sub.cygwin1.dll_fwrite
cmp dword [0x42601c], 4
jle 0x421af5
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0xb3e
mov dword [esp + 8], str.fileio.c
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x421963
call sub.cygwin1.dll___getreent
mov dword [esp + 8], 0x13
mov dword [esp + 4], str.error__i_:
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x421963
call sub.cygwin1.dll___getreent
mov esi, dword [esp + 0xa4]
mov dword [esp + 4], str.cannot_open__s
mov dword [esp + 8], esi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x421963
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 0x429bfd
call sub.cygwin1.dll_fwrite
jmp 0x421963
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], str.zstd:
call sub.cygwin1.dll_fwrite
cmp dword [0x42601c], 4
jle 0x421be5
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], 0xb46
mov dword [esp + 8], str.fileio.c
mov dword [esp + 4], str.Error_defined_at__s__line__i_:__n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x4216e5
call sub.cygwin1.dll___getreent
mov dword [esp + 8], 0x48
mov dword [esp + 4], str.error__i_:
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x4216e5
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_strerror
mov ebx, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Write_error_:__s_:_cannot_properly_close_output_file
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp dword [0x42601c], 0
jle 0x4216e5
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp + 0xc], eax
mov dword [esp], 0x429bfd
call sub.cygwin1.dll_fwrite
jmp 0x4216e5