Function at 0x52b717
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xbb0
mov eax, dword [ebp + 8]
mov dword [esp + 0xd8], ecx
lea ecx, [esp + 0x380]
mov edi, edx
mov dword [esp + 0xf0], edx
lea esi, [esp + 0x200]
and dword [ecx + 0xc], 0
and dword [ecx + 8], 0
and dword [ecx + 4], 0
mov dword [ecx], 1
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0xf4], eax
push ecx
push edx
push esi
call ebx
add esp, 0xc
xor edx, edx
cmp dword [esi], edx
je 0x52b781
mov ecx, dword [esp + 0x204]
mov esi, dword [esp + 0x208]
jmp 0x52b7ac
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x208]
mov edi, dword [esp + 0x20c]
mov dword [esp + 0x14], ebx
cmp esi, 0x16
mov eax, edi
sbb eax, 0
jae 0x52b7d5
xor edx, edx
mov ecx, 0x625ac4
inc edx
push 0x12
pop esi
mov eax, dword [esp + 0xd8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
and dword [eax], 0
lea eax, [esp + 0xf0]
push eax
call fcn.004fb054
pop eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x308]
mov edx, 0x625a2c
call fcn.0052b459
mov eax, 0x200
xor ebx, ebx
mov dword [esp + 0x60], esi
mov dword [esp + 0x4c], edi
sub esi, eax
sbb edi, ebx
cmovb esi, ebx
cmovb edi, ebx
push eax
push 0
lea eax, [esp + 0x388]
push eax
call fcn.00566f40
mov edx, edi
add esp, 0xc
lea ecx, [esp + 0x138]
mov dword [esp + 0x20c], edx
mov dword [esp + 0x208], esi
and dword [esp + 0x204], 0
and dword [esp + 0x200], 0
lea eax, [esp + 0x200]
push eax
mov edi, esi
push dword [esp + 0x14]
push ecx
mov esi, edx
call dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0x138], ebx
jne 0x52e095
mov edx, dword [esp + 0x60]
mov eax, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
lea ecx, [esp + 0x380]
add eax, 0x200
adc esi, 0
cmp eax, edx
sbb esi, dword [esp + 0x4c]
cmovae eax, edx
mov edx, 0x200
sub eax, edi
push 0x625a90
push eax
call fcn.0045cc11
pop ecx
pop ecx
mov esi, eax
mov eax, dword [ebp + 8]
mov edi, edx
mov eax, dword [eax + 0x20]
push edx
push esi
push dword [esp + 0x18]
lea ecx, [esp + 0x20c]
push ecx
mov dword [esp + 0x80], eax
call eax
add esp, 0x10
cmp byte [esp + 0x200], 4
je 0x52b8d4
cmp byte [esp + 0x200], 4
jne 0x52e655
lea ecx, [esp + 0x200]
lea edx, [esp + 0x308]
push edi
push esi
call fcn.0052b5d5
pop eax
pop ecx
lea ecx, [esp + 0x200]
call fcn.0045bc80
mov esi, dword [esp + 0x30]
test eax, eax
je 0x52bc29
mov eax, dword [esp + 0x28]
add edx, esi
lea esi, [esp + 0x138]
mov dword [esp + 0x140], edx
mov dword [esp + 0x24], edx
adc eax, ebx
mov dword [esp + 0x144], eax
and dword [esp + 0x13c], 0
and dword [esp + 0x138], 0
mov dword [esp + 0x1c], eax
push esi
mov edi, dword [esp + 0x14]
push edi
lea eax, [esp + 0xa8]
push eax
call dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0xa0], ebx
jne 0x52bc7a
push 0x16
pop ecx
xor edx, edx
inc edx
call fcn.0045c366
mov ecx, esi
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], 0x16
call fcn.0055d80d
mov ebx, eax
mov dword [esp + 0xc], edx
push edx
push eax
push edi
push esi
mov eax, dword [ebp + 8]
call dword [eax + 0x20]
add esp, 0x10
cmp byte [esp + 0x138], 4
je 0x52b9b1
mov eax, dword [esp + 0x138]
cmp al, 4
jne 0x52ba6c
mov eax, dword [esp + 0xc]
cmp eax, 0x16
mov dword [esp + 0x1a0], eax
jne 0x52ea1f
mov edx, dword [ebx]
mov eax, dword [ebx + 0x10]
movzx ecx, word [ebx + 0x14]
movsd xmm0, qword [ebx + 4]
mov esi, dword [ebx + 0xc]
cmp edx, 0x6054b50
mov dword [esp + 0x140], esi
movsd qword [esp + 0x138], xmm0
jne 0x52ba31
mov edx, dword [esp + 0x140]
movq xmm0, qword [esp + 0x138]
lea esi, [esp + 0x2cf]
mov dword [esp + 0x2cc], 0x6054b50
mov dword [esp + 0x18], 0
mov word [esp + 0x20], cx
mov dword [esp + 0x5c], eax
mov dword [esi + 9], edx
mov dl, 6
movq qword [esi + 1], xmm0
mov dword [esp + 0xc], edx
jmp 0x52ba58
mov eax, dword [0x625bc8]
movq xmm0, qword [0x625bc0]
lea ecx, [esp + 0x2cf]
mov dword [ecx + 8], eax
mov al, 1
movq qword [ecx], xmm0
mov dword [esp + 0xc], eax
mov al, 1
mov dword [esp + 0x18], eax
mov ecx, ebx
push 0x16
pop edx
call fcn.0044816a
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
jmp 0x52ba98
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0xc]
and dword [esp + 0x2cf], 0
mov dword [esp + 0x2d3], eax
mov dword [esp + 0x2d7], ecx
mov ecx, ebx
call fcn.0044816a
mov al, 1
xor edx, edx
test al, al
movzx esi, word [esp + 0x2d0]
movzx ebx, word [esp + 0x2d2]
movzx ecx, word [esp + 0x2d4]
movzx eax, word [esp + 0x2d6]
je 0x52bb0e
mov byte [esp + 0xa4], dl
mov word [esp + 0xa5], si
mov word [esp + 0xa7], bx
mov word [esp + 0xa9], cx
mov word [esp + 0xab], ax
movzx eax, word [esp + 0x2d8]
mov cl, byte [esp + 0x2da]
mov word [esp + 0xad], ax
mov byte [esp + 0xaf], cl
and dword [esp + 0xa0], 0
jmp 0x52bc14
movzx edi, word [esp + 0x20]
mov word [esp + 0xc], ax
mov eax, dword [esp + 0x2d8]
xor edx, edx
mov word [esp + 0x34], cx
inc edx
mov ecx, edi
mov dword [esp + 0x18], eax
call fcn.0045c366
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edi
lea edi, [esp + 0x138]
mov ecx, edi
call fcn.0055d80d
mov dword [esp + 0x74], edx
push edx
mov dword [esp + 0x7c], eax
push eax
push dword [esp + 0x18]
push edi
call dword [esp + 0x80]
add esp, 0x10
cmp byte [esp + 0x138], 4
je 0x52bb83
mov eax, dword [esp + 0x138]
cmp al, 4
jne 0x52bbe2
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x5c]
movzx edx, word [esp + 0xc]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edi
mov word [esp + 0xb0], si
movzx esi, word [esp + 0x34]
mov word [esp + 0xb2], bx
mov word [esp + 0xb4], si
mov word [esp + 0xb6], dx
je 0x52bc14
jmp 0x52bcb5
mov ecx, dword [esp + 0x13c]
and dword [esp + 0xa4], 0
mov edx, dword [esp + 0x74]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x78]
and dword [esp + 0xa0], 0
call fcn.0044816a
lea eax, [esp + 0xa4]
push eax
call fcn.0051449e
pop eax
xor ebx, ebx
jmp 0x52b8eb
lea ecx, [esp + 0x208]
call fcn.0052b67b
mov edx, dword [esp + 0x28]
mov eax, esi
or eax, edx
je 0x52e69b
add esi, 4
mov ecx, dword [esp + 0x60]
adc edx, ebx
mov eax, edx
mov edi, edx
mov edx, dword [esp + 0x4c]
cmp esi, ecx
sbb eax, edx
cmovae edi, edx
cmovae esi, ecx
lea ecx, [esp + 0x138]
mov edx, edi
sub esi, 0x200
sbb edx, ebx
cmovb edx, ebx
cmovb esi, ebx
jmp 0x52b81b
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea ebx, [esp + 0x380]
mov dword [esp + 0x18], eax
jmp 0x52bcde
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0x5c]
lea ebx, [esp + 0x380]
mov dword [esp + 0xc], ecx
shld ecx, eax, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x208]
call fcn.0052b67b
lea ecx, [esp + 0x308]
call fcn.0052b67b
cmp dword [esp + 0x78], 0
je 0x52bd63
xor eax, eax
mov dword [esp + 0x5c], esi
dec eax
push 0xffffffffffffffd6
pop ecx
sub ecx, dword [esp + 0x74]
sbb eax, 0
mov dword [esp + 0x388], ecx
mov dword [esp + 0x38c], eax
and dword [esp + 0x384], 0
mov dword [esp + 0x380], 1
push ebx
mov esi, dword [esp + 0x14]
push esi
lea eax, [esp + 0x208]
push eax
call dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0x200], 0
je 0x52bd77
mov edi, dword [esp + 0x204]
mov ebx, dword [esp + 0x208]
xor esi, esi
jmp 0x52bf47
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
jmp 0x52b7b3
push 0x14
pop ecx
xor edx, edx
inc edx
call fcn.0045c366
lea edi, [esp + 0x380]
mov ecx, edi
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [edi + 8], 0x14
call fcn.0055d80d
mov ecx, eax
mov eax, dword [ebp + 8]
mov ebx, edx
mov eax, dword [eax + 0x20]
push edx
mov dword [esp + 0x24], ecx
push ecx
push esi
push edi
mov dword [esp + 0x64], eax
call eax
add esp, 0x10
cmp byte [edi], 4
je 0x52bdcb
mov eax, dword [esp + 0x380]
cmp al, 4
jne 0x52bec7
mov ecx, dword [esp + 0x20]
cmp ebx, 0x14
mov dword [esp + 0x138], ebx
jne 0x52eadf
mov eax, dword [ecx]
movsd xmm0, qword [ecx + 4]
mov edx, dword [ecx + 0xc]
mov esi, 1
cmp eax, 0x7064b50
mov dword [esp + 0x388], edx
movsd qword [esp + 0x380], xmm0
jne 0x52be36
mov eax, dword [esp + 0x388]
movq xmm0, qword [esp + 0x380]
mov dword [esp + 0x200], 0x7064b50
xor ebx, ebx
mov dword [esp + 0x20c], eax
mov al, 7
movq qword [esp + 0x204], xmm0
jmp 0x52be57
mov eax, dword [0x625b74]
movq xmm0, qword [0x625b6c]
mov bl, 1
mov dword [esp + 0x20b], eax
mov al, 1
movq qword [esp + 0x203], xmm0
mov dword [esp + 0x34], eax
push 0x14
pop edx
call fcn.0044816a
test bl, bl
mov ebx, dword [esp + 0x34]
jne 0x52bef1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x208]
mov edi, dword [esp + 0x20c]
mov dword [esp + 0x384], 0x62592f
mov dword [esp + 0x388], 0x2f
mov dword [esp + 0x380], 1
cmp ecx, 0x40
mov eax, edx
sbb eax, 0
jae 0x52e0bb
mov edi, dword [esp + 0x384]
mov ebx, dword [esp + 0x388]
jmp 0x52bf47
mov ecx, dword [esp + 0x384]
and dword [esp + 0x203], 0
mov edx, ebx
mov dword [esp + 0x207], eax
mov dword [esp + 0x20b], ecx
mov ecx, dword [esp + 0x20]
call fcn.0044816a
xor ebx, ebx
movzx eax, word [esp + 0x20c]
mov cl, byte [esp + 0x20e]
mov edx, dword [esp + 0x204]
mov esi, dword [esp + 0x208]
mov byte [esp + 0x308], bl
mov dword [esp + 0x309], edx
mov dword [esp + 0x30d], esi
mov byte [esp + 0x313], cl
mov word [esp + 0x311], ax
mov esi, dword [esp + 0x308]
mov edi, dword [esp + 0x30c]
mov ebx, dword [esp + 0x310]
push 0x28
pop ecx
push 8
pop edx
call fcn.004fc1d3
xor ecx, ecx
mov edx, eax
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 8], edi
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x178], ecx
lea ecx, [esp + 0x380]
mov dword [esp + 0xdc], edx
cmp edi, esi
mov eax, ebx
sbb eax, 0
jae 0x52bfbd
mov dword [esp + 0x384], 0x625907
mov dword [esp + 0x388], 0x28
jmp 0x52bff0
sub edi, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x384], 0x625907
mov dword [esp + 0x388], 0x28
mov dword [esp + 0x380], 1
sbb ebx, 0
mov eax, ebx
cmp edi, esi
sbb eax, 0
jae 0x52c011
mov eax, dword [esp + 0x384]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x388]
mov dword [esp + 0x5c], eax
xor eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x34], eax
jmp 0x52c048
mov dword [esp + 0x24], edi
sub edi, esi
mov dword [esp + 0x1c], ebx
sbb ebx, 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x5c], ebx
push ecx
call fcn.0051449e
pop eax
mov eax, 0xffff
mov cl, 1
mov dword [esp + 0x34], 0
and dword [esp + 0xc], eax
and dword [esp + 0x28], eax
and dword [esp + 0x30], eax
push 4
pop eax
imul ebx, dword [esp + 0x14], 0x28
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x194], eax
and dword [esp + 0x198], 0
mov dword [esp + 0x1d8], eax
and dword [esp + 0x1dc], 0
mov dword [esp + 0x12c], 8
and dword [esp + 0x130], 0
and dword [esp + 0x19c], 0
and dword [esp + 0x1e0], 0
and dword [esp + 0x134], 0
xor cl, 1
test ebx, ebx
je 0x52c13a
cmp dword [edi], 0
setne al
or al, cl
jne 0x52c12f
cmp dword [esp + 0xc], 0xffff
je 0x52c0d0
mov eax, dword [esp + 0xc]
mov edx, 0x6258a1
cmp dword [edi + 0x18], eax
push 0x27
pop eax
jne 0x52c106
cmp dword [esp + 0x28], 0xffff
je 0x52c0eb
mov eax, dword [esp + 0x28]
mov edx, 0x625879
cmp dword [edi + 0x1c], eax
push 0x28
pop eax
jne 0x52c106
cmp dword [esp + 0x30], 0xffff
je 0x52c12f
mov eax, dword [esp + 0x30]
mov edx, str.ZIP32_and_ZIP64_last_disk_numbers_dont_matchZIP32_and_ZIP64_disk_numbers_dont_matchZIP32_and_ZIP64_file_counts_dont_match
cmp dword [edi + 0x20], eax
push 0x2d
pop eax
je 0x52c12f
mov esi, ecx
mov ecx, edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
call fcn.00514640
mov ecx, esi
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
xor eax, eax
inc eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov dword [edi + 0xc], edx
add edi, 0x28
add ebx, 0xffffffd8
jmp 0x52c0a3
mov edx, dword [esp + 0x178]
mov ebx, dword [esp + 0x14]
cmp ebx, edx
jne 0x52c168
lea edi, [esp + 0x1e4]
mov ecx, edi
call fcn.0052b3eb
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
mov ecx, dword [edi]
mov dword [esp + 0x178], eax
jmp 0x52c16f
mov ecx, dword [esp + 0xdc]
imul eax, ebx, 0x28
mov edx, dword [esp + 0x20]
mov dword [esp + 0xdc], ecx
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x5c]
inc ebx
lea eax, [ecx + eax + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov dword [eax - 0x28], ecx
mov dword [eax - 0x24], 1
mov dword [eax - 0x20], edx
mov edx, dword [esp + 0x1c]
mov dword [eax - 0x1c], edi
mov dword [eax - 0x18], esi
mov esi, dword [esp + 0x28]
mov dword [eax - 0x14], edx
mov edx, dword [esp + 0xc]
mov dword [eax - 0x10], edx
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0xdc]
mov dword [eax - 8], edx
mov dword [esp + 0x1ec], ebx
cmp esi, dword [esp + 0x60]
je 0x52da76
mov eax, dword [esi]
lea ecx, [esi + 0x28]
cmp eax, 2
je 0x52da74
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
test eax, eax
mov dword [esp + 0x70], edi
je 0x52c213
mov edi, dword [esi + 4]
mov esi, ebx
mov dword [esp + 0x24], edx
jmp 0x52d8cd
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x54], edx
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x50], ebx
lea ebx, [esp + 0x380]
mov esi, ecx
mov ecx, ebx
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2c4], edx
call fcn.00479a24
lea ecx, [esp + 0x2f8]
mov edx, ebx
call fcn.005144b3
mov eax, dword [esp + 0x300]
mov edx, dword [esp + 0x304]
mov ecx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x10], eax
lea eax, [esi - 1]
mov ebx, dword [esp + 0x2fc]
cmp eax, edi
mov dword [esp + 0xd4], esi
jae 0x52c330
mov dword [esp + 0x18], ebx
mov ebx, edx
mov edx, esi
call fcn.00514795
movq xmm0, qword [esp + 0x380]
movsd xmm1, qword [esp + 0x388]
cmp esi, 0xb21642
movsd qword [esp + 0x208], xmm1
movq qword [esp + 0x200], xmm0
ja 0x52ea4c
imul esi, esi, 0xb8
test esi, esi
js 0x52ea4c
push 8
pop ecx
mov edx, esi
call fcn.004d1536
test eax, eax
je 0x52ea7f
movq xmm0, qword [esp + 0x200]
movq xmm1, qword [esp + 0x208]
mov esi, dword [esp + 0xd4]
lea ecx, [esp + 0xb0]
mov edx, ebx
mov ebx, dword [esp + 0x18]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc4], esi
and dword [esp + 0xc8], 0
jmp 0x52c36f
movq xmm0, qword [0x62c6f8]
movq xmm1, qword [0x62c6f0]
lea eax, [esp + 0xb0]
movq qword [eax + 8], xmm0
movq qword [eax], xmm1
mov dword [esp + 0xc0], 8
and dword [esp + 0xc4], 0
and dword [esp + 0xc8], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38c], eax
mov dword [esp + 0x388], edi
and dword [esp + 0x384], 0
and dword [esp + 0x380], 0
mov eax, dword [esp + 0xf4]
lea edi, [esp + 0x380]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], ecx
push edi
push dword [esp + 0xf4]
lea ecx, [esp + 0x208]
push ecx
call dword [eax + 0x2c]
add esp, 0xc
xor eax, eax
cmp dword [esp + 0x200], eax
je 0x52c3fb
mov edi, dword [esp + 0x204]
mov esi, dword [esp + 0x208]
mov dword [esp + 0x1c], 0
jmp 0x52d8af
mov dword [esp + 0x98], 0
cmp dword [esp + 0x98], esi
je 0x52d772
mov ebx, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
push ebx
push edi
call dword [esi + 0x38]
add esp, 8
cmp dword [esp + 0x380], 0
jne 0x52d7ed
mov eax, dword [esp + 0x388]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x68], eax
push 0x2e
pop ecx
xor edx, edx
inc edx
call fcn.0045c366
mov ecx, edi
mov dword [esp + 0x380], eax
mov dword [esp + 0x384], edx
mov dword [esp + 0x388], 0x2e
call fcn.0055d80d
mov ecx, edi
mov edi, eax
mov dword [esp + 0xc], edx
push edx
push eax
mov dword [esp + 0x30], ebx
push ebx
push ecx
mov dword [esp + 0x34], esi
call dword [esi + 0x20]
add esp, 0x10
cmp byte [esp + 0x380], 4
je 0x52c4ac
mov edx, dword [esp + 0x380]
cmp dl, 4
jne 0x52da48
mov eax, dword [esp + 0xc]
cmp eax, 0x2e
mov dword [esp + 0x110], eax
jne 0x52ea53
cmp dword [edi], 0x2014b50
mov esi, dword [esp + 0x28]
jne 0x52c55b
mov eax, dword [edi + 0x2a]
lea edx, [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x128], eax
mov eax, dword [edi + 0x26]
mov dword [esp + 0x180], eax
movzx eax, word [edi + 0x20]
mov word [esp + 0x90], ax
movzx eax, word [edi + 0x1e]
mov word [esp + 0x184], ax
movzx eax, word [edi + 0x1c]
mov word [esp + 0x188], ax
mov al, byte [edi + 0xf]
mov byte [esp + 0x18c], al
mov eax, dword [edi + 0x18]
mov dword [esp + 0x17c], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0xe0], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 7]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xb]
mov dword [esp + 0x38], 0x2014b50
movzx ecx, word [edi + 4]
mov dword [esp + 0xc], eax
mov ah, byte [edi + 6]
mov word [edx], cx
mov byte [edx + 2], ah
jmp 0x52c578
mov eax, dword [str.Invalid_Central_Directory_header]
mov ecx, dword [0x625bf4]
mov bl, 1
mov dword [esp + 0x3b], 1
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
mov ecx, edi
push 0x2e
pop edx
call fcn.0044816a
mov eax, dword [esp + 0x3b]
test bl, bl
mov dword [esp + 0x1c], eax
jne 0x52d7fd
mov eax, dword [esp + 0x18]
lea edi, [esp + 0x380]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x2b8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2bc], eax
mov al, byte [esp + 0x18c]
mov byte [esp + 0x2c0], al
movzx eax, word [esp + 0x2bb]
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x2bf]
mov word [esp + 0x58], ax
movzx eax, word [esp + 0x188]
push eax
mov ebx, esi
mov esi, dword [esp + 0x28]
push esi
call fcn.0051496f
pop eax
pop ecx
cmp dword [esp + 0x380], 0
mov eax, dword [esp + 0x388]
mov dword [esp + 0x20], eax
jne 0x52d80a
mov eax, dword [esp + 0x384]
mov ecx, edi
mov edx, ebx
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x184]
push eax
push esi
call fcn.0051496f
pop eax
pop ecx
cmp dword [esp + 0x380], 0
mov eax, dword [esp + 0x388]
jne 0x52d822
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x384]
mov ecx, edi
mov edx, ebx
mov dword [esp + 0x4c], eax
movzx eax, word [esp + 0x90]
push eax
push esi
call fcn.0051496f
pop eax
pop ecx
cmp dword [esp + 0x380], 0
mov esi, dword [esp + 0x388]
jne 0x52d82d
bt dword [esp + 0x18], 0x13
mov ebx, dword [esp + 0x384]
jb 0x52c6af
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
call fcn.0046d554
mov ecx, eax
call fcn.0055de4b
mov dword [esp + 0x64], edx
mov ecx, ebx
mov edx, esi
mov dword [esp + 0x24], eax
call fcn.0055de4b
jmp 0x52c6e0
mov edx, dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x20]
call fcn.00412e90
pop eax
mov ecx, edi
call fcn.005149ec
mov dword [esp + 0x64], edx
mov edx, ebx
mov dword [esp + 0x24], eax
mov ecx, edi
push esi
call fcn.00412e90
pop eax
mov ecx, edi
call fcn.005149ec
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2a0], eax
mov cl, 4
mov dword [esp + 0x8c], ebx
movzx ebx, word [esp + 0x58]
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x28], 0
mov eax, edx
shr edx, 0x10
movzx esi, bx
shr eax, 8
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x18]
shr eax, 8
cmp dl, 3
mov dword [esp + 0x94], eax
sete al
sub cl, al
xor eax, eax
test dl, dl
movzx ecx, cl
cmove ecx, eax
xor edx, edx
mov dword [esp + 0x190], ecx
movzx ecx, word [esp + 0x14]
cmp cx, 8
setne dl
inc edx
test cx, cx
mov ecx, 0x62e05c
cmove edx, eax
mov eax, esi
shr eax, 5
mov dword [esp + 0x1c], edx
and al, 0xf
movzx edi, al
mov edx, edi
call fcn.0055e083
test al, al
je 0x52c831
mov ecx, dword [esp + 0xc]
mov eax, ebx
and al, 0x1f
movzx edx, al
mov dword [esp + 0x58], edx
shr ecx, 8
mov ebx, ecx
mov dword [esp + 0xe8], ecx
add bl, cl
mov ecx, 0x62e05f
and bl, 0x3e
call fcn.0055e083
cmp bl, 0x3c
mov byte [esp + 0x9f], bl
ja 0x52c83b
mov ebx, dword [esp + 0xc]
shr ebx, 0xd
and bl, 0x3f
cmp bl, 0x3b
ja 0x52c83b
movzx ecx, word [esp + 0xe8]
shr ecx, 0xb
cmp cl, 0x17
ja 0x52c83b
test al, al
je 0x52c83b
mov edx, dword [esp + 0x58]
shr esi, 9
shl edi, 0x10
add esi, 0x7bc
movzx eax, si
movzx esi, bl
or edi, eax
shl esi, 8
shl edx, 0x18
or edx, edi
movzx edi, cx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x124]
and edx, 0xff000000
or edi, edx
movzx edx, byte [esp + 0x9f]
or esi, edi
shl edx, 0x10
or edx, esi
mov dword [esp + 0x124], edx
xor edx, edx
inc edx
mov dword [esp + 0xc], edx
jmp 0x52c843
mov dword [esp + 0xc], 0
jmp 0x52c843
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0x30]
inc dword [esp + 0x98]
xor edx, edx
mov ecx, esi
call fcn.0045c366
mov ebx, eax
mov dword [esp + 0xe8], edx
push esi
push dword [esp + 0x50]
push eax
call fcn.005669c0
add esp, 0xc
push 0x14
pop ecx
push 4
pop edi
mov edx, edi
call fcn.004fc1d3
mov ecx, eax
xor eax, eax
mov edx, dword [esp + 0x94]
inc eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xe8]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x190]
mov dword [ecx + 0x10], esi
mov esi, dword [esp + 0x6c]
and dword [esp + 0x114], 0
and dword [esp + 0x110], 0
mov byte [esp + 0x425], al
mov eax, dword [esp + 0xec]
mov byte [esp + 0x426], al
mov eax, edx
shr dl, 3
and al, 1
and dl, 1
mov byte [esp + 0x422], al
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x423], dl
mov edx, dword [esp + 0x180]
mov word [esp + 0x3f8], ax
movzx eax, word [esp + 0x14]
mov word [esp + 0x3fa], ax
mov eax, dword [esp + 0xc]
and dword [esp + 0x384], 0
and dword [esp + 0x380], 0
mov dword [esp + 0xc], ecx
mov word [esp + 0x418], ax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x41a], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x41e], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0xe0]
and dword [esp + 0x3c4], 0
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 0x17c]
and dword [esp + 0x3cc], 0
mov dword [esp + 0x3c8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3a8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], edi
lea edi, [esp + 0x38]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x40c], ecx
and dword [esp + 0x410], 0
mov dword [esp + 0x3b8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x128]
and dword [esp + 0x3d4], 0
mov dword [esp + 0x3d0], eax
mov eax, dword [esp + 0x68]
and dword [esp + 0x394], 0
and dword [esp + 0x390], 0
mov dword [esp + 0x3d8], esi
mov dword [esp + 0x3dc], eax
and dword [esp + 0x3e8], 0
mov dword [esp + 0x414], edx
mov byte [esp + 0x424], 0
and word [esp + 0x3a0], 0
and dword [esp + 0x3f0], 0
and dword [esp + 0x3f4], 0
mov dword [esp + 0x3fc], 4
and dword [esp + 0x400], 0
and dword [esp + 0x404], 0
lea eax, [ecx + 8]
mov dword [esp + 0x118], eax
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x10], eax
jbe 0x52cf73
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055dfd4
cmp byte [esp + 0x38], 4
jne 0x52ca8e
movzx ebx, word [esp + 0x3a]
jmp 0x52ca9e
mov ebx, dword [esp + 0x38]
cmp bl, 4
jne 0x52cf86
shr ebx, 0x10
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055dfd4
cmp byte [esp + 0x38], 4
jne 0x52caba
movzx ecx, word [esp + 0x3a]
jmp 0x52caca
mov ecx, dword [esp + 0x38]
cmp cl, 4
jne 0x52cf91
shr ecx, 0x10
cmp bx, 1
je 0x52cb43
movzx eax, bx
cmp eax, 0x5455
je 0x52cb12
cmp eax, 0x9901
jne 0x52cba5
cmp cx, 7
jne 0x52d753
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055dfd4
cmp byte [esp + 0x38], 4
jne 0x52ccf2
movzx ebx, word [esp + 0x3a]
jmp 0x52cd02
mov dword [esp + 0x14], ecx
mov byte [esp + 0x2f], 0
mov ecx, edi
lea edx, [esp + 0x110]
push 1
lea eax, [esp + 0x33]
push eax
call fcn.0055dd77
pop eax
pop ecx
cmp byte [esp + 0x38], 4
jne 0x52cbaf
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x52cbc2
mov eax, dword [esp + 0x3c8]
not eax
or eax, dword [esp + 0x3cc]
jne 0x52cc41
mov esi, ecx
mov ecx, edi
lea edx, [esp + 0x110]
mov byte [esp + 0x424], 1
call fcn.0055e01d
cmp dword [esp + 0x38], 0
jne 0x52cf7c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
movzx esi, si
mov ebx, 0
add esi, 0xfffffff8
adc ebx, 0xffffffff
mov dword [esp + 0x3cc], ecx
mov dword [esp + 0x3c8], eax
jmp 0x52cc46
movzx esi, cx
xor ebx, ebx
jmp 0x52ccdc
cmp byte [esp + 0x38], 4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jne 0x52d04b
mov bl, byte [esp + 0x2f]
cmp dx, 5
je 0x52cc00
mov eax, ebx
mov ecx, ebx
shr al, 1
and al, 0x55
sub cl, al
mov eax, ecx
shr cl, 2
and al, 0x33
and cl, 0x33
add cl, al
mov eax, ecx
shr al, 4
add al, cl
mov ecx, dword [esp + 0x10]
and al, 0xf
shl al, 2
or al, 1
movzx eax, al
cmp dx, ax
jne 0x52d057
cmp bl, 8
jae 0x52cfb3
cmp dx, 5
je 0x52cc1b
mov eax, ebx
xor esi, esi
and al, 1
je 0x52ce4d
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055df91
cmp byte [esp + 0x38], 4
jne 0x52ce2d
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jmp 0x52ce42
movzx esi, cx
xor ebx, ebx
mov eax, dword [esp + 0x3c0]
not eax
or eax, dword [esp + 0x3c4]
jne 0x52cc95
mov ecx, edi
lea edx, [esp + 0x110]
mov byte [esp + 0x424], 1
call fcn.0055e01d
cmp dword [esp + 0x38], 0
jne 0x52cf7c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
add esi, 0xfffffff8
adc ebx, 0xffffffff
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 0x3d0]
not eax
or eax, dword [esp + 0x3d4]
jne 0x52ccdc
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055e01d
cmp dword [esp + 0x38], 0
jne 0x52cf7c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
add esi, 0xfffffff8
adc ebx, 0xffffffff
mov dword [esp + 0x3d4], ecx
mov dword [esp + 0x3d0], eax
mov eax, esi
neg eax
mov eax, 0
sbb eax, ebx
jl 0x52ce06
jmp 0x52cf67
mov ebx, dword [esp + 0x38]
cmp bl, 4
jne 0x52cf86
shr ebx, 0x10
mov ecx, edi
lea edx, [esp + 0x110]
call fcn.0055dfd4
cmp byte [esp + 0x38], 4
jne 0x52cd1e
movzx esi, word [esp + 0x3a]
jmp 0x52cd30
mov ecx, dword [esp + 0x38]
cmp cl, 4
jne 0x52cf91
shr ecx, 0x10
mov esi, ecx
mov byte [esp + 0x2f], 0
mov ecx, edi
lea edx, [esp + 0x110]
push 1
lea eax, [esp + 0x33]
push eax
call fcn.0055dd77
pop eax
pop ecx
cmp byte [esp + 0x38], 4
je 0x52cd60
mov edx, dword [esp + 0x38]
cmp dl, 4
jne 0x52cfc2
mov al, byte [esp + 0x2f]
mov ecx, edi
lea edx, [esp + 0x110]
mov byte [esp + 0x14], al
call fcn.0055dfd4
cmp byte [esp + 0x38], 4
jne 0x52cd84
movzx edx, word [esp + 0x3a]
jmp 0x52cd94
mov edx, dword [esp + 0x38]
cmp dl, 4
jne 0x52cfc2
shr edx, 0x10
xor eax, eax
cmp dx, 8
mov ecx, 0
setne al
inc eax
test dx, dx
cmove eax, ecx
cmp si, 0x4541
jne 0x52cfd2
lea ecx, [ebx - 1]
cmp cx, 2
jae 0x52cff9
mov ch, byte [esp + 0x14]
mov cl, ch
dec cl
cmp cl, 3
jae 0x52d020
mov word [esp + 0x3a0], bx
xor ebx, ebx
mov byte [esp + 0x3a2], ch
mov word [esp + 0x3a4], ax
mov word [esp + 0x3a6], dx
mov word [esp + 0x3f8], ax
mov word [esp + 0x3fa], dx
push 7
pop esi
mov ecx, edi
lea edx, [esp + 0x110]
push ebx
push esi
push 0
push 2
call fcn.0055dde2
add esp, 0x10
cmp dword [esp + 0x38], 0
je 0x52cf67
jmp 0x52cf7c
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
cmp dl, 4
jne 0x52d053
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor esi, esi
inc esi
mov dword [esp + 0x1c], esi
xor edi, edi
cmp dx, 6
mov esi, 0
jb 0x52cea5
mov eax, ebx
and al, 2
je 0x52cea5
lea ecx, [esp + 0x38]
lea edx, [esp + 0x110]
call fcn.0055df91
cmp byte [esp + 0x38], 4
jne 0x52ce85
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
jmp 0x52ce9a
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
cmp dl, 4
jne 0x52d053
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor esi, esi
inc esi
cmp dx, 6
jb 0x52ced1
and bl, 4
je 0x52ceef
lea ecx, [esp + 0x38]
lea edx, [esp + 0x110]
call fcn.0055df91
cmp byte [esp + 0x38], 4
jne 0x52ced3
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
jmp 0x52cee8
jmp 0x52ceef
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
cmp dl, 4
jne 0x52d74a
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
xor edi, edi
inc edi
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x400]
jne 0x52cf25
lea ecx, [esp + 0x3fc]
mov ebx, edi
call fcn.0055dcef
mov eax, dword [esp + 0x40c]
mov ecx, dword [esp + 0x3fc]
mov edx, dword [esp + 0x404]
mov dword [esp + 0xc], eax
jmp 0x52cf27
mov ebx, edi
mov edi, dword [esp + 0x1c]
imul eax, edx, 0x18
inc edx
mov dword [esp + 0x28], edx
mov dword [ecx + eax], edi
mov edi, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov dword [edi + eax + 4], ecx
mov dword [edi + eax + 8], esi
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov dword [edi + eax + 0xc], ecx
mov dword [edi + eax + 0x14], esi
mov dword [edi + eax + 0x10], ebx
lea edi, [esp + 0x38]
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x110]
jmp 0x52ca65
mov edi, dword [esp + 0x54]
jmp 0x52d08b
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
jmp 0x52cf8a
mov eax, dword [esp + 0x3c]
and dword [esp + 0x7c], 0
jmp 0x52cf9c
mov eax, dword [esp + 0x3c]
and dword [esp + 0x7c], 0
mov ebx, ecx
mov edi, dword [esp + 0x54]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
jmp 0x52d080
mov edx, 0x62de7c
push 2
pop eax
push 0x3d
jmp 0x52d061
mov esi, dword [esp + 0x3c]
and dword [esp + 0x7c], 0
xor eax, eax
jmp 0x52d066
mov edx, 0x62dfe5
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 0x62dfe5
mov dword [esp + 0x84], 0x12
push 0x12
jmp 0x52d045
mov edx, 0x62dfcb
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 0x62dfcb
mov dword [esp + 0x84], 0x1a
push 0x1a
jmp 0x52d045
mov edx, 0x62dfac
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], 0x62dfac
mov dword [esp + 0x84], 0x1f
push 0x1f
pop esi
xor eax, eax
inc eax
jmp 0x52d074
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
xor eax, eax
jmp 0x52d062
mov edx, 0x62deb9
push 2
pop eax
push 0x35
pop esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
mov edi, dword [esp + 0x54]
test eax, eax
jne 0x52d75e
lea eax, [esp + 0x7c]
push eax
call fcn.0051449e
pop eax
lea ecx, [esp + 0x380]
cmp word [esp + 0x3f8], 2
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x1f0]
jne 0x52d0c2
cmp word [esp + 0x3fa], 0x63
jne 0x52d0c2
cmp word [esp + 0x3a0], 0
je 0x52d85a
mov esi, dword [esp + 0x3d0]
mov dword [esp + 0x3c], str.Archive_header_is_too_largeAES_encryption_without_AES_extra_data_field
mov dword [esp + 0x40], 0x1b
mov dword [esp + 0x38], 1
add esi, edi
mov edi, dword [esp + 0x3d4]
adc edi, eax
jb 0x52d86b
lea eax, [esp + 0x38]
push eax
call fcn.0051449e
pop eax
mov dword [esp + 0x3d0], esi
mov dword [esp + 0x3d4], edi
lea esi, [esp + 0x3b0]
bt dword [esp + 0x18], 0x13
mov ecx, dword [esp + 0x384]
mov edx, dword [esp + 0x388]
mov eax, dword [esp + 0x380]
movq xmm0, qword [esi - 0x1c]
movq xmm1, qword [esi - 0x14]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x38c]
mov dword [esp + 0x1c], edx
mov edx, dword [esi - 0xc]
mov dword [esp + 0x6c], eax
movq qword [esp + 0xf8], xmm0
movq qword [esp + 0x100], xmm1
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x390]
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x3a8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x58], edx
mov dword [esp + 0xc], ecx
push 0x1e
pop ecx
lea edi, [esp + 0x200]
rep movsd dword es:[edi], dword [esi]
jae 0x52d1a7
mov ecx, dword [esp + 0x8c]
mov edx, ebx
call fcn.0044816a
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
call fcn.0044816a
mov eax, dword [esp + 0x6c]
xor eax, 2
or eax, dword [esp + 0x68]
je 0x52da16
mov eax, dword [esp + 0x108]
movq xmm0, qword [esp + 0xf8]
movsd xmm1, qword [esp + 0x100]
mov dword [esp + 0x1d0], eax
movsd qword [esp + 0x1c8], xmm1
movq qword [esp + 0x1c0], xmm0
push 0x1e
pop ecx
lea edi, [esp + 0x308]
lea esi, [esp + 0x200]
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
test edi, edi
je 0x52d234
js 0x52ea4c
mov al, byte [0x640d9c]
xor edx, edx
mov ecx, edi
inc edx
call fcn.00403fe0
test eax, eax
je 0x52ea78
push edi
push dword [esp + 0x5c]
push eax
mov ebx, eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x14], ebx
mov edi, eax
xor edi, 0x70736575
mov dword [esp + 0x200], edi
mov edi, ecx
xor edi, 0x736f6d65
mov dword [esp + 0x204], edi
mov edi, eax
xor edi, 0x6e657261
mov dword [esp + 0x208], edi
mov edi, ecx
xor edi, 0x6c796765
mov dword [esp + 0x20c], edi
mov edi, edx
xor edi, 0x6e646f6d
mov dword [esp + 0x210], edi
mov edi, esi
xor edi, 0x646f7261
mov dword [esp + 0x214], edi
mov edi, edx
xor edi, 0x79746573
mov dword [esp + 0x218], edi
mov edi, esi
xor edi, 0x74656462
mov dword [esp + 0x21c], edi
mov dword [esp + 0x224], ecx
lea ecx, [esp + 0x230]
mov dword [esp + 0x220], eax
mov dword [esp + 0x228], edx
mov dword [esp + 0x22c], esi
lea esi, [esp + 0x200]
mov edx, ebx
and dword [ecx + 8], 0
and dword [ecx + 0xc], 0
and dword [ecx], 0
and dword [ecx + 4], 0
mov ecx, esi
push dword [esp + 0xc]
call fcn.004ffb54
pop eax
mov byte [esp + 0xf8], 0xff
mov ecx, esi
lea edx, [esp + 0xf8]
push 1
call fcn.004ffb54
pop eax
mov ecx, esi
call fcn.004778df
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc0]
mov esi, eax
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x30], edx
cmp dword [esp + 0xb8], ecx
je 0x52d5b8
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x94], esi
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x64], 0
mov dword [esp + 0x4c], 0
mov ecx, eax
mov dword [esp + 0x18], eax
and ecx, esi
shr esi, 0x19
movd xmm0, esi
mov dword [esp + 0xec], esi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + 0x2a0], xmm0
movdqu xmm1, xmmword [edx + ecx]
mov edi, edx
mov dword [esp + 0x10], ecx
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0x1f0], xmm1
pmovmskb eax, xmm0
mov word [esp + 0x200], ax
lea ecx, [esp + 0x200]
call fcn.004ff471
test eax, eax
je 0x52d439
add edx, dword [esp + 0x10]
mov eax, edi
and edx, dword [esp + 0x18]
shl edx, 2
sub eax, edx
mov ebx, dword [eax - 4]
cmp ebx, dword [esp + 0x28]
jae 0x52e0a8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
imul esi, ebx, 0xb8
push dword [eax + esi + 0xac]
push dword [eax + esi + 0xa8]
call fcn.004153c1
pop ecx
pop edx
test al, al
je 0x52d3e0
jmp 0x52d4b3
mov edx, edi
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x10]
movdqa xmm1, xmmword [esp + 0x1f0]
mov esi, 1
jne 0x52d473
pmovmskb eax, xmm1
test eax, eax
je 0x52d471
bsf edi, eax
add edi, ecx
and edi, dword [esp + 0x18]
xor esi, esi
inc esi
jmp 0x52d473
xor esi, esi
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x52d5d2
mov eax, dword [esp + 0x64]
movdqa xmm0, xmmword [esp + 0x2a0]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x88], edi
lea ecx, [eax + ecx + 0x10]
add eax, 0x10
and ecx, dword [esp + 0x18]
mov dword [esp + 0x64], eax
jmp 0x52d3bc
mov edx, dword [esp + 0xc8]
cmp edx, ebx
jbe 0x52e769
mov eax, dword [esp + 0xc0]
lea edi, [eax + esi + 8]
mov dword [esp + 0x18], eax
mov ebx, dword [edi - 8]
mov eax, dword [edi - 4]
mov dword [esp + 0x10], eax
push 0xa0
push edi
lea eax, [esp + 0x208]
push eax
call fcn.005669c0
add esp, 0xc
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x6c]
mov dword [edi - 8], eax
mov eax, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 8], eax
movq xmm0, qword [esp + 0x1c0]
movq xmm1, qword [esp + 0x1c8]
movq qword [edi + 0xc], xmm0
movq qword [edi + 0x14], xmm1
mov eax, dword [esp + 0x1d0]
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], edx
mov edx, dword [esp + 0xc]
mov dword [edi + 0x24], edx
lea edi, [ecx + esi + 0x30]
push 0x1e
pop ecx
lea esi, [esp + 0x308]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
call fcn.0044816a
lea eax, [esp + 0x200]
mov dword [esp + 0x380], ebx
mov dword [esp + 0x384], esi
push 0xa0
push eax
lea eax, [esp + 0x390]
push eax
call fcn.005669c0
add esp, 0xc
xor ebx, 2
lea edi, [esp + 0x380]
or ebx, esi
mov esi, dword [esp + 0xd4]
je 0x52c406
mov ecx, edi
call fcn.0051455d
jmp 0x52c406
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xb0]
push dword [esp + 0x28]
call fcn.0057a70b
pop ecx
jmp 0x52d36a
mov al, byte [edx + edi]
test al, al
js 0x52d5e7
movdqa xmm0, xmmword [edx]
pmovmskb eax, xmm0
bsf edi, eax
mov al, byte [edx + edi]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x18]
and al, 1
mov ebx, dword [esp + 0xec]
movzx eax, al
sub esi, eax
lea eax, [edi - 0x10]
and ecx, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xb8], esi
mov byte [edx + edi], bl
shl edi, 2
mov byte [ecx + edx + 0x10], bl
neg edi
lea ecx, [eax + 1]
mov dword [esp + 0xbc], ecx
mov dword [edx + edi - 4], eax
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
cmp edx, eax
jne 0x52d696
add esi, ecx
mov eax, 0xb21642
cmp esi, eax
cmovae esi, eax
sub esi, edx
cmp esi, 1
jbe 0x52d672
lea ecx, [esp + 0xc0]
push esi
call fcn.005146f0
pop ecx
cmp eax, 0x80000001
je 0x52d688
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0xc0]
push 1
call fcn.005146f0
pop ecx
mov ecx, eax
call fcn.0040419b
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
cmp edx, eax
jne 0x52d6af
lea ecx, [esp + 0xc0]
mov edx, eax
call fcn.00514662
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
imul ecx, edx, 0xb8
mov ebx, dword [esp + 0xc]
lea eax, [eax + ecx + 0x30]
mov ecx, dword [esp + 0x68]
mov dword [eax - 0x2c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax - 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax - 0x28], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax - 0x24], ecx
mov dword [eax - 0x20], edi
movq xmm0, qword [esp + 0x1c0]
movq xmm1, qword [esp + 0x1c8]
movq qword [eax - 0x1c], xmm0
movq qword [eax - 0x14], xmm1
mov ecx, dword [esp + 0x1d0]
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax - 8], ecx
mov dword [eax - 4], ebx
push 0x1e
pop ecx
lea esi, [esp + 0x308]
mov edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x94]
xor esi, esi
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], ebx
mov dword [eax + 0x80], edi
mov dword [esp + 0xc8], edx
push 2
pop ebx
jmp 0x52d568
xor eax, eax
mov esi, ecx
jmp 0x52d062
mov edx, 0x62dff7
push 0x2e
pop esi
push 2
pop eax
mov ebx, dword [esp + 0x1f0]
mov edi, esi
mov dword [esp + 0x1c], eax
mov esi, edx
jmp 0x52d87a
mov eax, dword [esp + 0x2c4]
cmp dword [esp + 0x2c8], eax
jne 0x52da23
lea edx, [esp + 0xb0]
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov esi, dword [esp + 0xa8]
movsd xmm1, qword [edx + 0xc]
mov ecx, dword [edx + 0x1c]
movq xmm0, qword [edx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xac]
movsd qword [esp + 0x1a8], xmm1
movq xmm1, qword [edx + 0x14]
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0xb0]
movq qword [esp + 0x1a0], xmm0
movq qword [esp + 0x1b0], xmm1
jmp 0x52da3f
mov eax, dword [esp + 0x384]
mov esi, dword [esp + 0x388]
jmp 0x52d815
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
jmp 0x52d8ad
mov eax, dword [esp + 0x384]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x1c], 0
jmp 0x52d8ad
mov edi, dword [esp + 0x384]
mov esi, eax
jmp 0x52d841
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x384]
call fcn.0044816a
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
call fcn.0044816a
mov dword [esp + 0x1c], 0
mov eax, edi
jmp 0x52d8ad
xor eax, eax
mov esi, 0x62580f
inc eax
mov dword [esp + 0x1c], eax
push 0x2b
pop edi
jmp 0x52d881
xor eax, eax
mov esi, str.Archive_header_is_too_largeAES_encryption_without_AES_extra_data_field
inc eax
mov dword [esp + 0x1c], eax
push 0x1b
pop edi
lea ecx, [esp + 0x380]
call fcn.0051455d
bt dword [esp + 0x18], 0x13
jae 0x52d89c
mov ecx, dword [esp + 0x8c]
mov edx, ebx
call fcn.0044816a
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x30]
call fcn.0044816a
mov eax, esi
mov esi, edi
mov edi, eax
lea ecx, [esp + 0xa0]
mov dword [esp + 0x24], edi
call fcn.005144fd
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x138], edi
mov edi, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1b0]
movq xmm1, qword [esp + 0x1a8]
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], esi
mov dword [esp + 0x144], eax
mov edi, esi
mov esi, ecx
mov dword [esp + 0x148], ecx
lea ecx, [esp + 0x14c]
mov eax, dword [esp + 0x1b8]
movsd qword [ecx + 0x10], xmm0
movq xmm0, qword [esp + 0x1a0]
movq qword [ecx + 8], xmm1
test esi, esi
mov dword [ecx + 0x18], eax
movq qword [ecx], xmm0
mov dword [esp + 0x168], edx
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x174], edx
mov dword [esp + 0x170], ecx
je 0x52d9aa
mov edx, dword [esp + 0x134]
cmp edx, dword [esp + 0x130]
jne 0x52d981
lea ecx, [esp + 0x12c]
call fcn.005145b6
mov edx, dword [esp + 0x134]
mov edi, edx
shl edi, 6
add edi, dword [esp + 0x12c]
push 0x10
pop ecx
lea esi, [esp + 0x138]
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x134], edx
mov esi, dword [esp + 0x34]
jmp 0x52c1cf
mov eax, edi
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x1c], 2
jne 0x52d9fa
lea ecx, [esp + 0x1d8]
lea edx, [esp + 0x380]
mov dword [esp + 0x384], edi
mov dword [esp + 0x388], eax
mov dword [esp + 0x380], 2
call fcn.00477795
lea eax, [esp + 0x138]
push eax
call fcn.0051449e
pop eax
mov esi, dword [esp + 0x34]
jmp 0x52c1cf
lea ecx, [esp + 0x194]
lea edx, [esp + 0x138]
call fcn.00477795
mov esi, dword [esp + 0x34]
jmp 0x52c1cf
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
jmp 0x52d8ad
lea ecx, [esp + 0xa0]
call fcn.005144fd
mov dword [esp + 0x24], str.Support_for_multi_disk_files_is_not_implementedInvalid_central_directory_size_or_offsetFile_cannot_contain_ZIP64_central_directory_endZIP64_footer_indicates_a_new_version_is_needed_to_extract_this_archive_than_the_version_that_wrote_itZIP64_footer_indicates_more_files_on_this_disk_than_in_the_whole_archivePassword_required_to_decrypt_filePK
push 0x2f
pop esi
push 2
pop edi
xor ecx, ecx
mov ebx, dword [esp + 0x50]
jmp 0x52d8c9
mov esi, edx
mov eax, dword [esp + 0x384]
mov edx, dword [esp + 0xc]
and dword [esp + 0x3b], 0
mov ecx, edi
mov edi, eax
call fcn.0044816a
mov ecx, dword [esp + 0x3b]
mov eax, esi
mov esi, edi
mov dword [esp + 0x1c], ecx
jmp 0x52d8ad
mov esi, ecx
mov eax, dword [esp + 0x60]
sub eax, esi
push 0x28
pop ecx
xor edx, edx
div ecx
mov ebx, dword [esp + 0xdc]
mov edi, eax
sub edi, 1
jb 0x52da9d
mov ecx, esi
call fcn.00514640
add esi, 0x28
jmp 0x52da8c
mov eax, dword [esp + 0x178]
test eax, eax
je 0x52dab7
imul eax, eax, 0x28
push 8
pop edx
mov ecx, ebx
push eax
call fcn.0040423b
pop eax
mov ecx, dword [esp + 0x134]
test ecx, ecx
je 0x52dd1d
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
shl ecx, 6
add ecx, eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
mov dword [esp + 0x104], ecx
lea ecx, [eax + 0x40]
mov dword [esp + 0x100], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x52eaad
mov ecx, dword [eax + 0x3c]
mov ebx, dword [eax + 0x38]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea esi, [eax + 0x14]
mov dword [esp + 0x18], ecx
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm0
push 9
pop ecx
lea edi, [esp + 0x308]
rep movsd dword es:[edi], dword [esi]
mov esi, ebx
movsd xmm0, qword [esp + 0xf8]
movsd xmm1, qword [esp + 0x100]
mov edi, dword [esp + 0x18]
movsd qword [esp + 0x1a8], xmm1
movsd qword [esp + 0x1a0], xmm0
mov ecx, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x24], ecx
cmp edx, ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
je 0x52ddd8
mov eax, dword [edx + 0x10]
test eax, eax
je 0x52ddd3
mov edi, dword [edx + 0x38]
lea esi, [edx + 0x14]
mov dword [esp + 0x1c], edi
mov edi, dword [edx + 0x3c]
mov dword [esp + 0x10], edi
push 9
pop ecx
lea edi, [esp + 0x3e4]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x388]
mov dword [esp + 0x380], ebx
mov ecx, dword [esp + 0x18]
movsd xmm0, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
mov dword [esp + 0x384], ecx
mov ecx, dword [esp + 0x14]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov dword [esp + 0x398], ecx
push 9
pop ecx
lea esi, [esp + 0x308]
lea edi, [esp + 0x39c]
lea edx, [esp + 0x3d0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x28]
cmp esi, ebx
mov dword [esp + 0x3c0], ecx
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0xc]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esp + 0x10]
movsd qword [edx], xmm0
movsd qword [edx + 8], xmm1
mov dword [esp + 0x3e0], eax
mov eax, ecx
mov dword [esp + 0x3cc], ecx
mov dword [esp + 0x3c8], esi
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x408], esi
sbb eax, dword [esp + 0x18]
mov eax, edx
cmovb ecx, dword [esp + 0x384]
cmovb esi, dword [esp + 0x380]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x388]
mov ebx, esi
lea esi, [esp + 0x3e4]
cmovb eax, ecx
lea ecx, [esp + 0x398]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
lea eax, [esp + 0x3e0]
cmovb eax, ecx
movq qword [esp + 0xa0], xmm0
movq qword [esp + 0xa8], xmm1
mov eax, dword [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x39c]
cmovb esi, eax
push 9
pop ecx
lea edi, [esp + 0x308]
lea eax, [esp + 0x408]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3c0]
cmovb eax, ecx
lea ecx, [esp + 0x388]
mov esi, dword [eax]
mov edi, dword [eax + 4]
cmovb ecx, edx
call fcn.005144fd
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
add edx, 0x40
mov dword [esp + 0x18], eax
jmp 0x52db77
mov edx, dword [esp + 0x1e0]
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x1dc]
imul esi, edx, 0xc
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], ecx
mov dword [esp + 0x208], eax
add esi, eax
test edx, edx
mov dword [esp + 0x20c], esi
je 0x52dd6c
lea ecx, [eax + 0xc]
mov dword [esp + 0x208], ecx
mov edi, dword [eax]
cmp edi, 5
jne 0x52e02c
mov edx, dword [esp + 0x19c]
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
imul esi, edx, 0xc
mov dword [esp + 0x380], eax
mov dword [esp + 0x384], ecx
add esi, eax
test edx, edx
mov dword [esp + 0x38c], esi
je 0x52eac8
lea ecx, [eax + 0xc]
mov dword [esp + 0x388], ecx
mov edi, dword [eax]
cmp edi, 5
je 0x52eac8
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x380]
call fcn.0052b3fb
jmp 0x52e042
add edx, 0x40
mov ecx, edx
movq xmm0, qword [esp + 0xa0]
movq xmm1, qword [esp + 0xa8]
lea eax, [esp + 0x1a0]
mov dword [eax + 8], ecx
movq qword [esp + 0x1c0], xmm0
movq qword [esp + 0x1c8], xmm1
push 9
pop ecx
lea edi, [esp + 0x138]
lea esi, [esp + 0x308]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00514a23
mov eax, dword [esp + 0x14]
test eax, eax
je 0x52eab9
movq xmm0, qword [esp + 0x1c0]
movsd xmm1, qword [esp + 0x1c8]
lea ebx, [esp + 0x214]
movsd qword [ebx - 0xc], xmm1
movq qword [ebx - 0x14], xmm0
push 9
pop ecx
lea esi, [esp + 0x138]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x28], ecx
mov dword [esp + 0x38c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x388], ecx
mov dword [ebx + 0x24], ecx
mov dword [ebx - 4], eax
and dword [esp + 0x384], 0
and dword [esp + 0x380], 0
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0x380]
push ecx
push dword [esp + 0xf4]
lea ecx, [esp + 0x310]
push ecx
call dword [eax + 0x2c]
add esp, 0xc
xor edi, edi
cmp dword [esp + 0x308], edi
je 0x52def4
mov esi, dword [esp + 0x30c]
mov ebx, dword [esp + 0x310]
lea ecx, [esp + 0x200]
call fcn.005144fd
lea ecx, [esp + 0x1d8]
call fcn.0052b422
lea ecx, [esp + 0x194]
call fcn.0052b422
jmp 0x52e070
mov ecx, dword [esp + 0x200]
mov eax, dword [esp + 0x208]
mov edx, dword [esp + 0x204]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
push 0xb
pop ecx
mov dword [esp + 0x14], esi
lea edi, [esp + 0x2cc]
mov esi, ebx
mov ebx, edi
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d8]
call fcn.0052b422
lea ecx, [esp + 0x194]
call fcn.0052b422
lea edi, [esp + 0xb80]
push 0xb
pop ecx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x1c], eax
push 0x48
pop ecx
push 8
pop edx
call fcn.004fc1d3
xor edx, edx
mov ebx, eax
inc edx
lea edi, [ebx + 0x1c]
mov dword [eax], edx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x18], eax
push 0xb
pop ecx
lea esi, [esp + 0xb80]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edi, dword [esp + 0x74]
mov edx, edi
call fcn.00413d70
mov ecx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.004d1536
test eax, eax
je 0x52eb07
mov esi, eax
xor eax, eax
inc eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov eax, esi
add eax, 8
push edi
push dword [esp + 0x7c]
push eax
call fcn.005669c0
add esp, 0xc
test edi, edi
je 0x52e00a
mov ecx, dword [esp + 0x78]
xor edx, edx
inc edx
push edi
call fcn.0040423b
pop eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
jmp 0x52b7cd
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x194]
call fcn.0052b422
lea ecx, [esp + 0x200]
call fcn.0052b3fb
mov esi, dword [esp + 0x12c]
xor edx, edx
mov ecx, esi
call fcn.00514a42
mov edx, dword [esp + 0x130]
mov ecx, esi
call fcn.00514a5c
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov dword [eax + 4], edi
mov dword [eax + 0xc], ebx
mov dword [eax + 8], esi
and dword [eax], 0
call fcn.0044816a
jmp 0x52b7bf
mov eax, dword [esp + 0x13c]
mov esi, dword [esp + 0x140]
jmp 0x52e663
mov edx, dword [esp + 0x28]
mov ecx, ebx
push 0x627be0
call fcn.00576a40
pop eax
ud2
push 8
pop eax
mov dword [esp + 0x50], edi
mov edi, ecx
mov dword [esp + 0x90], ebx
mov ebx, edx
lea esi, [esp + 0x380]
mov dword [esp + 0x70], eax
add edi, 0xffffffc0
adc ebx, 0xffffffff
push esi
call fcn.0051449e
pop eax
mov ecx, dword [esp + 0x90]
mov eax, ebx
mov esi, edi
mov dword [esp + 0x17c], edi
mov edx, 0x625ad8
mov dword [esp + 0x124], ebx
cmp edi, ecx
sbb eax, dword [esp + 0x50]
mov eax, ebx
cmovb eax, dword [esp + 0x50]
cmovb esi, ecx
cmp ecx, edi
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x50]
sbb eax, ebx
mov eax, dword [esp + 0x50]
cmovae ecx, edi
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x308]
cmovae eax, ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x1a0]
mov dword [eax], 8
and dword [eax + 4], 0
mov edi, dword [esp + 0x50]
and dword [eax + 8], 0
call fcn.0052b459
mov ebx, dword [esp + 0xe4]
mov eax, 0x800
mov edx, dword [esp + 0x90]
xor ecx, ecx
mov dword [esp + 0xe0], esi
sub esi, eax
sbb ebx, ecx
cmovb esi, ecx
cmovb ebx, ecx
mov ecx, edi
cmp edx, esi
sbb ecx, ebx
cmovae ebx, edi
mov edi, esi
cmovae edi, edx
push eax
push 0
lea eax, [esp + 0x388]
push eax
call fcn.00566f40
mov esi, ebx
add esp, 0xc
xor ecx, ecx
lea ebx, [esp + 0x200]
lea eax, [esp + 0x138]
mov dword [esp + 0x60], 0
mov dword [esp + 0x98], 0
inc ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x20c], esi
mov dword [esp + 0x208], edi
and dword [esp + 0x204], 0
and dword [esp + 0x200], 0
push ebx
push dword [esp + 0x14]
push eax
call dword [esp + 0x20]
add esp, 0xc
xor eax, eax
cmp dword [esp + 0x138], eax
jne 0x52e759
mov edx, dword [esp + 0xe0]
mov eax, edi
mov dword [esp + 0x128], esi
add eax, 0x800
adc esi, 0
cmp eax, edx
sbb esi, dword [esp + 0xe4]
cmovae eax, edx
sub eax, edi
je 0x52e730
mov dword [esp + 0x180], edi
lea ecx, [esp + 0x380]
mov edx, 0x800
push 0x625adc
push eax
call fcn.0045cc11
pop ecx
pop ecx
mov edi, eax
mov eax, ebx
mov ebx, edx
push edx
push edi
push dword [esp + 0x18]
push eax
call dword [esp + 0x64]
add esp, 0x10
cmp byte [esp + 0x200], 4
je 0x52e282
cmp byte [esp + 0x200], 4
jne 0x52e775
lea ecx, [esp + 0x200]
lea edx, [esp + 0x308]
push ebx
mov ebx, ecx
push edi
call fcn.0052b5d5
pop eax
pop ecx
mov ecx, ebx
call fcn.0045bc80
mov edi, dword [esp + 0x180]
test eax, eax
je 0x52e5cf
mov eax, dword [esp + 0x128]
add edx, edi
mov ebx, 0
lea esi, [esp + 0x138]
mov dword [esp + 0x140], edx
mov dword [esp + 0x20], edx
adc eax, ebx
mov dword [esp + 0x144], eax
and dword [esp + 0x13c], 0
and dword [esp + 0x138], 0
mov dword [esp + 0x34], eax
push esi
mov edi, dword [esp + 0x14]
push edi
lea eax, [esp + 0xa8]
push eax
call dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0xa0], ebx
jne 0x52e6b6
push 0x38
pop ecx
xor edx, edx
inc edx
call fcn.0045c366
mov ecx, esi
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], 0x38
call fcn.0055d80d
mov ecx, edi
mov ebx, eax
mov edi, edx
push edx
push eax
push ecx
push esi
call dword [esp + 0x64]
add esp, 0x10
cmp byte [esp + 0x138], 4
je 0x52e365
mov eax, dword [esp + 0x138]
cmp al, 4
jne 0x52e6c8
cmp edi, 0x38
mov dword [esp + 0x38], edi
jne 0x52ea8b
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx]
movq xmm0, qword [ebx + 4]
mov edx, dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
mov esi, dword [ebx + 0x28]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebx + 0x14]
cmp eax, 0x6064b50
mov dword [esp + 0x68], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x1f0], ecx
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0xd4], ecx
mov ecx, dword [ebx + 0xc]
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], ecx
jne 0x52e48e
movzx eax, word [esp + 0xa0]
lea ecx, [esp + 0x1c4]
mov dword [esp + 0x1c0], 0x6064b50
mov dword [esp + 0x190], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xec], edi
mov dword [esp + 0xe8], esi
mov word [ecx], ax
mov al, byte [esp + 0xa2]
mov dword [esp + 0x188], edx
mov byte [ecx + 2], al
lea ecx, [esp + 0xa3]
mov al, byte [ecx + 8]
movq xmm0, qword [ecx]
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x100], al
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x1f0]
movq qword [esp + 0xf8], xmm0
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x184], ecx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x98], eax
jmp 0x52e4b7
mov eax, dword [str.Invalid_digital_signature_header]
mov dword [esp + 0x1c3], 1
mov dword [esp + 0xf8], eax
mov eax, dword [0x625bc8]
mov dword [esp + 0xfc], eax
mov al, 1
mov dword [esp + 0x4c], eax
mov ecx, ebx
push 0x38
pop edx
call fcn.0044816a
cmp byte [esp + 0x4c], 0
jne 0x52e6ee
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
movzx esi, word [esp + 0xfd]
movzx edi, word [esp + 0xff]
sub eax, dword [esp + 0x90]
sbb ecx, dword [esp + 0x50]
cmp edx, dword [esp + 0x1a4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x70]
jne 0x52e522
lea ecx, [esp + 0x1a0]
call fcn.0052b68f
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a8]
imul eax, edx, 0x38
mov edx, dword [esp + 0x94]
lea ebx, [esp + 0x200]
mov dword [esp + 0x70], ecx
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x98]
mov dword [ecx + eax + 4], edx
mov edx, dword [esp + 0x190]
mov dword [ecx + eax + 0xc], edx
mov edx, dword [esp + 0xec]
mov dword [ecx + eax + 8], edx
mov edx, dword [esp + 0x18c]
mov dword [ecx + eax + 0x14], edx
mov edx, dword [esp + 0xe8]
mov dword [ecx + eax + 0x10], edx
mov edx, dword [esp + 0x184]
mov dword [ecx + eax + 0x1c], edx
mov edx, dword [esp + 0x188]
mov dword [ecx + eax + 0x18], edx
mov edx, dword [esp + 0x2a0]
mov dword [ecx + eax + 0x20], edx
mov edx, dword [esp + 0x88]
mov dword [ecx + eax + 0x24], edx
mov word [ecx + eax + 0x28], si
mov word [ecx + eax + 0x2a], di
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
mov dword [ecx + eax + 0x34], edi
mov dword [ecx + eax + 0x30], esi
mov eax, dword [esp + 0x1a8]
inc eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x1a8], eax
jmp 0x52e29b
lea ecx, [esp + 0x208]
call fcn.0052b67b
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x128]
mov eax, edi
mov esi, ecx
xor eax, ecx
mov ecx, edx
xor ecx, dword [esp + 0x50]
or ecx, eax
je 0x52e730
add edi, 4
mov eax, 0
mov ecx, dword [esp + 0xe4]
adc edx, eax
cmp edi, dword [esp + 0xe0]
mov eax, edx
sbb eax, ecx
mov eax, 0
cmovae edi, dword [esp + 0xe0]
cmovae edx, ecx
mov ecx, dword [esp + 0x50]
sub edi, 0x800
sbb edx, eax
cmovb edi, eax
cmovb edx, eax
mov eax, ecx
cmp esi, edi
sbb eax, edx
lea eax, [esp + 0x138]
cmovae edx, ecx
cmovae edi, esi
mov esi, edx
jmp 0x52e1d0
mov eax, dword [esp + 0x200]
mov esi, dword [esp + 0x204]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea ebx, [esp + 0x380]
jmp 0x52bcea
lea ecx, [esp + 0x308]
call fcn.0052b67b
xor edx, edx
mov ecx, str.Could_not_find_central_directory_endInvalid_zip_header
inc edx
push 0x24
jmp 0x52b7ab
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
xor esi, esi
jmp 0x52e703
mov ecx, dword [esp + 0x13c]
and dword [esp + 0x1c3], 0
mov edx, edi
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
mov ecx, ebx
call fcn.0044816a
mov esi, dword [esp + 0x1c3]
mov edi, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
lea ecx, [esp + 0x208]
call fcn.0052b67b
lea ecx, [esp + 0x308]
call fcn.0052b67b
mov edx, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x70]
call fcn.0051448c
jmp 0x52bf47
mov esi, dword [esp + 0x60]
test esi, esi
je 0x52e787
mov eax, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1a4]
mov ebx, esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x8c], eax
jmp 0x52e796
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x140]
jmp 0x52e783
mov ecx, ebx
push 0x627bf0
jmp 0x52e0b3
mov edi, dword [esp + 0x200]
mov ebx, dword [esp + 0x204]
xor esi, esi
jmp 0x52e70f
mov edi, str.Could_not_find_ZIP64_central_directory_end
push 0x2a
pop ebx
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x308]
call fcn.0052b67b
test esi, esi
jne 0x52e7b9
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
call fcn.0051448c
cmp dword [esp + 0x10], 0
je 0x52e7cc
mov esi, dword [esp + 0x8c]
jmp 0x52bf47
imul esi, ebx, 0x38
xor edx, edx
mov eax, esi
push 0x38
pop ecx
div ecx
cmp esi, 0xb3333328
mov dword [esp + 0x10], esi
ja 0x52ea4c
imul edx, eax, 0x28
test edx, edx
js 0x52ea4c
mov esi, eax
push 8
pop ecx
mov dword [esp + 0x14], edx
call fcn.004d1536
test eax, eax
je 0x52eb14
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], esi
and dword [esp + 0x208], 0
add eax, 0x20
and ebx, 0x1fffffff
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x52e9d7
mov dword [esp + 0x14], eax
mov eax, dword [edx]
mov esi, dword [edx + 0x30]
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x34]
mov dword [esp + 0x64], esi
add ecx, esi
mov esi, dword [edx + 0x1c]
mov dword [esp + 0x58], eax
adc esi, eax
mov eax, dword [edx + 4]
mov dword [esp + 0x60], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x2a0], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0xd4], eax
movzx eax, word [edx + 0x28]
movzx edx, word [edx + 0x2a]
mov dword [esp + 0x384], 0x625907
mov dword [esp + 0x388], 0x28
mov dword [esp + 0x380], 1
jae 0x52e8c0
mov eax, 0x625907
jmp 0x52e903
mov word [esp + 0x88], ax
lea eax, [esp + 0x380]
mov word [esp + 0x94], dx
push eax
mov dword [esp + 0x1f4], ecx
call fcn.0051449e
pop eax
mov ecx, dword [esp + 0x1f0]
mov edx, dword [esp + 0x124]
mov eax, 0x625907
cmp dword [esp + 0x17c], ecx
sbb edx, esi
jae 0x52e95a
push 0x28
pop ecx
xor edx, edx
inc edx
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [eax - 0x20], edx
mov dword [eax - 0x1c], 1
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x20]
mov dword [eax - 0x10], ecx
mov ecx, dword [esp + 0x50]
add edx, 0x38
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax - 8], ecx
mov ecx, dword [esp + 0x6c]
mov dword [eax - 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
add eax, 0x28
add ecx, 0xffffffc8
jmp 0x52e833
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x4c]
mov eax, 0x6259c3
cmp dword [esp + 0x34], ecx
sbb edx, dword [esp + 0x60]
jae 0x52e975
push 0x48
jmp 0x52e905
movzx ecx, word [esp + 0x94]
mov eax, 0x62595e
cmp cx, word [esp + 0x88]
push 0x65
pop ecx
mov edx, 1
ja 0x52e909
mov edx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x2a0]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x68], edx
xor edx, edx
jmp 0x52e909
mov ecx, dword [esp + 0x8c]
mov edx, edi
mov dword [esp + 0x208], ebx
call fcn.0051448c
mov eax, dword [esp + 0x208]
mov edx, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
mov dword [esp + 0x1e4], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1e8], ecx
jmp 0x52bf7b
and dword [esp + 0x138], 0
lea edx, [esp + 0x1a0]
xor ecx, ecx
push 0x625b1c
lea eax, [esp + 0x13c]
push eax
push 0x625b2c
call fcn.00577340
add esp, 0xc
ud2
call fcn.004128f0
ud2
and dword [esp + 0x380], 0
lea edx, [esp + 0x110]
xor ecx, ecx
push 0x625b1c
lea eax, [esp + 0x384]
push eax
push 0x625b38
jmp 0x52ea42
xor ecx, ecx
mov edx, edi
inc ecx
jmp 0x52ea84
push 8
pop ecx
mov edx, esi
call fcn.00576700
ud2
and dword [esp + 0x138], 0
lea edx, [esp + 0x38]
xor ecx, ecx
push 0x625b1c
lea eax, [esp + 0x13c]
push eax
push 0x625b18
jmp 0x52ea42
lea ecx, [esp + 0xf8]
call fcn.00514a23
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x62583c
jmp 0x52ead5
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x6258c8
call fcn.00576b20
jmp 0x52e0b8
and dword [esp + 0x380], 0
lea edx, [esp + 0x138]
xor ecx, ecx
push 0x625b1c
lea eax, [esp + 0x384]
push eax
push 0x625b34
jmp 0x52ea42
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x52ea84
push 8
pop ecx
mov edx, dword [esp + 0x14]
jmp 0x52ea84