Function at 0x4bf000
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov eax, dword [0x5d7008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x654df4]
push ebx
push esi
push edi
mov dword [ebp - 0x80], eax
mov eax, dword [0x655ea0]
push 0x584fd8
push 2
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x8c], 0
call fcn.0054f467
push 0
push 0x654d80
mov dword [0x5d8460], 1
mov dword [0x609874], 0
mov dword [0x609870], 0
mov dword [0x609468], 0
mov dword [0x609880], 0
mov dword [0x60987c], 0
mov dword [0x609888], 0
mov dword [0x60988c], 0
mov dword [0x609884], 0
mov dword [0x654d70], 0xffffffff
mov dword [0x60946c], 0
mov dword [0x654d68], 0
mov dword [0x5e7cfc], 0
mov dword [0x5e7cd0], 0
mov dword [0x5d7bec], 1
mov dword [0x5d7bd8], 0xffffffff
mov dword [0x5e7cf8], 0
mov dword [0x5e7ce4], 0
mov dword [0x5e7d08], 0
mov dword [0x5e7cf4], 0
mov dword [0x5d7bdc], 6
mov dword [0x5e7cdc], 0
mov dword [0x5e7ccc], 0
mov dword [0x5e7cc8], 0
mov dword [0x5e7d10], 0
mov dword [0x5e7ce8], 0
mov dword [0x5d7be0], 1
mov dword [0x5e7cc4], 0
mov dword [0x5d7bd0], 1
mov dword [0x5d7be8], 1
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0x5cd984
mov dword [0x5e7d0c], 0
mov dword [0x5e7ce0], 0
mov dword [0x5e7d14], 0
mov dword [0x5d7bd4], 0x5e7d14
mov dword [0x5e7cf0], 0
mov dword [0x5e7d04], 0
mov dword [0x5e7cec], 0
mov dword [0x5e7cd8], 0
mov dword [ebp - 0x84], 0
call fcn.00568e80
add esp, 0x10
test eax, eax
jne 0x4c048e
push 1
call fcn.0054d4c0
add esp, 4
mov dword [0x654d5c], eax
push 0
call fcn.0054d4c0
add esp, 4
mov dword [ebp - 0x74], eax
xor ecx, ecx
nop
mov byte [ecx + 0x6546c0], cl
mov byte [ecx + 0x6547e0], cl
inc ecx
cmp ecx, 0x100
jb 0x4bf210
mov ecx, 0x61
nop word [eax + eax]
lea eax, [ecx - 0x20]
mov byte [ecx + 0x6547e0], al
inc ecx
cmp ecx, 0x7a
jbe 0x4bf230
mov ecx, 0x41
lea eax, [ecx + 0x20]
mov byte [ecx + 0x6546c0], al
inc ecx
cmp ecx, 0x5a
jbe 0x4bf244
push 0x5ccf30
call fcn.00550be4
add esp, 4
call fcn.005508fd
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 [0x60946c], 0
mov dword [0x654d54], 0
xor ebx, ebx
mov dword [0x609878], 0
mov dword [ebp - 0x6c], eax
call fcn.004bec10
test eax, eax
jne 0x4c048e
mov eax, 1
cmp edi, eax
mov dword [ebp - 0x78], eax
mov edi, dword [ebp - 0x8c]
mov edx, eax
jle 0x4bfdc3
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 0x4bf865
mov al, byte [esi + 1]
lea edi, [esi + 1]
mov dword [ebp - 0x90], edi
test al, al
je 0x4bf7ac
movsx ecx, al
lea eax, [ecx - 0x21]
cmp eax, 0x59
ja case.0x4bf306.34
movzx eax, byte [eax + 0x4c17bc]
jmp dword [eax*4 + 0x4c172c]
mov dword [0x5d7bd8], 0
mov dword [0x5d7bdc], 0
jmp case.0x4bf306.112
lea eax, [ecx - 0x30]
mov dword [0x5d7bdc], eax
jmp case.0x4bf306.112
mov dword [0x5e7cf4], 1
jmp case.0x4bf306.112
mov dword [0x60988c], 1
test ebx, ebx
jne 0x4c13b2
mov ebx, 1
jmp case.0x4bf306.112
mov dword [0x609874], 1
jmp case.0x4bf306.112
cmp dword [0x5d8460], 1
jne 0x4c147b
mov dword [0x5d8460], 0x10000
jmp case.0x4bf306.112
mov dword [0x5d7be0], 0
jmp case.0x4bf306.112
cmp dword [0x5e7d0c], 0
jne case.0x4bf306.112
push 0x51
call fcn.0054cef5
add esp, 4
mov dword [0x5e7d0c], eax
test eax, eax
je 0x4c1423
push dword [0x654d54]
push str.Enter_password:
push 0x51
push eax
mov eax, dword [0x5e7cbc]
mov eax, dword [eax + 8]
call eax
test eax, eax
jne 0x4c140d
mov eax, dword [0x5e7d0c]
cmp byte [eax], 0
je 0x4c13fe
push 0x51
call fcn.0054cef5
mov edi, eax
add esp, 4
test edi, edi
je 0x4c13ef
push dword [0x654d54]
mov ecx, dword [0x5e7cbc]
push str.Verify_password:
push 0x51
push edi
mov eax, dword [ecx + 8]
call eax
mov esi, eax
test esi, esi
je 0x4bf426
cmp esi, 0xffffffff
jne 0x4c13c1
cmp esi, 0xffffffff
jne 0x4bf42f
xor esi, esi
jmp 0x4bf45b
mov eax, dword [0x5e7d0c]
mov ecx, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4bf456
test dl, dl
je 0x4bf452
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4bf456
add eax, 2
add ecx, 2
test dl, dl
jne 0x4bf436
xor esi, esi
jmp 0x4bf45b
sbb esi, esi
or esi, 1
push edi
call fcn.005417da
add esp, 4
test esi, esi
jne 0x4c13e0
mov edi, dword [ebp - 0x90]
jmp case.0x4bf306.112
inc dword [0x5e7d08]
jmp case.0x4bf306.112
cmp dword [0x5d8460], 1
jne 0x4c147b
mov dword [0x5d8460], 3
jmp case.0x4bf306.112
mov edx, 1
mov dword [ebp - 0x70], edx
jmp 0x4bf760
mov dword [0x5d7bec], 0
jmp case.0x4bf306.112
mov dword [0x609884], 1
jmp case.0x4bf306.112
mov dword [0x5e7cf8], 1
jmp case.0x4bf306.112
inc dword [0x5e7cdc]
jmp case.0x4bf306.112
mov eax, dword [0x5e7cd0]
inc eax
mov dword [0x5e7cd0], eax
cmp eax, 2
je 0x4c13a3
jmp case.0x4bf306.112
inc dword [ebp - 0x84]
jmp case.0x4bf306.112
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
jmp case.0x4bf306.112
mov dword [0x609468], 1
jmp case.0x4bf306.112
test ebx, ebx
jne 0x4c1441
cmp dword [0x5e7d0c], ebx
jne 0x4c1432
mov ebx, 7
jmp case.0x4bf306.112
cmp dword [0x5e7ce4], 0
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
mov dword [0x5d7bd0], 0
je 0x4bf766
dec dword [0x5e7ce4]
jmp 0x4bf766
cmp dword [0x5e7cfc], 2
je 0x4c1450
mov dword [0x5e7cfc], 1
jmp case.0x4bf306.112
cmp dword [0x5e7cfc], 1
je 0x4c1450
mov dword [0x5e7cfc], 2
jmp case.0x4bf306.112
mov dword [0x5e7d10], 1
jmp case.0x4bf306.112
cmp byte [edi + 1], 0x74
lea eax, [edi + 1]
mov ecx, 0x60987c
cmove edi, eax
mov eax, 0x609880
cmove eax, ecx
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x98], eax
cmp dword [eax], 0
jne 0x4c145f
mov ebx, 2
jmp case.0x4bf306.112
mov dword [0x609888], 1
jmp case.0x4bf306.112
cmp dword [0x5d8460], 1
jne 0x4c147b
mov dword [0x5d8460], 2
jmp case.0x4bf306.112
inc dword [0x5e7ce4]
mov dword [0x5d7bd0], 1
jmp case.0x4bf306.112
cmp byte [edi + 1], 0x40
jne 0x4bf63b
cmp byte [edi + 2], 0
jne 0x4bf789
cmp dword [0x654d54], 0
je 0x4c148a
mov ebx, 5
jmp case.0x4bf306.112
mov dword [0x609870], 1
jmp case.0x4bf306.112
mov dword [0x5e7ce8], 1
jmp case.0x4bf306.112
xor esi, esi
mov dword [ebp - 0x74], esi
cmp ebx, 3
jge 0x4bf68a
mov edx, dword [ebp - 0x70]
mov ecx, 1
mov dword [ebp - 0x6c], ecx
jmp 0x4bf766
push 0
call fcn.0054d4c0
add esp, 4
mov edx, eax
call fcn.004c1850
mov esi, eax
test esi, esi
je case.0x4bf306.112
mov ebx, 4
nop word [eax + eax]
mov eax, dword [0x5d8460]
cmp eax, 1
je 0x4bf6d2
cmp eax, 2
je 0x4bf6d2
push 0xffffffffffffffff
mov edx, 1
mov ecx, esi
call fcn.004c4140
add esp, 4
jmp 0x4bf6d9
mov ecx, esi
call fcn.004c3f40
test eax, eax
je 0x4bf72a
cmp eax, 0xffffffff
jne 0x4c14b1
cmp dword [ebp - 0x84], 0
jne 0x4c1499
cmp dword [0x5d7bd0], 0
je 0x4bf72a
push esi
push str.name_not_matched:
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
push 0
call fcn.0054d4c0
add esp, 4
mov edx, eax
call fcn.004c1850
mov esi, eax
test esi, esi
jne 0x4bf6b0
jmp case.0x4bf306.112
mov dword [0x5d7be8], 0
jmp case.0x4bf306.112
mov dword [0x5e7cc8], 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 0x4bf2f0
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], ecx
jmp 0x4bfac5
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
inc eax
mov dword [ebp - 0x78], eax
cmp eax, dword [ebp - 0xa8]
jge 0x4bfdc3
mov esi, dword [ebp - 0x80]
mov edx, 1
jmp 0x4bf2d0
lea eax, [ebx - 1]
cmp eax, 3
ja case.default.0x4bf7b8
jmp dword [eax*4 + 0x4c1818]
xor eax, eax
mov dword [ebp - 0x74], eax
mov eax, dword [0x5d8460]
cmp eax, 1
je 0x4bf7e1
cmp eax, 2
je 0x4bf7e1
push 0xffffffffffffffff
mov ecx, esi
call fcn.004c4140
add esp, 4
jmp 0x4bf7e8
mov ecx, esi
call fcn.004c3f40
test eax, eax
je 0x4bf843
cmp eax, 0xffffffff
jne 0x4c14fc
cmp dword [ebp - 0x84], 0
jne 0x4c14dc
cmp dword [0x5d7bd0], 0
mov edi, dword [ebp - 0x78]
je 0x4bf846
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.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
jmp 0x4bf846
mov edi, dword [ebp - 0x78]
cmp ebx, 3
jne case.default.0x4bf7b8
mov eax, dword [ebp - 0x78]
mov ebx, 4
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x8c], edi
jmp 0x4bf78f
cmp dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
jne 0x4bf879
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], esi
jmp case.0x4bf894.5
cmp ebx, 5
je 0x4bfdd5
cmp ebx, 6
je 0x4bfd60
cmp ebx, 7
ja case.0x4bf894.5
jmp dword [ebx*4 + 0x4c1828]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4bf8a0
sub ecx, edx
lea eax, [ecx + 5]
push eax
call fcn.0054cef5
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4bf989
mov ecx, ebx
sub ecx, esi
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x4bf8c3
mov al, byte [ebx]
mov esi, ebx
test al, al
je 0x4bf8f6
cmp al, 0x5c
jne 0x4bf8df
mov byte [esi], 0x2f
call fcn.0055277b
push eax
push esi
call fcn.0055272f
add esi, eax
add esp, 8
mov al, byte [esi]
test al, al
jne 0x4bf8d8
cmp dword [0x5e7cf4], 0
jne 0x4bf989
mov cl, byte [ebx]
xor edi, edi
mov esi, ebx
test cl, cl
je 0x4bf932
nop dword [eax]
cmp cl, 0x2f
mov eax, esi
cmovne eax, edi
mov edi, eax
call fcn.0055277b
push eax
push esi
call fcn.0055272f
mov cl, byte [esi + eax]
add esi, eax
add esp, 8
test cl, cl
jne 0x4bf910
mov esi, ebx
test edi, edi
je 0x4bf93b
lea esi, [edi + 1]
mov cl, byte [esi]
xor edi, edi
test cl, cl
je 0x4bf965
cmp cl, 0x2e
mov eax, esi
cmovne eax, edi
mov edi, eax
call fcn.0055277b
push eax
push esi
call fcn.0055272f
mov cl, byte [esi + eax]
add esi, eax
add esp, 8
test cl, cl
jne 0x4bf943
test edi, edi
jne 0x4bf989
lea ecx, [ebx - 1]
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4bf970
mov eax, dword [str..zip]
mov dword [ecx], eax
mov al, byte [0x5bea1c]
mov byte [ecx + 4], al
mov dword [0x654d54], ebx
test ebx, ebx
je 0x4c15cc
mov dword [0x5e7cd4], 0
xor edi, edi
cmp byte [ebx], 0
mov dword [0x654d6c], 0
mov dword [0x654d60], 0
mov dword [0x6548e0], 0
je 0x4bfaa3
mov ecx, 0x5cd3d8
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4bf9f1
test dl, dl
je 0x4bf9ed
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4bf9f1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4bf9d1
xor eax, eax
jmp 0x4bf9f6
sbb eax, eax
or eax, 1
test eax, eax
je 0x4bfaa3
push 0x5bd854
push ebx
call fcn.0054d0c7
mov esi, eax
add esp, 8
test esi, esi
je 0x4bfaa3
cmp dword [0x5e7d08], edi
je 0x4bfa2f
cmp dword [0x5e7cf4], edi
jne 0x4bfa2f
mov ecx, esi
call fcn.004c5420
jmp 0x4bfa36
mov ecx, esi
call fcn.004c5ca0
push esi
mov edi, eax
call fcn.0054d155
mov ecx, dword [0x654d60]
add esp, 4
test ecx, ecx
je 0x4bfaa3
lea edx, [ecx*4]
mov eax, edx
shr eax, 2
cmp eax, ecx
jne 0x4c152a
push edx
call fcn.0054cef5
mov edx, eax
mov dword [0x654d58], eax
add esp, 4
test edx, edx
je 0x4c152a
mov ecx, dword [0x5e7cd4]
test ecx, ecx
je 0x4bfa8d
mov dword [edx], ecx
lea edx, [edx + 4]
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
jne 0x4bfa81
push 0x4c5120
push 4
push dword [0x654d60]
push eax
call fcn.005540d0
add esp, 0x10
test edi, edi
jne 0x4c152f
cmp dword [0x5e7cfc], 2
mov ebx, 3
mov eax, 6
cmove ebx, eax
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x6c]
cmp ebx, 3
je 0x4bfad3
cmp ebx, 6
jne 0x4bf78c
test ecx, ecx
je 0x4bf78c
push 0
call fcn.0054d4c0
add esp, 4
mov edx, eax
call fcn.004c1850
mov esi, eax
test esi, esi
je 0x4bfd41
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 [0x5d8460]
cmp eax, 1
je 0x4bfccc
cmp eax, 2
je 0x4bfccc
push 0xffffffffffffffff
mov edx, 1
mov ecx, esi
call fcn.004c4140
add esp, 4
jmp 0x4bfcd3
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4bfb40
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.0054cef5
mov ecx, eax
add esp, 4
mov dword [0x5e7ce0], ecx
test ecx, ecx
je 0x4c15cc
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 0x4bfb70
mov eax, dword [ebp - 0x78]
xor ebx, ebx
cmp dword [0x654d54], ebx
je 0x4bf78f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4bf894.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.0048d920
add esp, 0x14
cmp eax, 3
je 0x4bfbf8
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.0048d920
add esp, 0x14
cmp eax, 3
jne 0x4c153c
mov edx, dword [ebp - 0x9c]
lea eax, [edx - 1]
cmp eax, 0xb
ja 0x4c153c
mov ecx, dword [ebp - 0xa0]
lea eax, [ecx - 1]
cmp eax, 0x1e
ja 0x4c153c
mov eax, dword [ebp - 0xa4]
cmp eax, 0x7bc
jge 0x4bfc30
mov eax, 0x210000
jmp 0x4bfc40
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 [0x654d54], ebx
je 0x4bf78f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4bf894.5
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4bfc70
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.0054cef5
mov ecx, eax
add esp, 4
mov dword [0x5e7d0c], ecx
test ecx, ecx
je 0x4c15cc
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 0x4bfca0
mov eax, dword [ebp - 0x78]
xor ebx, ebx
cmp dword [0x654d54], ebx
je 0x4bf78f
test edi, edi
setg bl
add ebx, 3
jmp case.0x4bf894.5
mov ecx, esi
call fcn.004c3f40
test eax, eax
je 0x4bfd24
cmp eax, 0xffffffff
jne 0x4c14b1
cmp dword [ebp - 0x84], 0
jne 0x4c1499
cmp dword [0x5d7bd0], 0
je 0x4bfd24
push esi
push str.name_not_matched:
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
push 0
call fcn.0054d4c0
add esp, 4
mov edx, eax
call fcn.004c1850
mov esi, eax
test esi, esi
jne 0x4bfb10
jmp 0x4bfd44
mov edi, dword [ebp - 0x7c]
xor eax, eax
cmp dword [0x5e7cfc], 2
mov dword [ebp - 0x6c], eax
mov eax, 6
cmove ebx, eax
mov eax, dword [ebp - 0x78]
jmp 0x4bf78f
mov eax, dword [0x5d8460]
cmp eax, 1
je 0x4bfd80
cmp eax, 2
je 0x4bfd80
push 0xffffffffffffffff
mov ecx, 0x5c0b30
call fcn.004c4140
add esp, 4
jmp 0x4bfd8a
mov ecx, 0x5c0b30
call fcn.004c3f40
test eax, eax
je 0x4bfdb7
cmp eax, 0xffffffff
jne 0x4c14fc
cmp dword [ebp - 0x84], 0
mov ecx, str.name_not_matched:
mov esi, dword [ebp - 0x80]
jne 0x4c155d
mov edx, dword [ebp - 0x78]
mov edx, dword [esi + edx*4]
call fcn.004bebd0
test edi, edi
cmove edi, dword [ebp - 0x78]
mov dword [ebp - 0x8c], edi
cmp ebx, 7
je 0x4c1394
cmp ebx, 1
je 0x4c1394
mov ecx, dword [0x5e7d04]
test ecx, ecx
je 0x4bfdff
test edi, edi
jne 0x4bfdff
cmp ebx, 3
jl 0x4c1575
mov eax, dword [0x5d8460]
cmp eax, 2
je 0x4bfdff
cmp eax, 3
jne 0x4c1575
cmp ebx, 4
je 0x4bfe46
test edi, edi
jne 0x4bfe46
mov eax, dword [0x5d8460]
cmp eax, 2
je 0x4bfe17
cmp eax, 3
jne 0x4bfe46
mov esi, dword [0x5e7cd4]
test esi, esi
je 0x4bfe46
test ecx, ecx
je 0x4bfe37
mov ecx, dword [esi + 0x4c]
xor edx, edx
call fcn.004c1c40
mov ecx, dword [0x5e7d04]
jmp 0x4bfe3c
mov eax, 1
mov dword [esi + 0x50], eax
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x4bfe21
call fcn.004c19c0
test eax, eax
je 0x4bfe5d
cmp eax, 0x10
jne 0x4c1593
jmp 0x4c1584
cmp dword [0x654d60], 0
je 0x4bfe74
push dword [0x654d58]
call fcn.005417da
add esp, 4
mov eax, dword [str..Z:.zip:.zoo:.arc:.lzh:.arj]
test eax, eax
je 0x4c159f
cmp dword [0x5d7bdc], 9
je 0x4bfee9
mov edx, 0x5c1674
mov ecx, eax
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x4bfeb1
test bl, bl
je 0x4bfead
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x4bfeb1
add ecx, 2
add edx, 2
test bl, bl
jne 0x4bfe91
xor ecx, ecx
jmp 0x4bfeb6
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x4bfee9
mov ecx, 0x5ba850
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4bfee0
test dl, dl
je 0x4bfedc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4bfee0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4bfec0
xor eax, eax
jmp 0x4bfee5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4bfef3
mov dword [str..Z:.zip:.zoo:.arc:.lzh:.arj], 0
cmp dword [0x5d8460], 0x10000
jne 0x4bff96
cmp dword [0x5d7bd8], 0xffffffff
jne 0x4bff39
cmp dword [0x5e7cd0], 0
jne 0x4bff39
cmp dword [0x5e7cfc], 0
jne 0x4bff39
cmp dword [0x5e7d0c], 0
jne 0x4bff39
cmp dword [0x609874], 0
jne 0x4bff39
cmp dword [0x609870], 0
je 0x4bff96
mov edx, 0x584fd8
mov ecx, str.invalid_option_s__used_with__d__ignored.
call fcn.004bebd0
mov eax, dword [0x5e7d0c]
mov dword [0x5d7bd8], 0xffffffff
mov dword [0x5e7cd0], 0
mov dword [0x5e7cfc], 0
test eax, eax
je 0x4bff82
push eax
call fcn.005417da
add esp, 4
mov dword [0x5e7d0c], 0
mov dword [0x609874], 0
mov dword [0x609870], 0
cmp dword [0x5e7cc4], 0
je 0x4bffc1
cmp dword [0x5e7cf8], 0
je 0x4bffc1
mov edx, 0x584fd8
mov ecx, str.cant_use__y_with__k___y_ignored
call fcn.004bebd0
mov dword [0x5e7cc4], 0
cmp dword [0x5e7d08], 0
je 0x4bffe2
cmp dword [0x5e7cf4], 0
je 0x4bffe2
mov edx, 0x584fd8
mov ecx, str.cant_use__F_with__A___F_ignored
call fcn.004bebd0
cmp dword [0x609888], 0
mov edi, dword [0x654d54]
je 0x4c003b
mov ecx, 0x5cd3d8
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c0018
test dl, dl
je 0x4c0014
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c0018
add eax, 2
add ecx, 2
test dl, dl
jne 0x4bfff8
xor eax, eax
jmp 0x4c001d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4c003b
mov edx, 0x584fd8
mov dword [0x609888], eax
mov ecx, str.cant_use__T_on_stdout___T_ignored
call fcn.004bebd0
mov edi, dword [0x654d54]
cmp dword [0x5d8460], 1
jne 0x4c004b
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4c0082
mov ecx, 0x5cd3d8
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c0072
test dl, dl
je 0x4c006e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c0072
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c0052
xor eax, eax
jmp 0x4c0077
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c15ae
mov eax, dword [ebp - 0x70]
cmp dword [0x654d60], 0
jne 0x4c00aa
cmp dword [0x5d8460], 1
jne 0x4c0098
test eax, eax
je 0x4c00aa
mov edx, str._not_found_or_empty
mov ecx, edi
call fcn.004bebd0
mov edi, dword [0x654d54]
mov eax, dword [ebp - 0x84]
cmp eax, 1
je 0x4c15bd
mov ecx, 1
cmovg eax, ecx
cmp dword [0x5e7ce0], 0
mov dword [ebp - 0x84], eax
jne 0x4c015f
lea edx, [ecx + 0x2e]
mov ecx, edi
call fcn.004c2b10
test eax, eax
jne 0x4c010e
mov ecx, dword [0x654d54]
lea edx, [eax + 0x5c]
call fcn.004c2b10
test eax, eax
jne 0x4c010e
mov ecx, dword [0x654d54]
lea edx, [eax + 0x3a]
call fcn.004c2b10
test eax, eax
jne 0x4c010e
mov edi, dword [0x654d54]
jmp 0x4c015f
cmp byte [eax], 0x3a
lea esi, [eax + 1]
cmovne esi, eax
mov eax, esi
sub eax, dword [0x654d54]
inc eax
push eax
call fcn.0054cef5
mov ecx, eax
add esp, 4
mov dword [0x5e7ce0], ecx
test ecx, ecx
je 0x4c15cc
mov edi, dword [0x654d54]
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 0x4c0150
mov byte [esi], bl
mov esi, dword [0x5e7cd4]
mov dword [ebp - 0x7c], 0
test esi, esi
je 0x4c0350
mov ebx, str.missing_or_early
nop dword [eax]
cmp dword [esi + 0x50], 0
je 0x4c0339
cmp dword [0x5d8460], 0x10000
jne 0x4c0219
mov edi, dword [esi + 0x3c]
lea eax, [ebp - 0xc0]
mov edx, dword [esi + 0x1c]
mov ecx, edi
push eax
push 0
call fcn.004c7160
add esp, 8
test eax, eax
jne 0x4c01d6
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4c01d6
mov ecx, dword [esi + 0x40]
cmp ecx, edi
je 0x4c01d6
lea eax, [ebp - 0xc0]
push eax
push 1
call fcn.004c7160
add esp, 8
test al, 1
je 0x4c01e9
lea ecx, [ebp - 0xb8]
call fcn.004c2390
mov ecx, eax
jmp 0x4c01ec
mov ecx, dword [esi + 8]
cmp ecx, dword [0x609880]
jb 0x4c020d
mov eax, dword [0x60987c]
test eax, eax
je 0x4c0305
cmp ecx, eax
jae 0x4c020d
inc dword [ebp - 0x7c]
jmp 0x4c0339
mov dword [esi + 0x50], 0
jmp 0x4c0339
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0xd8]
push eax
push 0
xor edx, edx
call fcn.004c4a50
mov edi, eax
add esp, 8
test edi, edi
je 0x4c02cc
cmp edi, dword [0x609880]
jb 0x4c02cc
mov eax, dword [0x60987c]
test eax, eax
je 0x4c0256
cmp edi, eax
jae 0x4c02cc
mov eax, dword [0x5d8460]
cmp eax, 2
je 0x4c0269
cmp eax, 3
jne 0x4c0305
mov ebx, dword [esi + 0x3c]
lea eax, [ebp - 0xc0]
mov edx, dword [esi + 0x1c]
mov ecx, ebx
push eax
push 0
call fcn.004c7160
add esp, 8
test eax, eax
jne 0x4c02a5
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4c02a5
mov ecx, dword [esi + 0x40]
cmp ecx, ebx
je 0x4c02a5
lea eax, [ebp - 0xc0]
push eax
push 1
call fcn.004c7160
add esp, 8
test al, 1
je 0x4c02fb
mov eax, dword [ebp - 0xcc]
cmp eax, dword [ebp - 0xb4]
jg 0x4c0300
jl 0x4c02c7
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0xb8]
ja 0x4c0300
mov ebx, str.missing_or_early
mov eax, dword [0x609874]
neg eax
sbb eax, eax
and eax, 2
mov dword [esi + 0x50], eax
test edi, edi
je 0x4c030a
cmp edi, dword [0x609880]
jb 0x4c030a
mov eax, dword [0x60987c]
test eax, eax
je 0x4c02f4
cmp edi, eax
jae 0x4c030a
mov ecx, 1
jmp 0x4c030c
cmp edi, dword [esi + 8]
jbe 0x4c02c7
mov ebx, str.missing_or_early
inc dword [ebp - 0x7c]
jmp 0x4c0339
xor ecx, ecx
cmp dword [0x5e7ce4], 0
mov dword [esi + 0x54], ecx
je 0x4c0339
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 [0x654d5c]
call fcn.004535a0
add esp, 0x10
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x4c0180
mov edi, dword [0x654d54]
mov esi, dword [0x5e7cd4]
mov ebx, dword [0x5e7d14]
test ebx, ebx
je 0x4c0411
nop
mov eax, dword [0x5d8460]
cmp eax, 0x10000
je 0x4c03ee
cmp eax, 3
je 0x4c03ee
mov ecx, dword [ebx]
xor edx, edx
push 0
push 0
call fcn.004c4a50
add esp, 8
test eax, eax
je 0x4c03ee
cmp eax, dword [0x609880]
jb 0x4c03ee
mov ecx, dword [0x60987c]
test ecx, ecx
je 0x4c03a3
cmp eax, ecx
jae 0x4c03ee
mov edi, dword [0x654d54]
mov edx, edi
mov ecx, dword [ebx + 8]
call fcn.004c2a40
test eax, eax
jne 0x4c03e9
mov ecx, 0x5cd3d8
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c03e0
test dl, dl
je 0x4c03dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c03e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c03c0
xor eax, eax
jmp 0x4c03e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4c03ee
mov ebx, dword [ebx + 0x14]
jmp 0x4c03fd
mov ecx, ebx
call fcn.004c18e0
mov edi, dword [0x654d54]
mov ebx, eax
test ebx, ebx
jne 0x4c0360
mov ebx, dword [0x5e7d14]
mov esi, dword [0x5e7cd4]
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x4c04ee
test ebx, ebx
jne 0x4c04ee
mov ecx, dword [0x609468]
test esi, esi
je 0x4c0472
test ecx, ecx
jne 0x4c04ee
cmp dword [0x5e7d08], ecx
jne 0x4c04ee
cmp dword [0x5e7cf4], ecx
jne 0x4c04ee
cmp dword [0x609884], ecx
jne 0x4c04ee
cmp dword [0x609874], ecx
jne 0x4c04ee
cmp dword [0x609870], ecx
jne 0x4c04ee
cmp dword [0x609888], 0
je 0x4c049f
test esi, esi
jne 0x4c0487
cmp dword [0x654d6c], esi
je 0x4c049f
xor ecx, ecx
call fcn.004be7a0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053d630
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5d8460]
cmp eax, 2
je 0x4c04e7
cmp eax, 3
je 0x4c04e7
test esi, esi
jne 0x4c15e7
test ecx, ecx
jne 0x4c15db
cmp dword [0x5e7d08], ecx
jne 0x4c15db
cmp dword [0x5e7cf4], ecx
jne 0x4c15db
cmp dword [0x609884], ecx
je 0x4c15e7
jmp 0x4c15db
mov ecx, 0xc
jmp 0x4c0489
cmp dword [ebp - 0x70], 0
mov ebx, dword [0x654d6c]
je 0x4c050f
test eax, eax
jne 0x4c050f
test ebx, ebx
jne 0x4c0506
test esi, esi
je 0x4c050f
mov dword [ebp - 0x78], 1
jmp 0x4c0516
mov dword [ebp - 0x78], 0
cmp dword [0x5e7d0c], 0
je 0x4c0529
call fcn.004b6d90
mov dword [0x654d74], eax
mov ecx, 0x5cd3d8
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c0550
test dl, dl
je 0x4c054c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c0550
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c0530
xor eax, eax
jmp 0x4c0555
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c0606
cmp dword [0x60988c], 0
je 0x4c0572
test esi, esi
jne 0x4c0581
test ebx, ebx
je 0x4c0606
test esi, esi
jne 0x4c0581
test ebx, ebx
jne 0x4c0581
push 0x5cdd9c
jmp 0x4c0586
push 0x5cdda0
push edi
call fcn.0054d0c7
add esp, 8
test eax, eax
je 0x4c15f3
push eax
call fcn.0054d155
mov ecx, dword [0x654d54]
lea edx, [ebp - 0x38]
add esp, 4
call fcn.004c2e70
test eax, eax
jne 0x4c05be
movzx eax, word [ebp - 0x32]
mov dword [ebp - 0x88], eax
jmp 0x4c05c8
mov dword [ebp - 0x88], 0
mov esi, dword [0x5e7cd4]
mov ebx, dword [0x654d6c]
test esi, esi
jne 0x4c05fe
test ebx, ebx
jne 0x4c05fe
push dword [0x654d54]
call fcn.005533af
mov edi, dword [0x654d54]
add esp, 4
mov esi, dword [0x5e7cd4]
mov ebx, dword [0x654d6c]
jmp 0x4c0610
mov edi, dword [0x654d54]
jmp 0x4c0610
mov dword [ebp - 0x88], 0
xor eax, eax
mov ecx, 0x5cd3d8
cmp dword [0x609884], eax
mov dword [ebp - 0x70], eax
cmovne ebx, eax
mov dword [0x6548e4], eax
mov dword [0x654d6c], ebx
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c0650
test dl, dl
je 0x4c064c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c0650
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c0630
xor eax, eax
jmp 0x4c0655
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4c070a
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.0054fee6
add esp, 4
push eax
call fcn.00553424
add esp, 4
test eax, eax
jne 0x4c1603
push 0x8000
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.0054fee6
add esp, 4
push eax
call fcn.00554628
add esp, 8
push 0x5cdd9c
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.0054fee6
add esp, 4
push eax
call fcn.00559bdb
mov ebx, eax
push 4
mov dword [ebp - 0x7c], ebx
mov dword [0x609878], ebx
call fcn.0054cef5
add esp, 0xc
mov dword [0x60946c], eax
test eax, eax
je 0x4c1660
mov ecx, 0x2d
mov word [eax], cx
push 0x4000
call fcn.0054cef5
add esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4c1612
jmp 0x4c086d
cmp dword [ebp - 0x78], 0
je 0x4c0760
push 0x5cdda0
push edi
call fcn.0054d0c7
mov ebx, eax
add esp, 8
mov dword [ebp - 0x7c], ebx
test ebx, ebx
je 0x4c1622
mov eax, dword [0x654d54]
push 0
push dword [0x654d64]
mov dword [0x60946c], eax
push ebx
mov dword [0x609878], ebx
call fcn.00555bb3
add esp, 0xc
test eax, eax
jne 0x4c1632
mov eax, dword [0x654d64]
mov dword [0x6548e4], eax
jmp 0x4c06ea
test esi, esi
jne 0x4c0768
test ebx, ebx
je 0x4c0781
push 0x5bd854
push edi
call fcn.0054d0c7
add esp, 8
mov dword [ebp - 0x70], eax
test eax, eax
je 0x4c1650
mov ecx, dword [0x5e7ce0]
test ecx, ecx
je 0x4c07f8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c0792
sub ecx, edx
lea eax, [ecx + 0xc]
push eax
call fcn.0054cef5
mov esi, eax
add esp, 4
test esi, esi
je 0x4c083a
mov ecx, dword [0x5e7ce0]
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 0x4c07c0
mov ecx, esi
call fcn.004c2a90
cmp al, 0x2f
je 0x4c080b
cmp al, 0x3a
je 0x4c080b
cmp al, 0x5c
je 0x4c080b
lea edi, [esi - 1]
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x4c07e3
mov ax, word [0x5c64f8]
mov word [edi], ax
jmp 0x4c080b
push 0xc
call fcn.0054cef5
mov esi, eax
add esp, 4
test esi, esi
je 0x4c083a
mov byte [esi], 0
lea ecx, [esi - 1]
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4c0810
mov eax, dword [str.ziXXXXXX]
mov dword [ecx], eax
mov eax, dword [0x5ce084]
mov dword [ecx + 4], eax
mov al, byte [0x5ce088]
push esi
mov byte [ecx + 8], al
call fcn.00559ced
add esp, 4
mov dword [0x60946c], eax
test eax, eax
je 0x4c1660
push 0x5cdd9c
push eax
call fcn.0054d0c7
mov ebx, eax
add esp, 8
mov dword [ebp - 0x7c], ebx
mov dword [0x609878], ebx
test ebx, ebx
je 0x4c166f
jmp 0x4c06ea
push 0x4000
push 0
push eax
push ebx
call fcn.00555cf9
mov eax, dword [0x654d54]
add esp, 0x10
mov ecx, 0x5cd3d8
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c08a8
test dl, dl
je 0x4c08a4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c08a8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c0888
xor eax, eax
jmp 0x4c08ad
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c08e0
cmp dword [ebp - 0x78], 0
jne 0x4c08e0
mov eax, dword [0x654d6c]
test eax, eax
je 0x4c08db
mov ecx, dword [ebp - 0x70]
mov edx, ebx
push eax
call fcn.004c24b0
add esp, 4
test eax, eax
jne 0x4c167f
mov eax, dword [0x654d6c]
mov dword [0x6548e4], eax
mov esi, dword [0x5e7cd4]
xor eax, eax
mov dword [ebp - 0x90], eax
mov edi, 0x5e7cd4
mov dword [ebp - 0x6c], edi
test esi, esi
je 0x4c0b56
nop
cmp dword [esi + 0x50], 1
jne 0x4c0b28
mov ecx, dword [0x5d8460]
cmp ecx, 0x10000
je 0x4c0a74
cmp dword [0x5d7bd0], 0
je 0x4c0956
mov eax, dword [esi + 0x4c]
push eax
cmp ecx, 3
jne 0x4c0935
push str.freshening:__s
jmp 0x4c093a
push str.updating:__s
push dword [0x654d5c]
call fcn.004535a0
add esp, 0xc
push dword [0x654d5c]
call fcn.0055321c
add esp, 4
mov edx, ebx
mov ecx, esi
call fcn.004c3030
mov edi, eax
test edi, edi
je 0x4c0973
cmp edi, 0x12
je 0x4c0981
cmp edi, 0xffffffff
jne 0x4c1696
cmp edi, 0x12
je 0x4c0981
cmp edi, 0xffffffff
jne 0x4c0b46
cmp dword [0x5d7bd0], 0
mov dword [ebp - 0x90], 1
je 0x4c09ac
push 0x5ba2b4
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
add esp, 8
cmp edi, 0x12
jne 0x4c09dc
cmp dword [ebp - 0x84], 0
jne 0x4c16d8
push dword [esi + 0x4c]
call fcn.00555851
add esp, 4
cmp dword [0x5d7bd0], 0
je 0x4c0a1a
push dword [esi + 0x4c]
push str.could_not_open_for_reading:
jmp 0x4c09f2
cmp dword [0x5d7bd0], 0
mov eax, dword [esi + 0x4c]
je 0x4c0a54
push eax
push str.file_and_directory_with_the_same_name:
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
cmp dword [0x5d7bd0], 0
mov eax, dword [esi + 0x4c]
je 0x4c0a54
push eax
push str.will_just_copy_entry_over:
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
mov edx, dword [ebp - 0x70]
mov ecx, esi
push ebx
call fcn.004c7080
mov edi, eax
add esp, 4
test edi, edi
jne 0x4c16fc
mov dword [esi + 0x50], eax
jmp 0x4c0b46
cmp dword [0x5d7bd0], 0
je 0x4c0aa1
push dword [esi + 0x4c]
push str.deleting:__s_n
push dword [0x654d5c]
call fcn.004535a0
add esp, 0xc
push dword [0x654d5c]
call fcn.0055321c
add esp, 4
mov eax, dword [0x5e7cbc]
test eax, eax
je 0x4c0ac0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4c0ac0
push 0
push dword [esi + 0x4c]
call eax
test eax, eax
jne 0x4c171d
push dword [esi + 0x48]
mov ebx, dword [esi + 0x5c]
call fcn.005417da
add esp, 4
push dword [esi + 0x4c]
call fcn.005417da
add esp, 4
cmp dword [esi + 0x1c], 0
je 0x4c0aea
push dword [esi + 0x3c]
call fcn.005417da
add esp, 4
cmp dword [esi + 0x20], 0
je 0x4c0b01
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x4c0b01
push eax
call fcn.005417da
add esp, 4
cmp dword [esi + 0x24], 0
je 0x4c0b12
push dword [esi + 0x44]
call fcn.005417da
add esp, 4
push esi
call fcn.005417da
add esp, 4
mov dword [edi], ebx
dec dword [0x654d60]
mov ebx, dword [ebp - 0x7c]
jmp 0x4c0b4c
cmp dword [ebp - 0x78], 0
jne 0x4c0b46
mov edx, dword [ebp - 0x70]
mov ecx, esi
push ebx
call fcn.004c7080
mov edi, eax
add esp, 4
test edi, edi
jne 0x4c16fc
lea edi, [esi + 0x5c]
mov dword [ebp - 0x6c], edi
mov esi, dword [edi]
test esi, esi
jne 0x4c0900
mov ebx, dword [0x5e7d14]
test ebx, ebx
je 0x4c0d10
push 0x60
call fcn.0054cef5
mov esi, eax
add esp, 4
test esi, esi
je 0x4c0dda
cmp dword [0x5d7bd0], 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 0x4c0c01
push dword [esi + 0x4c]
push str.__adding:__s
push dword [0x654d5c]
call fcn.004535a0
add esp, 0xc
push dword [0x654d5c]
call fcn.0055321c
add esp, 4
mov edx, dword [ebp - 0x7c]
mov ecx, esi
call fcn.004c3030
mov edi, eax
test edi, edi
je 0x4c0c1f
cmp edi, 0x12
je 0x4c0c3f
cmp edi, 0xffffffff
jne 0x4c0d8d
cmp edi, 0x12
je 0x4c0c3f
cmp edi, 0xffffffff
je 0x4c0c3f
mov eax, dword [ebp - 0x6c]
inc dword [0x654d60]
mov dword [eax], esi
lea eax, [esi + 0x5c]
mov dword [ebp - 0x6c], eax
jmp 0x4c0cff
mov eax, dword [0x5d7bd0]
mov dword [ebp - 0x90], 1
test eax, eax
je 0x4c0c6f
push 0x5ba2b4
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
mov eax, dword [0x5d7bd0]
add esp, 8
cmp edi, 0x12
jne 0x4c0ca1
cmp dword [ebp - 0x84], 0
jne 0x4c0db6
push str.zip_warning
call fcn.00555851
add esp, 4
cmp dword [0x5d7bd0], 0
je 0x4c0cd5
push dword [esi + 0x4c]
push str.could_not_open_for_reading:
jmp 0x4c0cad
test eax, eax
je 0x4c0cd5
push dword [esi + 0x4c]
push str.file_and_directory_with_the_same_name:
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
push dword [esi + 0x38]
call fcn.005417da
add esp, 4
push dword [esi + 0x48]
call fcn.005417da
add esp, 4
push dword [esi + 0x4c]
call fcn.005417da
add esp, 4
push esi
call fcn.005417da
add esp, 4
mov ecx, ebx
call fcn.004c18e0
mov ebx, eax
test ebx, ebx
jne 0x4c0b64
mov eax, dword [0x5e7d0c]
test eax, eax
je 0x4c0d2c
push eax
call fcn.005417da
add esp, 4
mov dword [0x5e7d0c], 0
cmp dword [0x609874], 0
je 0x4c0eb7
mov esi, dword [ebp - 0x74]
test esi, esi
jne 0x4c0d66
push 0x5cd964
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.0054fee6
add esp, 4
push eax
call fcn.00559bdb
mov esi, eax
add esp, 8
mov dword [ebp - 0x74], esi
push 0x101
call fcn.0054cef5
mov ebx, eax
add esp, 4
mov dword [ebp - 0x6c], ebx
test ebx, ebx
jne 0x4c0de9
mov edx, str.was_reading_comment_lines
lea ecx, [eax + 4]
jmp 0x4c16d3
cmp dword [0x5d7bd0], 0
je 0x4c0dae
push 0x5ba2b4
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
add esp, 8
push dword [esi + 0x4c]
jmp 0x4c16ba
push dword [esi + 0x38]
push str.was_zipping__s
push 0x654900
call fcn.0048d4b0
add esp, 0xc
mov edx, 0x654900
mov ecx, 0x12
jmp 0x4c16d3
mov edx, str.was_adding_files_to_zip_file
mov ecx, 4
jmp 0x4c16d3
mov edi, dword [0x5e7cd4]
test edi, edi
je 0x4c0eae
nop word [eax + eax]
cmp dword [edi + 0x50], 0
je 0x4c0e84
cmp dword [0x5d7bd0], 0
je 0x4c0e29
push dword [edi + 0x4c]
push str.Enter_comment_for__s:_n
push dword [0x654d5c]
call fcn.004535a0
add esp, 0xc
push esi
push 0x101
push ebx
call fcn.005548cb
add esp, 0xc
test eax, eax
je 0x4c0e84
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4c0e41
sub esi, ecx
lea eax, [esi + 1]
push eax
call fcn.0054cef5
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4c0e93
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 0x4c0e63
cmp byte [ebx + esi - 1], 0xa
jne 0x4c0e7b
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 0x4c0eae
mov esi, dword [ebp - 0x74]
jmp 0x4c0e00
mov eax, dword [ebp - 0x6c]
push eax
call fcn.005417da
add esp, 4
mov edx, str.was_reading_comment_lines
mov ecx, 4
jmp 0x4c16d3
push ebx
call fcn.005417da
add esp, 4
cmp dword [0x609870], 0
je 0x4c1004
mov esi, dword [0x6548e0]
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 [0x6546ac], eax
test eax, eax
jne 0x4c0f0e
push 2
push 0x40
call edi
push eax
mov dword [0x6546ac], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, eax
mov dword [0x6546b0], ecx
mov byte [ecx], 0
jmp 0x4c0f84
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ebx, eax
mov eax, dword [0x5e7d00]
mov dword [0x6546b0], ebx
test esi, esi
je 0x4c0f48
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 0x4c0f30
mov eax, dword [0x5e7d00]
mov byte [ebx + esi], dl
jmp 0x4c0f4b
mov byte [ebx], 0
push eax
call fcn.005417da
add esp, 4
push 1
call fcn.0054cef5
mov dword [0x5e7d00], eax
add esp, 4
mov byte [eax], 0
mov eax, dword [0x5e7cbc]
test eax, eax
je 0x4c0f7e
mov eax, dword [eax + 4]
test eax, eax
je 0x4c0f7e
push dword [0x6546b0]
call eax
mov ecx, dword [0x6546b0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c0f87
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.0054cef5
mov esi, eax
add esp, 4
test esi, esi
jne 0x4c0faf
mov edx, str.was_setting_comments_to_null
lea ecx, [eax + 4]
jmp 0x4c16d3
mov eax, dword [0x6546b0]
cmp byte [eax], 0
je 0x4c0fc3
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4c0fc6
mov byte [esi], 0
push dword [0x5e7d00]
call fcn.005417da
add esp, 4
push dword [0x6546ac]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [0x6546ac]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x5e7d00], esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4c0ff5
sub esi, ecx
mov dword [0x6548e0], esi
mov esi, dword [0x5e7cd4]
xor eax, eax
mov ecx, dword [0x6548e4]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x6c], ecx
test esi, esi
je 0x4c105e
mov edx, dword [ebp - 0x7c]
mov ecx, esi
call fcn.004c6ca0
test eax, eax
jne 0x4c1117
mov ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x20]
mov eax, dword [0x6548e4]
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 [0x6548e4], eax
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
test esi, esi
jne 0x4c1020
test eax, eax
jne 0x4c109c
cmp dword [0x5d7bd0], eax
je 0x4c109c
push 0x584fd8
push str.zip_file_empty
push str._tzip_warning:__s_s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
push 2
call fcn.0054d4c0
add esp, 0x14
push eax
call fcn.0055321c
add esp, 4
cmp dword [0x5e7ce4], 0
je 0x4c10f5
mov edx, ebx
mov ecx, edi
cmp edi, 0xffffff
jbe 0x4c10c3
lea ecx, [edi + 0x80]
lea edx, [ebx + 0x80]
shr ecx, 8
shr edx, 8
cmp ecx, edx
jbe 0x4c10dd
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 0x4c10df
xor eax, eax
push eax
push ebx
push edi
push str.total_bytes_lu__compressed_lu_____d___savings_n
push dword [0x654d5c]
call fcn.004535a0
add esp, 0x14
mov ebx, dword [ebp - 0x7c]
mov edx, dword [0x6548e4]
mov eax, dword [ebp - 0x6c]
sub edx, eax
mov ecx, dword [ebp - 0x74]
push ebx
sub esp, 8
push eax
call fcn.004c6f30
add esp, 0x10
test eax, eax
je 0x4c1124
mov edx, dword [0x60946c]
mov ecx, eax
jmp 0x4c16d3
push ebx
mov dword [0x609878], 0
call fcn.0054d155
add esp, 4
test eax, eax
je 0x4c1150
mov eax, dword [ebp - 0x78]
mov edx, dword [0x60946c]
lea ecx, [eax*4 + 0xa]
jmp 0x4c16d3
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4c1160
push eax
call fcn.0054d155
add esp, 4
mov edi, dword [0x654d54]
mov ecx, 0x5cd3d8
mov eax, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c1190
test dl, dl
je 0x4c118c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c1190
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c1170
xor eax, eax
jmp 0x4c1195
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c12bb
cmp dword [ebp - 0x78], 0
jne 0x4c12bb
mov ebx, dword [0x60946c]
lea edx, [ebp - 0x68]
mov ecx, edi
xor esi, esi
call fcn.004c2e70
test eax, eax
jne 0x4c11db
cmp word [ebp - 0x60], 1
jg 0x4c120a
push edi
call fcn.005533af
add esp, 4
test eax, eax
je 0x4c11db
mov esi, 0xf
jmp 0x4c132b
push edi
push ebx
call fcn.00555ed5
add esp, 8
test eax, eax
je 0x4c1202
mov esi, 1
call fcn.00553fe9
cmp dword [eax], 0x12
je 0x4c1202
mov esi, 0xf
jmp 0x4c132b
test esi, esi
je 0x4c12a7
push 0x5bd854
push ebx
call fcn.0054d0c7
mov esi, eax
add esp, 8
mov dword [ebp - 0x7c], esi
test esi, esi
jne 0x4c1244
push ebx
push str._replace:_cant_open__s_n
push 2
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
add esp, 0xc
mov esi, 0xa
jmp 0x4c132b
push 0x5cdd9c
push edi
call fcn.0054d0c7
add esp, 8
mov dword [ebp - 0x78], eax
test eax, eax
jne 0x4c126c
push esi
call fcn.0054d155
add esp, 4
mov esi, 0xf
jmp 0x4c132b
push 0xffffffffffffffff
mov edx, eax
mov ecx, esi
call fcn.004c24b0
add esp, 4
mov esi, eax
push dword [ebp - 0x7c]
call fcn.0054d155
add esp, 4
push dword [ebp - 0x78]
call fcn.0054d155
add esp, 4
test eax, eax
jne 0x4c1308
test esi, esi
jne 0x4c1308
push ebx
call fcn.005533af
add esp, 4
push dword [0x60946c]
call fcn.005417da
mov edi, dword [0x654d54]
add esp, 4
mov esi, dword [ebp - 0x88]
mov dword [0x60946c], 0
test esi, esi
je 0x4c1372
mov ecx, 0x5cd3d8
mov eax, edi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4c135f
test dl, dl
je 0x4c1304
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4c135f
add eax, 2
add ecx, 2
test dl, dl
jne 0x4c12e0
xor eax, eax
jmp 0x4c1364
push edi
call fcn.005533af
add esp, 4
test esi, esi
je 0x4c1326
cmp esi, 0xa
mov eax, 0xe
cmove esi, eax
test esi, esi
je 0x4c12a7
jmp 0x4c132b
mov esi, 0xe
mov edx, dword [0x60946c]
mov ecx, str.new_zip_file_left_as:
call fcn.004bebd0
push dword [0x60946c]
call fcn.005417da
add esp, 4
mov dword [0x60946c], 0
mov edx, str.was_replacing_the_original_zip_file
mov ecx, esi
jmp 0x4c16d3
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c1372
push esi
push edi
call fcn.00553efe
add esp, 8
push dword [ebp - 0x94]
call fcn.005417da
mov eax, dword [ebp - 0x90]
add esp, 4
neg eax
sbb eax, eax
and eax, 0x12
mov ecx, eax
jmp 0x4c0489
mov edx, str.missing_argument_for__b_or__P
mov ecx, 0x10
jmp 0x4c16d3
mov edx, str.mm_not_supported
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.use__b_before_zip_file_name
mov ecx, 0x10
call fcn.004be9e0
push edi
call fcn.005417da
add esp, 4
mov eax, 0x10
test esi, esi
mov edx, str.was_verifying_encryption_password
cmovs esi, eax
mov ecx, esi
call fcn.004be9e0
mov edx, str.password_verification_failed
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.was_verifying_encryption_password
mov ecx, 4
call fcn.004be9e0
mov edx, str.zero_length_password_not_allowed
mov ecx, 0x10
call fcn.004be9e0
test eax, eax
mov ecx, 0x10
mov edx, str.was_getting_encryption_password
cmovs eax, ecx
mov ecx, eax
call fcn.004be9e0
mov edx, str.was_getting_encryption_password
mov ecx, 4
call fcn.004be9e0
mov edx, str.can_only_have_one__P
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.use__P_before_zip_file_name
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.do_not_specify_both__r_and__R
mov ecx, 0x10
call fcn.004be9e0
cmp eax, 0x60987c
mov ecx, str.can_only_have_one__t
mov edx, str.can_only_have_one__tt
cmovne edx, ecx
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.specify_just_one_action
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.use__x_or__i_after_name_of_zipfile
mov ecx, 0x10
call fcn.004be9e0
mov edx, esi
mov ecx, str.name_not_matched:
call fcn.004bebd0
mov edx, esi
mov ecx, 0x12
call fcn.004be9e0
mov edx, esi
mov ecx, eax
call fcn.004be9e0
push ecx
push str.no_such_option:__c
push 0x654900
call fcn.0048d4b0
add esp, 0xc
mov edx, 0x654900
mov ecx, 0x10
call fcn.004be9e0
mov ebx, dword [ebp - 0x78]
mov ecx, str.name_not_matched:
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + ebx*4]
call fcn.004bebd0
mov edx, dword [esi + ebx*4]
mov ecx, 0x12
call fcn.004be9e0
mov edx, dword [ebp - 0x78]
mov ecx, eax
mov esi, dword [ebp - 0x80]
mov edx, dword [esi + edx*4]
call fcn.004be9e0
mov edx, str.invalid_path
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.invalid_time
mov ecx, 0x10
call fcn.004be9e0
mov edi, 4
mov edx, dword [0x654d54]
mov ecx, edi
call fcn.004be9e0
cmp dword [ebp - 0x88], 0x60987c
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.004be9e0
mov ebx, dword [ebp - 0x78]
mov edx, dword [esi + ebx*4]
call fcn.004bebd0
mov edx, dword [esi + ebx*4]
mov ecx, 0x12
call fcn.004be9e0
mov edx, str.nothing_to_select_from
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.cannot_repeat_names_in_zip_file
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.was_processing_list_of_files
mov ecx, eax
call fcn.004be9e0
mov edx, str.missing_suffix_list
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.cant_use__d__f__u_or__g_on_stdout_n
mov ecx, 0x10
call fcn.004be9e0
mov edx, str._M_not_supported__use__MM_for_Must_Match
mov ecx, 0x10
call fcn.004be9e0
mov edx, str.was_processing_arguments
mov ecx, 4
call fcn.004be9e0
mov edx, edi
mov ecx, 0xd
call fcn.004be9e0
mov edx, edi
mov ecx, 0xc
call fcn.004be9e0
mov edx, dword [0x654d54]
mov ecx, 0xf
call fcn.004be9e0
mov edx, str.tried_to_write_binary_zipfile_data_to_console_
mov ecx, 5
call fcn.004be9e0
mov edx, dword [0x60946c]
mov ecx, 4
call fcn.004be9e0
mov edx, dword [0x654d54]
mov ecx, 0xd
call fcn.004be9e0
push ebx
call fcn.00555825
mov edx, dword [0x654d54]
add esp, 4
neg eax
sbb eax, eax
and eax, 9
lea ecx, [eax + 2]
call fcn.004be9e0
mov edx, dword [0x654d54]
mov ecx, 0xd
call fcn.004be9e0
mov edx, str.allocating_temp_filename
mov ecx, 4
call fcn.004be9e0
mov edx, dword [0x60946c]
mov ecx, 0xa
call fcn.004be9e0
mov edx, dword [0x654d54]
cmp eax, 0xa
mov ecx, eax
cmove edx, dword [0x60946c]
call fcn.004be9e0
cmp dword [0x5d7bd0], 0
je 0x4c16b7
push 0x5ba2b4
push 1
call fcn.0054d4c0
add esp, 4
push eax
call fcn.004535a0
add esp, 8
push dword [esi + 0x38]
push str.was_zipping__s
push 0x654900
call fcn.0048d4b0
add esp, 0xc
mov edx, 0x654900
mov ecx, edi
call fcn.004be9e0
push dword [esi + 0x38]
push str.was_zipping__s
push 0x654900
call fcn.0048d4b0
add esp, 0xc
mov edx, 0x654900
mov ecx, 0x12
call fcn.004be9e0
push dword [esi + 0x4c]
push str.was_copying__s
push 0x654900
call fcn.0048d4b0
add esp, 0xc
mov edx, 0x654900
mov ecx, edi
call fcn.004be9e0
mov edx, str.User_terminated_operation
mov ecx, 9
call fcn.004be9e0
push ebx
test dword [ebx], case.0x4bf306.36
or eax, 0x26004bf3
dec ebx
add byte [eax - 0xa], dh
dec ebx
add byte [ebx], dh
dec ebx
add byte [ecx + 0x77004bf3], cl
hlt