Function at 0x4acd10
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov eax, dword [0x5a6008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x622d54]
push ebx
push esi
push edi
mov dword [ebp - 0x80], eax
mov eax, dword [0x623d80]
push 0x560f28
push 2
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x8c], 0
call fcn.005259ae
push 0
push 0x622ce0
mov dword [0x5a7360], 1
mov dword [0x5d77cc], 0
mov dword [0x5d77c8], 0
mov dword [0x5d77c0], 0
mov dword [0x5d77d8], 0
mov dword [0x5d77d4], 0
mov dword [0x5d77e0], 0
mov dword [0x5d77e4], 0
mov dword [0x5d77dc], 0
mov dword [0x622cd0], 0xffffffff
mov dword [0x5d77c4], 0
mov dword [0x622cc8], 0
mov dword [0x5b5e70], 0
mov dword [0x5b5e44], 0
mov dword [0x5a6af8], 1
mov dword [0x5a6ae4], 0xffffffff
mov dword [0x5b5e6c], 0
mov dword [0x5b5e58], 0
mov dword [0x5b5e78], 0
mov dword [0x5b5e68], 0
mov dword [0x5a6ae8], 6
mov dword [0x5b5e50], 0
mov dword [0x5b5e40], 0
mov dword [0x5b5e3c], 0
mov dword [0x5b5e84], 0
mov dword [0x5b5e5c], 0
mov dword [0x5a6aec], 1
mov dword [0x5b5e38], 0
mov dword [0x5a6adc], 1
mov dword [0x5a6af4], 1
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0x59c2d8
mov dword [0x5b5e80], 0
mov dword [0x5b5e54], 0
mov dword [0x5b5e88], 0
mov dword [0x5a6ae0], 0x5b5e88
mov dword [0x5b5e64], 0
mov dword [0x5b5e7c], 0
mov dword [0x5b5e60], 0
mov dword [0x5b5e4c], 0
mov dword [ebp - 0x84], 0
call fcn.0053eb60
add esp, 0x10
test eax, eax
jne 0x4ae19e
push 1
call fcn.00523ead
add esp, 4
mov dword [0x622cbc], eax
push 0
call fcn.00523ead
add esp, 4
mov dword [ebp - 0x74], eax
xor ecx, ecx
nop
mov byte [ecx + 0x622620], cl
mov byte [ecx + 0x622740], cl
inc ecx
cmp ecx, 0x100
jb 0x4acf20
mov ecx, 0x61
nop word [eax + eax]
lea eax, [ecx - 0x20]
mov byte [ecx + 0x622740], al
inc ecx
cmp ecx, 0x7a
jbe 0x4acf40
mov ecx, 0x41
lea eax, [ecx + 0x20]
mov byte [ecx + 0x622620], al
inc ecx
cmp ecx, 0x5a
jbe 0x4acf54
push 0x59b88c
call fcn.00527493
add esp, 4
call fcn.005271ad
mov esi, dword [ebp - 0x80]
xor ecx, ecx
mov edi, dword [ebp - 0xa8]
xor eax, eax
mov dword [ebp - 0x70], ecx
mov edx, esi
mov ecx, edi
mov dword [0x5d77c4], 0
mov dword [0x622cb4], 0
xor ebx, ebx
mov dword [0x5d77d0], 0
mov dword [ebp - 0x6c], eax
call fcn.004ac930
test eax, eax
jne 0x4ae19e
mov eax, 1
cmp edi, eax
mov dword [ebp - 0x78], eax
mov edi, dword [ebp - 0x8c]
mov edx, eax
jle 0x4adad3
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x7c], edi
mov esi, dword [esi + eax*4]
cmp byte [esi], 0x2d
jne 0x4ad575
mov al, byte [esi + 1]
lea edi, [esi + 1]
mov dword [ebp - 0x90], edi
test al, al
je 0x4ad4bc
movsx ecx, al
lea eax, [ecx - 0x21]
cmp eax, 0x59
ja case.0x4ad016.34
movzx eax, byte [eax + 0x4af4cc]
jmp dword [eax*4 + 0x4af43c]
mov dword [0x5a6ae4], 0
mov dword [0x5a6ae8], 0
jmp case.0x4ad016.112
lea eax, [ecx - 0x30]
mov dword [0x5a6ae8], eax
jmp case.0x4ad016.112
mov dword [0x5b5e68], 1
jmp case.0x4ad016.112
mov dword [0x5d77e4], 1
test ebx, ebx
jne 0x4af0c2
mov ebx, 1
jmp case.0x4ad016.112
mov dword [0x5d77cc], 1
jmp case.0x4ad016.112
cmp dword [0x5a7360], 1
jne 0x4af18b
mov dword [0x5a7360], 0x10000
jmp case.0x4ad016.112
mov dword [0x5a6aec], 0
jmp case.0x4ad016.112
cmp dword [0x5b5e80], 0
jne case.0x4ad016.112
push 0x51
call fcn.00517363
add esp, 4
mov dword [0x5b5e80], eax
test eax, eax
je 0x4af133
push dword [0x622cb4]
push str.Enter_password:
push 0x51
push eax
mov eax, dword [0x5b5e30]
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x4af11d
mov eax, dword [0x5b5e80]
cmp byte [eax], 0
je 0x4af10e
push 0x51
call fcn.00517363
mov edi, eax
add esp, 4
test edi, edi
je 0x4af0ff
push dword [0x622cb4]
mov ecx, dword [0x5b5e30]
push str.Verify_password:
push 0x51
push edi
mov eax, dword [ecx + 8]
call eax
mov esi, eax
test esi, esi
je 0x4ad136
cmp esi, 0xffffffff
jne 0x4af0d1
cmp esi, 0xffffffff
jne 0x4ad13f
xor esi, esi
jmp 0x4ad16b
mov eax, dword [0x5b5e80]
mov ecx, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ad166
test dl, dl
je 0x4ad162
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ad166
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ad146
xor esi, esi
jmp 0x4ad16b
sbb esi, esi
or esi, 1
push edi
call fcn.00515679
add esp, 4
test esi, esi
jne 0x4af0f0
mov edi, dword [ebp - 0x90]
jmp case.0x4ad016.112
inc dword [0x5b5e78]
jmp case.0x4ad016.112
cmp dword [0x5a7360], 1
jne 0x4af18b
mov dword [0x5a7360], 3
jmp case.0x4ad016.112
mov edx, 1
mov dword [ebp - 0x70], edx
jmp 0x4ad470
mov dword [0x5a6af8], 0
jmp case.0x4ad016.112
mov dword [0x5d77dc], 1
jmp case.0x4ad016.112
mov dword [0x5b5e6c], 1
jmp case.0x4ad016.112
inc dword [0x5b5e50]
jmp case.0x4ad016.112
mov eax, dword [0x5b5e44]
inc eax
mov dword [0x5b5e44], eax
cmp eax, 2
je 0x4af0b3
jmp case.0x4ad016.112
inc dword [ebp - 0x84]
jmp case.0x4ad016.112
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
jmp case.0x4ad016.112
mov dword [0x5d77c0], 1
jmp case.0x4ad016.112
test ebx, ebx
jne 0x4af151
cmp dword [0x5b5e80], ebx
jne 0x4af142
mov ebx, 7
jmp case.0x4ad016.112
cmp dword [0x5b5e58], 0
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
mov dword [0x5a6adc], 0
je 0x4ad476
dec dword [0x5b5e58]
jmp 0x4ad476
cmp dword [0x5b5e70], 2
je 0x4af160
mov dword [0x5b5e70], 1
jmp case.0x4ad016.112
cmp dword [0x5b5e70], 1
je 0x4af160
mov dword [0x5b5e70], 2
jmp case.0x4ad016.112
mov dword [0x5b5e84], 1
jmp case.0x4ad016.112
cmp byte [edi + 1], 0x74
lea eax, [edi + 1]
mov ecx, 0x5d77d4
cmove edi, eax
mov eax, 0x5d77d8
cmove eax, ecx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x98], eax
cmp dword [eax], 0
jne 0x4af16f
mov ebx, 2
jmp case.0x4ad016.112
mov dword [0x5d77e0], 1
jmp case.0x4ad016.112
cmp dword [0x5a7360], 1
jne 0x4af18b
mov dword [0x5a7360], 2
jmp case.0x4ad016.112
inc dword [0x5b5e58]
mov dword [0x5a6adc], 1
jmp case.0x4ad016.112
cmp byte [edi + 1], 0x40
jne 0x4ad34b
cmp byte [edi + 2], 0
jne 0x4ad499
cmp dword [0x622cb4], 0
je 0x4af19a
mov ebx, 5
jmp case.0x4ad016.112
mov dword [0x5d77c8], 1
jmp case.0x4ad016.112
mov dword [0x5b5e5c], 1
jmp case.0x4ad016.112
xor esi, esi
mov dword [ebp - 0x74], esi
cmp ebx, 3
jge 0x4ad39a
mov edx, dword [ebp - 0x70]
mov ecx, 1
mov dword [ebp - 0x6c], ecx
jmp 0x4ad476
push 0
call fcn.00523ead
add esp, 4
mov edx, eax
call fcn.004af560
mov esi, eax
test esi, esi
je case.0x4ad016.112
mov ebx, 4
nop word [eax + eax]
mov eax, dword [0x5a7360]
cmp eax, 1
je 0x4ad3e2
cmp eax, 2
je 0x4ad3e2
push 0xffffffffffffffff
mov edx, 1
mov ecx, esi
call fcn.004b1e40
add esp, 4
jmp 0x4ad3e9
mov ecx, esi
call fcn.004b1c40
test eax, eax
je 0x4ad43a
cmp eax, 0xffffffff
jne 0x4af1c1
cmp dword [ebp - 0x84], 0
jne 0x4af1a9
cmp dword [0x5a6adc], 0
je 0x4ad43a
push esi
push str.name_not_matched:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
push 0
call fcn.00523ead
add esp, 4
mov edx, eax
call fcn.004af560
mov esi, eax
test esi, esi
jne 0x4ad3c0
jmp case.0x4ad016.112
mov dword [0x5a6af4], 0
jmp case.0x4ad016.112
mov dword [0x5b5e3c], 1
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x6c]
mov al, byte [edi + 1]
inc edi
mov dword [ebp - 0x90], edi
test al, al
jne 0x4ad000
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], ecx
jmp 0x4ad7d5
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x78], eax
cmp eax, dword [ebp - 0xa8]
jge 0x4adad3
mov esi, dword [ebp - 0x80]
mov edx, 1
jmp 0x4acfe0
lea eax, [ebx - 1]
cmp eax, 3
ja case.default.0x4ad4c8
jmp dword [eax*4 + 0x4af528]
xor eax, eax
mov dword [ebp - 0x74], eax
mov eax, dword [0x5a7360]
cmp eax, 1
je 0x4ad4f1
cmp eax, 2
je 0x4ad4f1
push 0xffffffffffffffff
mov ecx, esi
call fcn.004b1e40
add esp, 4
jmp 0x4ad4f8
mov ecx, esi
call fcn.004b1c40
test eax, eax
je 0x4ad553
cmp eax, 0xffffffff
jne 0x4af20c
cmp dword [ebp - 0x84], 0
jne 0x4af1ec
cmp dword [0x5a6adc], 0
mov edi, dword [ebp - 0x78]
je 0x4ad556
mov esi, dword [ebp - 0x80]
push dword [esi + edi*4]
push str.name_not_matched:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
jmp 0x4ad556
mov edi, dword [ebp - 0x78]
cmp ebx, 3
jne case.default.0x4ad4c8
mov eax, dword [ebp - 0x78]
mov ebx, 4
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x8c], edi
jmp 0x4ad49f
cmp dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
jne 0x4ad589
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], esi
jmp case.0x4ad5a4.5
cmp ebx, 5
je 0x4adae5
cmp ebx, 6
je 0x4ada70
cmp ebx, 7
ja case.0x4ad5a4.5
jmp dword [ebx*4 + 0x4af538]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ad5b0
sub ecx, edx
lea eax, [ecx + 5]
push eax
call fcn.00517363
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4ad699
mov ecx, ebx
sub ecx, esi
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x4ad5d3
mov al, byte [ebx]
mov esi, ebx
test al, al
je 0x4ad606
cmp al, 0x5c
jne 0x4ad5ef
mov byte [esi], 0x2f
call fcn.005292a9
push eax
push esi
call fcn.00529122
add esi, eax
add esp, 8
mov al, byte [esi]
test al, al
jne 0x4ad5e8
cmp dword [0x5b5e68], 0
jne 0x4ad699
mov cl, byte [ebx]
xor edi, edi
mov esi, ebx
test cl, cl
je 0x4ad642
nop dword [eax]
cmp cl, 0x2f
mov eax, esi
cmovne eax, edi
mov edi, eax
call fcn.005292a9
push eax
push esi
call fcn.00529122
mov cl, byte [esi + eax]
add esi, eax
add esp, 8
test cl, cl
jne 0x4ad620
mov esi, ebx
test edi, edi
je 0x4ad64b
lea esi, [edi + 1]
mov cl, byte [esi]
xor edi, edi
test cl, cl
je 0x4ad675
cmp cl, 0x2e
mov eax, esi
cmovne eax, edi
mov edi, eax
call fcn.005292a9
push eax
push esi
call fcn.00529122
mov cl, byte [esi + eax]
add esi, eax
add esp, 8
test cl, cl
jne 0x4ad653
test edi, edi
jne 0x4ad699
lea ecx, [ebx - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4ad680
mov eax, dword [str..zip]
mov dword [ecx], eax
mov al, byte [0x59327c]
mov byte [ecx + 4], al
mov dword [0x622cb4], ebx
test ebx, ebx
je 0x4af2dc
mov dword [0x5b5e48], 0
xor edi, edi
cmp byte [ebx], 0
mov dword [0x622ccc], 0
mov dword [0x622cc0], 0
mov dword [0x622840], 0
je 0x4ad7b3
mov ecx, 0x59bd38
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ad701
test dl, dl
je 0x4ad6fd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ad701
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ad6e1
xor eax, eax
jmp 0x4ad706
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ad7b3
push 0x592700
push ebx
call fcn.0052394f
mov esi, eax
add esp, 8
test esi, esi
je 0x4ad7b3
cmp dword [0x5b5e78], edi
je 0x4ad73f
cmp dword [0x5b5e68], edi
jne 0x4ad73f
mov ecx, esi
call fcn.004b3130
jmp 0x4ad746
mov ecx, esi
call fcn.004b39b0
push esi
mov edi, eax
call fcn.00523a8b
mov ecx, dword [0x622cc0]
add esp, 4
test ecx, ecx
je 0x4ad7b3
lea edx, [ecx*4]
mov eax, edx
shr eax, 2
cmp eax, ecx
jne 0x4af23a
push edx
call fcn.00517363
mov edx, eax
mov dword [0x622cb8], eax
add esp, 4
test edx, edx
je 0x4af23a
mov ecx, dword [0x5b5e48]
test ecx, ecx
je 0x4ad79d
mov dword [edx], ecx
lea edx, [edx + 4]
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
jne 0x4ad791
push 0x4b2e20
push 4
push dword [0x622cc0]
push eax
call fcn.005156a0
add esp, 0x10
test edi, edi
jne 0x4af23f
cmp dword [0x5b5e70], 2
mov ebx, 3
mov eax, 6
cmove ebx, eax
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x6c]
cmp ebx, 3
je 0x4ad7e3
cmp ebx, 6
jne 0x4ad49c
test ecx, ecx
je 0x4ad49c
push 0
call fcn.00523ead
add esp, 4
mov edx, eax
call fcn.004af560
mov esi, eax
test esi, esi
je 0x4ada51
mov edi, dword [ebp - 0x78]
mov ebx, 4
inc edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x8c], edi
nop dword [eax + eax]
mov eax, dword [0x5a7360]
cmp eax, 1
je 0x4ad9dc
cmp eax, 2
je 0x4ad9dc
push 0xffffffffffffffff
mov edx, 1
mov ecx, esi
call fcn.004b1e40
add esp, 4
jmp 0x4ad9e3
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4ad850
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00517363
mov ecx, eax
add esp, 4
mov dword [0x5b5e54], ecx
test ecx, ecx
je 0x4af2dc
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + edx*4]
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x4ad880
mov eax, dword [ebp - 0x78]
xor ebx, ebx
cmp dword [0x622cb4], ebx
je 0x4ad49f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4ad5a4.5
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xa4]
push eax
push str._4d__2d__2d
push esi
call fcn.004ac310
add esp, 0x14
cmp eax, 3
je 0x4ad908
mov edx, dword [ebp - 0x78]
lea eax, [ebp - 0xa4]
mov esi, dword [ebp - 0x80]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x9c]
push eax
push str._2d_2d_4d
push dword [esi + edx*4]
call fcn.004ac310
add esp, 0x14
cmp eax, 3
jne 0x4af24c
mov edx, dword [ebp - 0x9c]
lea eax, [edx - 1]
cmp eax, 0xb
ja 0x4af24c
mov ecx, dword [ebp - 0xa0]
lea eax, [ecx - 1]
cmp eax, 0x1e
ja 0x4af24c
mov eax, dword [ebp - 0xa4]
cmp eax, 0x7bc
jge 0x4ad940
mov eax, 0x210000
jmp 0x4ad950
add eax, 0xffffffc4
shl eax, 4
or eax, edx
shl eax, 5
or eax, ecx
shl eax, 0x10
mov ecx, dword [ebp - 0x88]
xor ebx, ebx
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
cmp dword [0x622cb4], ebx
je 0x4ad49f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4ad5a4.5
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4ad980
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00517363
mov ecx, eax
add esp, 4
mov dword [0x5b5e80], ecx
test ecx, ecx
je 0x4af2dc
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + edx*4]
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x4ad9b0
mov eax, dword [ebp - 0x78]
xor ebx, ebx
cmp dword [0x622cb4], ebx
je 0x4ad49f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4ad5a4.5
mov ecx, esi
call fcn.004b1c40
test eax, eax
je 0x4ada34
cmp eax, 0xffffffff
jne 0x4af1c1
cmp dword [ebp - 0x84], 0
jne 0x4af1a9
cmp dword [0x5a6adc], 0
je 0x4ada34
push esi
push str.name_not_matched:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
push 0
call fcn.00523ead
add esp, 4
mov edx, eax
call fcn.004af560
mov esi, eax
test esi, esi
jne 0x4ad820
jmp 0x4ada54
mov edi, dword [ebp - 0x7c]
xor eax, eax
cmp dword [0x5b5e70], 2
mov dword [ebp - 0x6c], eax
mov eax, 6
cmove ebx, eax
mov eax, dword [ebp - 0x78]
jmp 0x4ad49f
mov eax, dword [0x5a7360]
cmp eax, 1
je 0x4ada90
cmp eax, 2
je 0x4ada90
push 0xffffffffffffffff
mov ecx, 0x594850
call fcn.004b1e40
add esp, 4
jmp 0x4ada9a
mov ecx, 0x594850
call fcn.004b1c40
test eax, eax
je 0x4adac7
cmp eax, 0xffffffff
jne 0x4af20c
cmp dword [ebp - 0x84], 0
mov ecx, str.name_not_matched:
mov esi, dword [ebp - 0x80]
jne 0x4af26d
mov edx, dword [ebp - 0x78]
mov edx, dword [esi + edx*4]
call fcn.004ac8f0
test edi, edi
cmove edi, dword [ebp - 0x78]
mov dword [ebp - 0x8c], edi
cmp ebx, 7
je 0x4af0a4
cmp ebx, 1
je 0x4af0a4
mov ecx, dword [0x5b5e7c]
test ecx, ecx
je 0x4adb0f
test edi, edi
jne 0x4adb0f
cmp ebx, 3
jl 0x4af285
mov eax, dword [0x5a7360]
cmp eax, 2
je 0x4adb0f
cmp eax, 3
jne 0x4af285
cmp ebx, 4
je 0x4adb56
test edi, edi
jne 0x4adb56
mov eax, dword [0x5a7360]
cmp eax, 2
je 0x4adb27
cmp eax, 3
jne 0x4adb56
mov esi, dword [0x5b5e48]
test esi, esi
je 0x4adb56
test ecx, ecx
je 0x4adb47
mov ecx, dword [esi + 0x4c]
xor edx, edx
call fcn.004af950
mov ecx, dword [0x5b5e7c]
jmp 0x4adb4c
mov eax, 1
mov dword [esi + 0x50], eax
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x4adb31
call fcn.004af6d0
test eax, eax
je 0x4adb6d
cmp eax, 0x10
jne 0x4af2a3
jmp 0x4af294
cmp dword [0x622cc0], 0
je 0x4adb84
push dword [0x622cb8]
call fcn.00515679
add esp, 4
mov eax, dword [str..Z:.zip:.zoo:.arc:.lzh:.arj]
test eax, eax
je 0x4af2af
cmp dword [0x5a6ae8], 9
je 0x4adbf9
mov edx, 0x594dd8
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4adbc1
test bl, bl
je 0x4adbbd
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4adbc1
add ecx, 2
add edx, 2
test bl, bl
jne 0x4adba1
xor ecx, ecx
jmp 0x4adbc6
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x4adbf9
mov ecx, 0x58f878
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4adbf0
test dl, dl
je 0x4adbec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4adbf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4adbd0
xor eax, eax
jmp 0x4adbf5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4adc03
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
cmp dword [0x5a7360], 0x10000
jne 0x4adca6
cmp dword [0x5a6ae4], 0xffffffff
jne 0x4adc49
cmp dword [0x5b5e44], 0
jne 0x4adc49
cmp dword [0x5b5e70], 0
jne 0x4adc49
cmp dword [0x5b5e80], 0
jne 0x4adc49
cmp dword [0x5d77cc], 0
jne 0x4adc49
cmp dword [0x5d77c8], 0
je 0x4adca6
mov edx, 0x560f28
mov ecx, str.invalid_option_s__used_with__d__ignored.
call fcn.004ac8f0
mov eax, dword [0x5b5e80]
mov dword [0x5a6ae4], 0xffffffff
mov dword [0x5b5e44], 0
mov dword [0x5b5e70], 0
test eax, eax
je 0x4adc92
push eax
call fcn.00515679
add esp, 4
mov dword [0x5b5e80], 0
mov dword [0x5d77cc], 0
mov dword [0x5d77c8], 0
cmp dword [0x5b5e38], 0
je 0x4adcd1
cmp dword [0x5b5e6c], 0
je 0x4adcd1
mov edx, 0x560f28
mov ecx, str.cant_use__y_with__k___y_ignored
call fcn.004ac8f0
mov dword [0x5b5e38], 0
cmp dword [0x5b5e78], 0
je 0x4adcf2
cmp dword [0x5b5e68], 0
je 0x4adcf2
mov edx, 0x560f28
mov ecx, str.cant_use__F_with__A___F_ignored
call fcn.004ac8f0
cmp dword [0x5d77e0], 0
mov edi, dword [0x622cb4]
je 0x4add4b
mov ecx, 0x59bd38
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4add28
test dl, dl
je 0x4add24
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4add28
add eax, 2
add ecx, 2
test dl, dl
jne 0x4add08
xor eax, eax
jmp 0x4add2d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4add4b
mov edx, 0x560f28
mov dword [0x5d77e0], eax
mov ecx, str.cant_use__T_on_stdout___T_ignored
call fcn.004ac8f0
mov edi, dword [0x622cb4]
cmp dword [0x5a7360], 1
jne 0x4add5b
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4add92
mov ecx, 0x59bd38
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4add82
test dl, dl
je 0x4add7e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4add82
add eax, 2
add ecx, 2
test dl, dl
jne 0x4add62
xor eax, eax
jmp 0x4add87
sbb eax, eax
or eax, 1
test eax, eax
je 0x4af2be
mov eax, dword [ebp - 0x70]
cmp dword [0x622cc0], 0
jne 0x4addba
cmp dword [0x5a7360], 1
jne 0x4adda8
test eax, eax
je 0x4addba
mov edx, str._not_found_or_empty
mov ecx, edi
call fcn.004ac8f0
mov edi, dword [0x622cb4]
mov eax, dword [ebp - 0x84]
cmp eax, 1
je 0x4af2cd
mov ecx, 1
cmovg eax, ecx
cmp dword [0x5b5e54], 0
mov dword [ebp - 0x84], eax
jne 0x4ade6f
lea edx, [ecx + 0x2e]
mov ecx, edi
call fcn.004b0810
test eax, eax
jne 0x4ade1e
mov ecx, dword [0x622cb4]
lea edx, [eax + 0x5c]
call fcn.004b0810
test eax, eax
jne 0x4ade1e
mov ecx, dword [0x622cb4]
lea edx, [eax + 0x3a]
call fcn.004b0810
test eax, eax
jne 0x4ade1e
mov edi, dword [0x622cb4]
jmp 0x4ade6f
cmp byte [eax], 0x3a
lea esi, [eax + 1]
cmovne esi, eax
mov eax, esi
sub eax, dword [0x622cb4]
inc eax
push eax
call fcn.00517363
mov ecx, eax
add esp, 4
mov dword [0x5b5e54], ecx
test ecx, ecx
je 0x4af2dc
mov edi, dword [0x622cb4]
mov edx, eax
movsx ebx, byte [esi]
mov ecx, edi
mov byte [esi], 0
sub edx, edi
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ade60
mov byte [esi], bl
mov esi, dword [0x5b5e48]
mov dword [ebp - 0x7c], 0
test esi, esi
je 0x4ae060
mov ebx, str.missing_or_early
nop dword [eax]
cmp dword [esi + 0x50], 0
je 0x4ae049
cmp dword [0x5a7360], 0x10000
jne 0x4adf29
mov edi, dword [esi + 0x3c]
lea eax, [ebp - 0xc0]
mov edx, dword [esi + 0x1c]
mov ecx, edi
push eax
push 0
call fcn.004b4e70
add esp, 8
test eax, eax
jne 0x4adee6
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4adee6
mov ecx, dword [esi + 0x40]
cmp ecx, edi
je 0x4adee6
lea eax, [ebp - 0xc0]
push eax
push 1
call fcn.004b4e70
add esp, 8
test al, 1
je 0x4adef9
lea ecx, [ebp - 0xb8]
call fcn.004b0090
mov ecx, eax
jmp 0x4adefc
mov ecx, dword [esi + 8]
cmp ecx, dword [0x5d77d8]
jb 0x4adf1d
mov eax, dword [0x5d77d4]
test eax, eax
je 0x4ae015
cmp ecx, eax
jae 0x4adf1d
inc dword [ebp - 0x7c]
jmp 0x4ae049
mov dword [esi + 0x50], 0
jmp 0x4ae049
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0xd8]
push eax
push 0
xor edx, edx
call fcn.004b2750
mov edi, eax
add esp, 8
test edi, edi
je 0x4adfdc
cmp edi, dword [0x5d77d8]
jb 0x4adfdc
mov eax, dword [0x5d77d4]
test eax, eax
je 0x4adf66
cmp edi, eax
jae 0x4adfdc
mov eax, dword [0x5a7360]
cmp eax, 2
je 0x4adf79
cmp eax, 3
jne 0x4ae015
mov ebx, dword [esi + 0x3c]
lea eax, [ebp - 0xc0]
mov edx, dword [esi + 0x1c]
mov ecx, ebx
push eax
push 0
call fcn.004b4e70
add esp, 8
test eax, eax
jne 0x4adfb5
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4adfb5
mov ecx, dword [esi + 0x40]
cmp ecx, ebx
je 0x4adfb5
lea eax, [ebp - 0xc0]
push eax
push 1
call fcn.004b4e70
add esp, 8
test al, 1
je 0x4ae00b
mov eax, dword [ebp - 0xcc]
cmp eax, dword [ebp - 0xb4]
jg 0x4ae010
jl 0x4adfd7
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0xb8]
ja 0x4ae010
mov ebx, str.missing_or_early
mov eax, dword [0x5d77cc]
neg eax
sbb eax, eax
and eax, 2
mov dword [esi + 0x50], eax
test edi, edi
je 0x4ae01a
cmp edi, dword [0x5d77d8]
jb 0x4ae01a
mov eax, dword [0x5d77d4]
test eax, eax
je 0x4ae004
cmp edi, eax
jae 0x4ae01a
mov ecx, 1
jmp 0x4ae01c
cmp edi, dword [esi + 8]
jbe 0x4adfd7
mov ebx, str.missing_or_early
inc dword [ebp - 0x7c]
jmp 0x4ae049
xor ecx, ecx
cmp dword [0x5b5e58], 0
mov dword [esi + 0x54], ecx
je 0x4ae049
test ecx, ecx
mov eax, str.up_to_date
cmove eax, ebx
push eax
push dword [esi + 0x4c]
push str.zip_diagnostic:__s__s_n
push dword [0x622cbc]
call fcn.00452c30
add esp, 0x10
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x4ade90
mov edi, dword [0x622cb4]
mov esi, dword [0x5b5e48]
mov ebx, dword [0x5b5e88]
test ebx, ebx
je 0x4ae121
nop
mov eax, dword [0x5a7360]
cmp eax, 0x10000
je 0x4ae0fe
cmp eax, 3
je 0x4ae0fe
mov ecx, dword [ebx]
xor edx, edx
push 0
push 0
call fcn.004b2750
add esp, 8
test eax, eax
je 0x4ae0fe
cmp eax, dword [0x5d77d8]
jb 0x4ae0fe
mov ecx, dword [0x5d77d4]
test ecx, ecx
je 0x4ae0b3
cmp eax, ecx
jae 0x4ae0fe
mov edi, dword [0x622cb4]
mov edx, edi
mov ecx, dword [ebx + 8]
call fcn.004b0740
test eax, eax
jne 0x4ae0f9
mov ecx, 0x59bd38
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ae0f0
test dl, dl
je 0x4ae0ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ae0f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ae0d0
xor eax, eax
jmp 0x4ae0f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4ae0fe
mov ebx, dword [ebx + 0x14]
jmp 0x4ae10d
mov ecx, ebx
call fcn.004af5f0
mov edi, dword [0x622cb4]
mov ebx, eax
test ebx, ebx
jne 0x4ae070
mov ebx, dword [0x5b5e88]
mov esi, dword [0x5b5e48]
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x4ae1fe
test ebx, ebx
jne 0x4ae1fe
mov ecx, dword [0x5d77c0]
test esi, esi
je 0x4ae182
test ecx, ecx
jne 0x4ae1fe
cmp dword [0x5b5e78], ecx
jne 0x4ae1fe
cmp dword [0x5b5e68], ecx
jne 0x4ae1fe
cmp dword [0x5d77dc], ecx
jne 0x4ae1fe
cmp dword [0x5d77cc], ecx
jne 0x4ae1fe
cmp dword [0x5d77c8], ecx
jne 0x4ae1fe
cmp dword [0x5d77e0], 0
je 0x4ae1af
test esi, esi
jne 0x4ae197
cmp dword [0x622ccc], esi
je 0x4ae1af
xor ecx, ecx
call fcn.004ac4c0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00511339
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5a7360]
cmp eax, 2
je 0x4ae1f7
cmp eax, 3
je 0x4ae1f7
test esi, esi
jne 0x4af2f7
test ecx, ecx
jne 0x4af2eb
cmp dword [0x5b5e78], ecx
jne 0x4af2eb
cmp dword [0x5b5e68], ecx
jne 0x4af2eb
cmp dword [0x5d77dc], ecx
je 0x4af2f7
jmp 0x4af2eb
mov ecx, 0xc
jmp 0x4ae199
cmp dword [ebp - 0x70], 0
mov ebx, dword [0x622ccc]
je 0x4ae21f
test eax, eax
jne 0x4ae21f
test ebx, ebx
jne 0x4ae216
test esi, esi
je 0x4ae21f
mov dword [ebp - 0x78], 1
jmp 0x4ae226
mov dword [ebp - 0x78], 0
cmp dword [0x5b5e80], 0
je 0x4ae239
call fcn.004a4a60
mov dword [0x622cd4], eax
mov ecx, 0x59bd38
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ae260
test dl, dl
je 0x4ae25c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ae260
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ae240
xor eax, eax
jmp 0x4ae265
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ae316
cmp dword [0x5d77e4], 0
je 0x4ae282
test esi, esi
jne 0x4ae291
test ebx, ebx
je 0x4ae316
test esi, esi
jne 0x4ae291
test ebx, ebx
jne 0x4ae291
push 0x59c6f0
jmp 0x4ae296
push 0x59c6f4
push edi
call fcn.0052394f
add esp, 8
test eax, eax
je 0x4af303
push eax
call fcn.00523a8b
mov ecx, dword [0x622cb4]
lea edx, [ebp - 0x38]
add esp, 4
call fcn.004b0b70
test eax, eax
jne 0x4ae2ce
movzx eax, word [ebp - 0x32]
mov dword [ebp - 0x88], eax
jmp 0x4ae2d8
mov dword [ebp - 0x88], 0
mov esi, dword [0x5b5e48]
mov ebx, dword [0x622ccc]
test esi, esi
jne 0x4ae30e
test ebx, ebx
jne 0x4ae30e
push dword [0x622cb4]
call fcn.00529f58
mov edi, dword [0x622cb4]
add esp, 4
mov esi, dword [0x5b5e48]
mov ebx, dword [0x622ccc]
jmp 0x4ae320
mov edi, dword [0x622cb4]
jmp 0x4ae320
mov dword [ebp - 0x88], 0
xor eax, eax
mov ecx, 0x59bd38
cmp dword [0x5d77dc], eax
mov dword [ebp - 0x70], eax
cmovne ebx, eax
mov dword [0x622844], eax
mov dword [0x622ccc], ebx
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ae360
test dl, dl
je 0x4ae35c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ae360
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ae340
xor eax, eax
jmp 0x4ae365
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4ae41a
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.005264d3
add esp, 4
push eax
call fcn.00529fcd
add esp, 4
test eax, eax
jne 0x4af313
push 0x8000
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.005264d3
add esp, 4
push eax
call fcn.0052ad06
add esp, 8
push 0x59c6f0
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.005264d3
add esp, 4
push eax
call fcn.0053025f
mov ebx, eax
push 4
mov dword [ebp - 0x7c], ebx
mov dword [0x5d77d0], ebx
call fcn.00517363
add esp, 0xc
mov dword [0x5d77c4], eax
test eax, eax
je 0x4af370
mov ecx, 0x2d
mov word [eax], cx
push 0x4000
call fcn.00517363
add esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4af322
jmp 0x4ae57d
cmp dword [ebp - 0x78], 0
je 0x4ae470
push 0x59c6f4
push edi
call fcn.0052394f
mov ebx, eax
add esp, 8
mov dword [ebp - 0x7c], ebx
test ebx, ebx
je 0x4af332
mov eax, dword [0x622cb4]
push 0
push dword [0x622cc4]
mov dword [0x5d77c4], eax
push ebx
mov dword [0x5d77d0], ebx
call fcn.0052c2ba
add esp, 0xc
test eax, eax
jne 0x4af342
mov eax, dword [0x622cc4]
mov dword [0x622844], eax
jmp 0x4ae3fa
test esi, esi
jne 0x4ae478
test ebx, ebx
je 0x4ae491
push 0x592700
push edi
call fcn.0052394f
add esp, 8
mov dword [ebp - 0x70], eax
test eax, eax
je 0x4af360
mov ecx, dword [0x5b5e54]
test ecx, ecx
je 0x4ae508
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae4a2
sub ecx, edx
lea eax, [ecx + 0xc]
push eax
call fcn.00517363
mov esi, eax
add esp, 4
test esi, esi
je 0x4ae54a
mov ecx, dword [0x5b5e54]
mov edx, esi
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ae4d0
mov ecx, esi
call fcn.004b0790
cmp al, 0x2f
je 0x4ae51b
cmp al, 0x3a
je 0x4ae51b
cmp al, 0x5c
je 0x4ae51b
lea edi, [esi - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4ae4f3
mov ax, word [0x5980f4]
mov word [edi], ax
jmp 0x4ae51b
push 0xc
call fcn.00517363
mov esi, eax
add esp, 4
test esi, esi
je 0x4ae54a
mov byte [esi], 0
lea ecx, [esi - 1]
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4ae520
mov eax, dword [str.ziXXXXXX]
mov dword [ecx], eax
mov eax, dword [0x59c9d8]
mov dword [ecx + 4], eax
mov al, byte [0x59c9dc]
push esi
mov byte [ecx + 8], al
call fcn.00530373
add esp, 4
mov dword [0x5d77c4], eax
test eax, eax
je 0x4af370
push 0x59c6f0
push eax
call fcn.0052394f
mov ebx, eax
add esp, 8
mov dword [ebp - 0x7c], ebx
mov dword [0x5d77d0], ebx
test ebx, ebx
je 0x4af37f
jmp 0x4ae3fa
push 0x4000
push 0
push eax
push ebx
call fcn.0052c4b8
mov eax, dword [0x622cb4]
add esp, 0x10
mov ecx, 0x59bd38
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ae5b8
test dl, dl
je 0x4ae5b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4ae5b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4ae598
xor eax, eax
jmp 0x4ae5bd
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ae5f0
cmp dword [ebp - 0x78], 0
jne 0x4ae5f0
mov eax, dword [0x622ccc]
test eax, eax
je 0x4ae5eb
mov ecx, dword [ebp - 0x70]
mov edx, ebx
push eax
call fcn.004b01b0
add esp, 4
test eax, eax
jne 0x4af38f
mov eax, dword [0x622ccc]
mov dword [0x622844], eax
mov esi, dword [0x5b5e48]
xor eax, eax
mov dword [ebp - 0x90], eax
mov edi, 0x5b5e48
mov dword [ebp - 0x6c], edi
test esi, esi
je 0x4ae866
nop
cmp dword [esi + 0x50], 1
jne 0x4ae838
mov ecx, dword [0x5a7360]
cmp ecx, 0x10000
je 0x4ae784
cmp dword [0x5a6adc], 0
je 0x4ae666
mov eax, dword [esi + 0x4c]
push eax
cmp ecx, 3
jne 0x4ae645
push str.freshening:__s
jmp 0x4ae64a
push str.updating:__s
push dword [0x622cbc]
call fcn.00452c30
add esp, 0xc
push dword [0x622cbc]
call fcn.00529d6a
add esp, 4
mov edx, ebx
mov ecx, esi
call fcn.004b0d30
mov edi, eax
test edi, edi
je 0x4ae683
cmp edi, 0x12
je 0x4ae691
cmp edi, 0xffffffff
jne 0x4af3a6
cmp edi, 0x12
je 0x4ae691
cmp edi, 0xffffffff
jne 0x4ae856
cmp dword [0x5a6adc], 0
mov dword [ebp - 0x90], 1
je 0x4ae6bc
push 0x58f2c8
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
add esp, 8
cmp edi, 0x12
jne 0x4ae6ec
cmp dword [ebp - 0x84], 0
jne 0x4af3e8
push dword [esi + 0x4c]
call fcn.0052bfb5
add esp, 4
cmp dword [0x5a6adc], 0
je 0x4ae72a
push dword [esi + 0x4c]
push str.could_not_open_for_reading:
jmp 0x4ae702
cmp dword [0x5a6adc], 0
mov eax, dword [esi + 0x4c]
je 0x4ae764
push eax
push str.file_and_directory_with_the_same_name:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
cmp dword [0x5a6adc], 0
mov eax, dword [esi + 0x4c]
je 0x4ae764
push eax
push str.will_just_copy_entry_over:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
mov edx, dword [ebp - 0x70]
mov ecx, esi
push ebx
call fcn.004b4d90
mov edi, eax
add esp, 4
test edi, edi
jne 0x4af40c
mov dword [esi + 0x50], eax
jmp 0x4ae856
cmp dword [0x5a6adc], 0
je 0x4ae7b1
push dword [esi + 0x4c]
push str.deleting:__s_n
push dword [0x622cbc]
call fcn.00452c30
add esp, 0xc
push dword [0x622cbc]
call fcn.00529d6a
add esp, 4
mov eax, dword [0x5b5e30]
test eax, eax
je 0x4ae7d0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4ae7d0
push 0
push dword [esi + 0x4c]
call eax
test eax, eax
jne 0x4af42d
push dword [esi + 0x48]
mov ebx, dword [esi + 0x5c]
call fcn.00515679
add esp, 4
push dword [esi + 0x4c]
call fcn.00515679
add esp, 4
cmp dword [esi + 0x1c], 0
je 0x4ae7fa
push dword [esi + 0x3c]
call fcn.00515679
add esp, 4
cmp dword [esi + 0x20], 0
je 0x4ae811
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x4ae811
push eax
call fcn.00515679
add esp, 4
cmp dword [esi + 0x24], 0
je 0x4ae822
push dword [esi + 0x44]
call fcn.00515679
add esp, 4
push esi
call fcn.00515679
add esp, 4
mov dword [edi], ebx
dec dword [0x622cc0]
mov ebx, dword [ebp - 0x7c]
jmp 0x4ae85c
cmp dword [ebp - 0x78], 0
jne 0x4ae856
mov edx, dword [ebp - 0x70]
mov ecx, esi
push ebx
call fcn.004b4d90
mov edi, eax
add esp, 4
test edi, edi
jne 0x4af40c
lea edi, [esi + 0x5c]
mov dword [ebp - 0x6c], edi
mov esi, dword [edi]
test esi, esi
jne 0x4ae610
mov ebx, dword [0x5b5e88]
test ebx, ebx
je 0x4aea20
push 0x60
call fcn.00517363
mov esi, eax
add esp, 4
test esi, esi
je 0x4aeaea
cmp dword [0x5a6adc], 0
mov dword [esi + 0x5c], 0
mov ecx, dword [ebx]
mov dword [esi + 0x38], ecx
mov eax, dword [ebx + 4]
mov dword [ebx], 0
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 4], 0
mov dword [esi + 0x4c], eax
mov dword [ebx + 8], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x50], 1
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x58], eax
je 0x4ae911
push dword [esi + 0x4c]
push str.__adding:__s
push dword [0x622cbc]
call fcn.00452c30
add esp, 0xc
push dword [0x622cbc]
call fcn.00529d6a
add esp, 4
mov edx, dword [ebp - 0x7c]
mov ecx, esi
call fcn.004b0d30
mov edi, eax
test edi, edi
je 0x4ae92f
cmp edi, 0x12
je 0x4ae94f
cmp edi, 0xffffffff
jne 0x4aea9d
cmp edi, 0x12
je 0x4ae94f
cmp edi, 0xffffffff
je 0x4ae94f
mov eax, dword [ebp - 0x6c]
inc dword [0x622cc0]
mov dword [eax], esi
lea eax, [esi + 0x5c]
mov dword [ebp - 0x6c], eax
jmp 0x4aea0f
mov eax, dword [0x5a6adc]
mov dword [ebp - 0x90], 1
test eax, eax
je 0x4ae97f
push 0x58f2c8
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
mov eax, dword [0x5a6adc]
add esp, 8
cmp edi, 0x12
jne 0x4ae9b1
cmp dword [ebp - 0x84], 0
jne 0x4aeac6
push str.zip_warning
call fcn.0052bfb5
add esp, 4
cmp dword [0x5a6adc], 0
je 0x4ae9e5
push dword [esi + 0x4c]
push str.could_not_open_for_reading:
jmp 0x4ae9bd
test eax, eax
je 0x4ae9e5
push dword [esi + 0x4c]
push str.file_and_directory_with_the_same_name:
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
push dword [esi + 0x38]
call fcn.00515679
add esp, 4
push dword [esi + 0x48]
call fcn.00515679
add esp, 4
push dword [esi + 0x4c]
call fcn.00515679
add esp, 4
push esi
call fcn.00515679
add esp, 4
mov ecx, ebx
call fcn.004af5f0
mov ebx, eax
test ebx, ebx
jne 0x4ae874
mov eax, dword [0x5b5e80]
test eax, eax
je 0x4aea3c
push eax
call fcn.00515679
add esp, 4
mov dword [0x5b5e80], 0
cmp dword [0x5d77cc], 0
je 0x4aebc7
mov esi, dword [ebp - 0x74]
test esi, esi
jne 0x4aea76
push 0x591e54
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.005264d3
add esp, 4
push eax
call fcn.0053025f
mov esi, eax
add esp, 8
mov dword [ebp - 0x74], esi
push 0x101
call fcn.00517363
mov ebx, eax
add esp, 4
mov dword [ebp - 0x6c], ebx
test ebx, ebx
jne 0x4aeaf9
mov edx, str.was_reading_comment_lines
lea ecx, [eax + 4]
jmp 0x4af3e3
cmp dword [0x5a6adc], 0
je 0x4aeabe
push 0x58f2c8
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
add esp, 8
push dword [esi + 0x4c]
jmp 0x4af3ca
push dword [esi + 0x38]
push str.was_zipping__s
push 0x622860
call fcn.0047daf0
add esp, 0xc
mov edx, 0x622860
mov ecx, 0x12
jmp 0x4af3e3
mov edx, str.was_adding_files_to_zip_file
mov ecx, 4
jmp 0x4af3e3
mov edi, dword [0x5b5e48]
test edi, edi
je 0x4aebbe
nop word [eax + eax]
cmp dword [edi + 0x50], 0
je 0x4aeb94
cmp dword [0x5a6adc], 0
je 0x4aeb39
push dword [edi + 0x4c]
push str.Enter_comment_for__s:_n
push dword [0x622cbc]
call fcn.00452c30
add esp, 0xc
push esi
push 0x101
push ebx
call fcn.00523dda
add esp, 0xc
test eax, eax
je 0x4aeb94
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4aeb51
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.00517363
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4aeba3
mov ecx, dword [ebp - 0x6c]
mov edx, ebx
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4aeb73
cmp byte [ebx + esi - 1], 0xa
jne 0x4aeb8b
dec esi
mov byte [ebx + esi], al
mov dword [edi + 0x44], ebx
mov ebx, dword [ebp - 0x6c]
mov dword [edi + 0x24], esi
mov edi, dword [edi + 0x5c]
test edi, edi
je 0x4aebbe
mov esi, dword [ebp - 0x74]
jmp 0x4aeb10
mov eax, dword [ebp - 0x6c]
push eax
call fcn.00515679
add esp, 4
mov edx, str.was_reading_comment_lines
mov ecx, 4
jmp 0x4af3e3
push ebx
call fcn.00515679
add esp, 4
cmp dword [0x5d77c8], 0
je 0x4aed14
mov esi, dword [0x622840]
mov eax, 0xfffe
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp esi, eax
push 0xffff
push 0x40
cmova esi, eax
call edi
mov dword [0x622608], eax
test eax, eax
jne 0x4aec1e
push 2
push 0x40
call edi
push eax
mov dword [0x622608], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, eax
mov dword [0x62260c], ecx
mov byte [ecx], 0
jmp 0x4aec94
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
mov eax, dword [0x5b5e74]
mov dword [0x62260c], ebx
test esi, esi
je 0x4aec58
mov edi, eax
mov ecx, ebx
sub edi, ebx
mov edx, esi
nop
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x4aec40
mov eax, dword [0x5b5e74]
mov byte [ebx + esi], dl
jmp 0x4aec5b
mov byte [ebx], 0
push eax
call fcn.00515679
add esp, 4
push 1
call fcn.00517363
mov dword [0x5b5e74], eax
add esp, 4
mov byte [eax], 0
mov eax, dword [0x5b5e30]
test eax, eax
je 0x4aec8e
mov eax, dword [eax + 4]
test eax, eax
je 0x4aec8e
push dword [0x62260c]
call eax
mov ecx, dword [0x62260c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aec97
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.00517363
mov esi, eax
add esp, 4
test esi, esi
jne 0x4aecbf
mov edx, str.was_setting_comments_to_null
lea ecx, [eax + 4]
jmp 0x4af3e3
mov eax, dword [0x62260c]
cmp byte [eax], 0
je 0x4aecd3
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4aecd6
mov byte [esi], 0
push dword [0x5b5e74]
call fcn.00515679
add esp, 4
push dword [0x622608]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [0x622608]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x5b5e74], esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4aed05
sub esi, ecx
mov dword [0x622840], esi
mov esi, dword [0x5b5e48]
xor eax, eax
mov ecx, dword [0x622844]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x6c], ecx
test esi, esi
je 0x4aed6e
mov edx, dword [ebp - 0x7c]
mov ecx, esi
call fcn.004b49b0
test eax, eax
jne 0x4aee27
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x20]
mov eax, dword [0x622844]
add ecx, dword [esi + 0x18]
add eax, 0x2e
add edi, dword [esi + 0x14]
add eax, ecx
add ebx, dword [esi + 0x10]
mov esi, dword [esi + 0x5c]
mov dword [0x622844], eax
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
test esi, esi
jne 0x4aed30
test eax, eax
jne 0x4aedac
cmp dword [0x5a6adc], eax
je 0x4aedac
push 0x560f28
push str.zip_file_empty
push str._tzip_warning:__s_s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
push 2
call fcn.00523ead
add esp, 0x14
push eax
call fcn.00529d6a
add esp, 4
cmp dword [0x5b5e58], 0
je 0x4aee05
mov edx, ebx
mov ecx, edi
cmp edi, 0xffffff
jbe 0x4aedd3
lea ecx, [edi + 0x80]
lea edx, [ebx + 0x80]
shr ecx, 8
shr edx, 8
cmp ecx, edx
jbe 0x4aeded
mov eax, ecx
sub eax, edx
xor edx, edx
imul eax, eax, 0xc8
div ecx
inc eax
cdq
sub eax, edx
sar eax, 1
jmp 0x4aedef
xor eax, eax
push eax
push ebx
push edi
push str.total_bytes_lu__compressed_lu_____d___savings_n
push dword [0x622cbc]
call fcn.00452c30
add esp, 0x14
mov ebx, dword [ebp - 0x7c]
mov edx, dword [0x622844]
mov eax, dword [ebp - 0x6c]
sub edx, eax
mov ecx, dword [ebp - 0x74]
push ebx
sub esp, 8
push eax
call fcn.004b4c40
add esp, 0x10
test eax, eax
je 0x4aee34
mov edx, dword [0x5d77c4]
mov ecx, eax
jmp 0x4af3e3
push ebx
mov dword [0x5d77d0], 0
call fcn.00523a8b
add esp, 4
test eax, eax
je 0x4aee60
mov eax, dword [ebp - 0x78]
mov edx, dword [0x5d77c4]
lea ecx, [eax*4 + 0xa]
jmp 0x4af3e3
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4aee70
push eax
call fcn.00523a8b
add esp, 4
mov edi, dword [0x622cb4]
mov ecx, 0x59bd38
mov eax, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4aeea0
test dl, dl
je 0x4aee9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4aeea0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4aee80
xor eax, eax
jmp 0x4aeea5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4aefcb
cmp dword [ebp - 0x78], 0
jne 0x4aefcb
mov ebx, dword [0x5d77c4]
lea edx, [ebp - 0x68]
mov ecx, edi
xor esi, esi
call fcn.004b0b70
test eax, eax
jne 0x4aeeeb
cmp word [ebp - 0x60], 1
jg 0x4aef1a
push edi
call fcn.00529f58
add esp, 4
test eax, eax
je 0x4aeeeb
mov esi, 0xf
jmp 0x4af03b
push edi
push ebx
call fcn.0052c650
add esp, 8
test eax, eax
je 0x4aef12
mov esi, 1
call fcn.0052abb1
cmp dword [eax], 0x12
je 0x4aef12
mov esi, 0xf
jmp 0x4af03b
test esi, esi
je 0x4aefb7
push 0x592700
push ebx
call fcn.0052394f
mov esi, eax
add esp, 8
mov dword [ebp - 0x7c], esi
test esi, esi
jne 0x4aef54
push ebx
push str._replace:_cant_open__s_n
push 2
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
add esp, 0xc
mov esi, 0xa
jmp 0x4af03b
push 0x59c6f0
push edi
call fcn.0052394f
add esp, 8
mov dword [ebp - 0x78], eax
test eax, eax
jne 0x4aef7c
push esi
call fcn.00523a8b
add esp, 4
mov esi, 0xf
jmp 0x4af03b
push 0xffffffffffffffff
mov edx, eax
mov ecx, esi
call fcn.004b01b0
add esp, 4
mov esi, eax
push dword [ebp - 0x7c]
call fcn.00523a8b
add esp, 4
push dword [ebp - 0x78]
call fcn.00523a8b
add esp, 4
test eax, eax
jne 0x4af018
test esi, esi
jne 0x4af018
push ebx
call fcn.00529f58
add esp, 4
push dword [0x5d77c4]
call fcn.00515679
mov edi, dword [0x622cb4]
add esp, 4
mov esi, dword [ebp - 0x88]
mov dword [0x5d77c4], 0
test esi, esi
je 0x4af082
mov ecx, 0x59bd38
mov eax, edi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4af06f
test dl, dl
je 0x4af014
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4af06f
add eax, 2
add ecx, 2
test dl, dl
jne 0x4aeff0
xor eax, eax
jmp 0x4af074
push edi
call fcn.00529f58
add esp, 4
test esi, esi
je 0x4af036
cmp esi, 0xa
mov eax, 0xe
cmove esi, eax
test esi, esi
je 0x4aefb7
jmp 0x4af03b
mov esi, 0xe
mov edx, dword [0x5d77c4]
mov ecx, str.new_zip_file_left_as:
call fcn.004ac8f0
push dword [0x5d77c4]
call fcn.00515679
add esp, 4
mov dword [0x5d77c4], 0
mov edx, str.was_replacing_the_original_zip_file
mov ecx, esi
jmp 0x4af3e3
sbb eax, eax
or eax, 1
test eax, eax
je 0x4af082
push esi
push edi
call fcn.0052aaa2
add esp, 8
push dword [ebp - 0x94]
call fcn.00515679
mov eax, dword [ebp - 0x90]
add esp, 4
neg eax
sbb eax, eax
and eax, 0x12
mov ecx, eax
jmp 0x4ae199
mov edx, str.missing_argument_for__b_or__P
mov ecx, 0x10
jmp 0x4af3e3
mov edx, str.mm_not_supported
mov ecx, 0x10
call fcn.004ac700
mov edx, str.use__b_before_zip_file_name
mov ecx, 0x10
call fcn.004ac700
push edi
call fcn.00515679
add esp, 4
mov eax, 0x10
test esi, esi
mov edx, str.was_verifying_encryption_password
cmovs esi, eax
mov ecx, esi
call fcn.004ac700
mov edx, str.password_verification_failed
mov ecx, 0x10
call fcn.004ac700
mov edx, str.was_verifying_encryption_password
mov ecx, 4
call fcn.004ac700
mov edx, str.zero_length_password_not_allowed
mov ecx, 0x10
call fcn.004ac700
test eax, eax
mov ecx, 0x10
mov edx, str.was_getting_encryption_password
cmovs eax, ecx
mov ecx, eax
call fcn.004ac700
mov edx, str.was_getting_encryption_password
mov ecx, 4
call fcn.004ac700
mov edx, str.can_only_have_one__P
mov ecx, 0x10
call fcn.004ac700
mov edx, str.use__P_before_zip_file_name
mov ecx, 0x10
call fcn.004ac700
mov edx, str.do_not_specify_both__r_and__R
mov ecx, 0x10
call fcn.004ac700
cmp eax, 0x5d77d4
mov ecx, str.can_only_have_one__t
mov edx, str.can_only_have_one__tt
cmovne edx, ecx
mov ecx, 0x10
call fcn.004ac700
mov edx, str.specify_just_one_action
mov ecx, 0x10
call fcn.004ac700
mov edx, str.use__x_or__i_after_name_of_zipfile
mov ecx, 0x10
call fcn.004ac700
mov edx, esi
mov ecx, str.name_not_matched:
call fcn.004ac8f0
mov edx, esi
mov ecx, 0x12
call fcn.004ac700
mov edx, esi
mov ecx, eax
call fcn.004ac700
push ecx
push str.no_such_option:__c
push 0x622860
call fcn.0047daf0
add esp, 0xc
mov edx, 0x622860
mov ecx, 0x10
call fcn.004ac700
mov ebx, dword [ebp - 0x78]
mov ecx, str.name_not_matched:
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + ebx*4]
call fcn.004ac8f0
mov edx, dword [esi + ebx*4]
mov ecx, 0x12
call fcn.004ac700
mov edx, dword [ebp - 0x78]
mov ecx, eax
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + edx*4]
call fcn.004ac700
mov edx, str.invalid_path
mov ecx, 0x10
call fcn.004ac700
mov edx, str.invalid_time
mov ecx, 0x10
call fcn.004ac700
mov edi, 4
mov edx, dword [0x622cb4]
mov ecx, edi
call fcn.004ac700
cmp dword [ebp - 0x88], 0x5d77d4
mov eax, str.invalid_date_entered_for__t_option
mov edx, str.invalid_date_entered_for__tt_option
mov ecx, 0x10
cmovne edx, eax
call fcn.004ac700
mov ebx, dword [ebp - 0x78]
mov edx, dword [esi + ebx*4]
call fcn.004ac8f0
mov edx, dword [esi + ebx*4]
mov ecx, 0x12
call fcn.004ac700
mov edx, str.nothing_to_select_from
mov ecx, 0x10
call fcn.004ac700
mov edx, str.cannot_repeat_names_in_zip_file
mov ecx, 0x10
call fcn.004ac700
mov edx, str.was_processing_list_of_files
mov ecx, eax
call fcn.004ac700
mov edx, str.missing_suffix_list
mov ecx, 0x10
call fcn.004ac700
mov edx, str.cant_use__d__f__u_or__g_on_stdout_n
mov ecx, 0x10
call fcn.004ac700
mov edx, str._M_not_supported__use__MM_for_Must_Match
mov ecx, 0x10
call fcn.004ac700
mov edx, str.was_processing_arguments
mov ecx, 4
call fcn.004ac700
mov edx, edi
mov ecx, 0xd
call fcn.004ac700
mov edx, edi
mov ecx, 0xc
call fcn.004ac700
mov edx, dword [0x622cb4]
mov ecx, 0xf
call fcn.004ac700
mov edx, str.tried_to_write_binary_zipfile_data_to_console_
mov ecx, 5
call fcn.004ac700
mov edx, dword [0x5d77c4]
mov ecx, 4
call fcn.004ac700
mov edx, dword [0x622cb4]
mov ecx, 0xd
call fcn.004ac700
push ebx
call fcn.0052bed5
mov edx, dword [0x622cb4]
add esp, 4
neg eax
sbb eax, eax
and eax, 9
lea ecx, [eax + 2]
call fcn.004ac700
mov edx, dword [0x622cb4]
mov ecx, 0xd
call fcn.004ac700
mov edx, str.allocating_temp_filename
mov ecx, 4
call fcn.004ac700
mov edx, dword [0x5d77c4]
mov ecx, 0xa
call fcn.004ac700
mov edx, dword [0x622cb4]
cmp eax, 0xa
mov ecx, eax
cmove edx, dword [0x5d77c4]
call fcn.004ac700
cmp dword [0x5a6adc], 0
je 0x4af3c7
push 0x58f2c8
push 1
call fcn.00523ead
add esp, 4
push eax
call fcn.00452c30
add esp, 8
push dword [esi + 0x38]
push str.was_zipping__s
push 0x622860
call fcn.0047daf0
add esp, 0xc
mov edx, 0x622860
mov ecx, edi
call fcn.004ac700
push dword [esi + 0x38]
push str.was_zipping__s
push 0x622860
call fcn.0047daf0
add esp, 0xc
mov edx, 0x622860
mov ecx, 0x12
call fcn.004ac700
push dword [esi + 0x4c]
push str.was_copying__s
push 0x622860
call fcn.0047daf0
add esp, 0xc
mov edx, 0x622860
mov ecx, edi
call fcn.004ac700
mov edx, str.User_terminated_operation
mov ecx, 9
call fcn.004ac700
arpl sp, dx
dec edx
add byte [ecx - 0x2d], dh
dec edx
add byte [0x36004ad0], bl
ror byte [edx], 1
adc bl, 0x4a
add byte [ebx - 48], al
dec edx
add byte [ecx - 0x78ffb530], bl
ror dword [edx], 1
retf 0x4ad1