Function at 0x580f70
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa0]
test eax, eax
je case.default.0x581068
mov eax, dword [esp + 0xa0]
mov ebp, dword [eax + 0x20]
test ebp, ebp
je case.default.0x581068
mov edi, dword [eax + 0x24]
test edi, edi
je case.default.0x581068
mov edi, dword [eax + 0x1c]
mov eax, 0xfffffffe
test edi, edi
je 0x580fb1
mov esi, dword [edi]
cmp dword [esp + 0xa0], esi
je 0x580fd0
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x8c
mov eax, 0xfffffffe
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [edi + 4]
lea edx, [ecx - 0x3f34]
cmp edx, 0x1f
ja 0x580fb1
mov esi, dword [esp + 0xa0]
mov ebx, dword [esi + 0xc]
test ebx, ebx
mov dword [esp + 0x28], ebx
je 0x580fb1
mov ebx, dword [esi]
test ebx, ebx
je 0x582641
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
cmp ecx, 0x3f3f
je 0x582611
mov eax, dword [esp + 0xa0]
mov esi, dword [edi + 0x3c]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], 0
mov eax, dword [eax + 0x10]
mov ecx, esi
mov esi, dword [edi + 0x40]
sub ebp, 5
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
lea eax, [edi + 0x534]
mov dword [esp + 0x54], eax
lea eax, [edi + 0x2f4]
mov edi, ebx
mov ebx, esi
mov esi, ecx
mov dword [esp + 0x50], eax
cmp edx, 0x1e
ja case.default.0x581068
jmp dword [edx*4 + 0x7239f0]
cmp ebx, 0x1f
ja 0x58110c
test ebp, ebp
je 0x582600
lea eax, [edi + 1]
mov ecx, ebx
lea edx, [ebp - 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0x1f
ja 0x582e5d
test edx, edx
je 0x582b60
lea eax, [edi + 2]
lea edx, [ebp - 2]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
lea ecx, [ebx + 0x10]
add esi, eax
cmp ecx, 0x1f
ja 0x582e5d
test edx, edx
je 0x582b60
lea eax, [edi + 3]
add ebx, 0x18
lea edx, [ebp - 3]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
shl eax, cl
add esi, eax
cmp ebx, 0x1f
ja 0x582e5d
test edx, edx
je 0x582b75
lea eax, [edi + 4]
mov ecx, ebx
sub ebp, 4
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 3]
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x40]
mov edx, esi
mov eax, esi
mov ebx, dword [esp + 0xa0]
shl eax, 0x18
shr edx, 0x18
add edx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
add edx, eax
mov eax, esi
mov esi, dword [esp + 0x24]
and eax, 0xff00
shl eax, 8
add eax, edx
mov dword [esi + 0x1c], eax
mov dword [ebx + 0x30], eax
xor ebx, ebx
mov dword [esi + 4], 0x3f3e
xor esi, esi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x5832c2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._adler32
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x1c], eax
mov dword [ecx + 0x30], eax
mov dword [edx + 4], 0x3f3f
cmp dword [esp + 0x4c], 1
jbe 0x582600
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
test edx, edx
jne 0x582660
cmp ebx, 2
ja 0x583055
test ebp, ebp
je 0x582c86
movzx eax, byte [edi]
mov ecx, ebx
lea edx, [edi + 1]
mov edi, dword [esp + 0x24]
sub ebp, 1
add ebx, 8
shl eax, cl
add esi, eax
mov eax, esi
mov ecx, esi
and eax, 1
shr ecx, 1
mov dword [edi + 8], eax
mov eax, ecx
and eax, 3
cmp eax, 2
je 0x582ac6
cmp eax, 3
je 0x582dcb
cmp eax, 1
je 0x582d90
mov dword [edi + 4], 0x3f41
mov eax, 0x3f41
mov esi, ecx
sub ebx, 3
mov edi, edx
shr esi, 2
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x4c]
test edx, edx
je 0x581284
cmp ebx, edx
jae 0x58125f
test ebp, ebp
je 0x582600
mov ecx, ebx
jmp 0x581248
test ebp, ebp
je 0x582630
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, edx
jb 0x581240
mov ebx, ecx
mov ecx, edx
mov eax, 1
sub ebx, edx
shl eax, cl
mov ecx, dword [esp + 0x24]
sub eax, 1
and eax, esi
add dword [ecx + 0x48], eax
mov ecx, edx
shr esi, cl
mov ecx, dword [esp + 0x24]
add dword [ecx + 0x1bc8], edx
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f4c
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x582600
mov eax, dword [esp + 0x30]
sub eax, edx
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x48]
cmp eax, edx
jae 0x582755
mov ecx, edx
mov edx, dword [esp + 0x24]
sub ecx, eax
cmp ecx, dword [edx + 0x30]
ja 0x5829f1
mov eax, dword [edx + 0x34]
cmp ecx, eax
jbe 0x582bb2
sub ecx, eax
mov eax, dword [edx + 0x2c]
sub eax, ecx
add eax, dword [edx + 0x38]
mov dword [esp + 0x3c], eax
mov eax, edx
mov edx, dword [eax + 0x44]
cmp ecx, edx
cmova ecx, edx
jmp 0x582768
cmp dword [esp + 0xa4], 6
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f47
je 0x582600
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f48
cmp ebp, 5
jbe 0x581321
mov eax, dword [esp + 0x2c]
cmp eax, 0x101
ja 0x5828e0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x50]
mov dword [eax + 0x1bc8], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], edx
sub eax, 1
mov dword [esp + 0x44], eax
and eax, esi
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax]
movzx eax, word [eax + 2]
mov byte [esp + 0x3c], cl
mov byte [esp + 0x48], dl
mov word [esp + 0x58], ax
movzx eax, dl
cmp ebx, eax
jae 0x5813c9
test ebp, ebp
je 0x582600
mov ecx, ebx
mov ebx, ebp
jmp 0x581388
test ebx, ebx
je 0x5826f0
add edi, 1
movzx eax, byte [edi - 1]
mov edx, dword [esp + 0x40]
sub ebx, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x44]
and eax, esi
lea eax, [edx + eax*4]
movzx edx, byte [eax]
movzx ebp, word [eax + 2]
mov byte [esp + 0x3c], dl
movzx edx, byte [eax + 1]
movzx eax, dl
cmp eax, ecx
ja 0x581380
mov word [esp + 0x58], bp
mov byte [esp + 0x48], dl
mov ebp, ebx
mov ebx, ecx
cmp byte [esp + 0x3c], 0
jne 0x582bc2
mov edx, dword [esp + 0x24]
movzx ecx, byte [esp + 0x48]
sub ebx, eax
mov dword [edx + 0x1bc8], eax
movzx eax, word [esp + 0x58]
shr esi, cl
mov dword [edx + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f4d
mov eax, 0x3f4d
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x4c]
test edx, edx
jne 0x582963
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
mov dword [edx + 0x1bcc], eax
mov dword [edx + 4], 0x3f4a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x54]
mov edx, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x5c]
mov eax, 1
shl eax, cl
sub eax, 1
mov dword [esp + 0x48], eax
and eax, esi
lea eax, [edx + eax*4]
movzx ecx, byte [eax]
mov byte [esp + 0x3c], cl
movzx ecx, byte [eax + 1]
movzx eax, word [eax + 2]
mov byte [esp + 0x60], cl
mov word [esp + 0x58], ax
movzx eax, cl
cmp ebx, eax
mov dword [esp + 0x44], eax
jae 0x5814cd
test ebp, ebp
je 0x582600
mov ecx, ebx
mov ebx, ebp
jmp 0x58148c
test ebx, ebx
je 0x5826f0
mov edx, dword [esp + 0x40]
add edi, 1
movzx eax, byte [edi - 1]
sub ebx, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x48]
and eax, esi
lea eax, [edx + eax*4]
movzx edx, byte [eax]
movzx ebp, word [eax + 2]
mov byte [esp + 0x3c], dl
movzx edx, byte [eax + 1]
movzx eax, dl
cmp eax, ecx
mov dword [esp + 0x44], eax
ja 0x581480
mov word [esp + 0x58], bp
mov byte [esp + 0x60], dl
mov ebp, ebx
mov ebx, ecx
test byte [esp + 0x3c], 0xf0
jne 0x582a20
movzx edx, word [esp + 0x58]
movzx ecx, byte [esp + 0x3c]
mov dword [esp + 0x44], edx
add ecx, eax
mov edx, 1
shl edx, cl
mov ecx, edx
sub ecx, 1
mov dword [esp + 0x5c], ecx
and ecx, esi
mov edx, ecx
movzx ecx, byte [esp + 0x60]
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x3c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x58], cx
lea ecx, [eax + edx]
mov dword [esp + 0x48], edx
cmp ecx, ebx
jbe 0x581595
test ebp, ebp
je 0x582600
mov edx, esi
mov esi, ebp
mov ebp, edx
jmp 0x581548
test esi, esi
je 0x582c6a
add edi, 1
movzx edx, byte [edi - 1]
mov ecx, ebx
add ebx, 8
sub esi, 1
shl edx, cl
mov ecx, eax
add ebp, edx
mov edx, dword [esp + 0x5c]
and edx, ebp
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x3c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x58], cx
lea ecx, [edx + eax]
mov dword [esp + 0x48], edx
cmp ecx, ebx
ja 0x581540
mov ecx, ebp
mov ebp, esi
mov esi, ecx
mov ecx, eax
sub ebx, eax
mov dword [esp + 0x44], edx
shr esi, cl
mov ecx, dword [esp + 0x24]
add eax, dword [ecx + 0x1bc8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
jmp 0x582a32
mov dword [esp + 8], 1
mov ecx, dword [esi + 0x28]
mov eax, 1
shl eax, cl
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
call dword [eax + 0x20]
test eax, eax
mov dword [esi + 0x38], eax
jne 0x58169d
mov dword [edi + 4], 0x3f52
mov eax, 0xfffffffc
jmp 0x580fb1
mov dword [esp + 0x3c], esi
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0xfffffffd
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0xc], ecx
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov ebx, dword [esp + 0x3c]
mov dword [ecx + 0x10], eax
mov ecx, dword [edi + 0x2c]
mov dword [edi + 0x40], esi
mov dword [edi + 0x3c], ebx
test ecx, ecx
jne 0x581680
cmp dword [esp + 0x30], eax
je 0x581710
mov eax, dword [edi + 4]
cmp eax, 0x3f50
ja 0x581710
cmp dword [esp + 0xa4], 4
jne 0x581680
cmp eax, 0x3f4d
ja 0x581710
nop
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x30]
sub ebp, dword [esp + 0x2c]
mov esi, dword [eax + 0x1c]
mov eax, dword [esi + 0x38]
test eax, eax
je 0x5815c0
mov ebx, dword [esi + 0x2c]
test ebx, ebx
jne 0x5816bf
mov ecx, dword [esi + 0x28]
mov ebx, 1
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
shl ebx, cl
mov dword [esi + 0x2c], ebx
cmp ebp, ebx
jae 0x5826c0
mov ecx, dword [esi + 0x34]
sub ebx, ecx
cmp ebp, ebx
cmovbe ebx, ebp
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp], eax
sub ecx, ebp
mov dword [esp + 4], ecx
call sym._memcpy
sub ebp, ebx
jne 0x582710
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
add edx, ebx
cmp edx, eax
mov dword [esi + 0x34], edx
je 0x582703
mov edx, dword [esi + 0x30]
cmp eax, edx
jbe 0x581710
add ebx, edx
mov dword [esi + 0x30], ebx
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
sub ebx, dword [eax + 4]
sub esi, dword [eax + 0x10]
add dword [eax + 8], ebx
add dword [eax + 0x14], esi
add dword [edi + 0x20], esi
test byte [edi + 0xc], 4
je 0x58176c
test esi, esi
je 0x58176c
mov edx, dword [edi + 0x14]
mov dword [esp + 8], esi
mov eax, dword [eax + 0xc]
test edx, edx
mov dword [esp + 0x24], eax
je 0x582680
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0xa0]
mov dword [edi + 0x1c], eax
mov dword [edx + 0x30], eax
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov edx, 0x40
test eax, eax
cmovne eax, edx
add eax, dword [edi + 0x40]
cmp ecx, 0x3f3f
je 0x582622
cmp ecx, 0x3f47
je 0x58179d
xor edx, edx
cmp ecx, 0x3f42
jne 0x5817a2
mov edx, 0x100
mov edi, dword [esp + 0xa0]
add eax, edx
or ebx, esi
mov dword [edi + 0x2c], eax
je 0x5817c4
cmp dword [esp + 0xa4], 4
mov eax, dword [esp + 0x38]
jne 0x580fb1
mov edi, dword [esp + 0x38]
mov eax, 0xfffffffb
test edi, edi
cmovne eax, edi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebx, 0x1f
ja 0x58180f
test ebp, ebp
je 0x582600
mov ecx, ebx
jmp 0x5817f9
test ebp, ebp
je 0x582630
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0x1f
jbe 0x5817f1
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x58181d
mov dword [eax + 4], esi
mov eax, dword [esp + 0x24]
test byte [eax + 0x15], 2
je 0x581831
test byte [eax + 0xc], 4
jne 0x582fef
mov dword [eax + 4], 0x3f37
xor ebx, ebx
xor esi, esi
jmp 0x581845
cmp ebx, 0xf
ja 0x58186f
test ebp, ebp
je 0x582600
mov ecx, ebx
jmp 0x581859
test ebp, ebp
je 0x582630
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, 0xf
jbe 0x581851
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x58188a
mov ebx, esi
movzx edx, bl
mov dword [eax + 8], edx
mov edx, esi
shr edx, 8
mov dword [eax + 0xc], edx
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
test ah, 2
je 0x5818a0
test byte [ebx + 0xc], 4
jne 0x582ef9
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov edx, eax
mov dword [esi + 4], 0x3f38
xor esi, esi
test ah, 4
je 0x5825d0
test ebp, ebp
je 0x582600
mov ecx, ebx
jmp 0x5818d8
test ebp, ebp
je 0x582630
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add esi, edx
cmp ecx, 0xf
jbe 0x5818d0
jmp 0x581fd0
cmp ebx, 0xd
ja 0x5831db
test ebp, ebp
je 0x582600
lea eax, [edi + 1]
mov ecx, ebx
lea edx, [ebp - 1]
mov dword [esp + 0x44], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0xd
ja 0x5831f4
test edx, edx
je 0x582b8a
lea eax, [edi + 2]
sub ebp, 2
add ebx, 0x10
mov dword [esp + 0x44], eax
movzx eax, byte [edi + 1]
shl eax, cl
add esi, eax
mov eax, esi
mov ecx, esi
mov edi, dword [esp + 0x24]
shr eax, 5
mov edx, esi
shr ecx, 0xa
and eax, 0x1f
and edx, 0x1f
and ecx, 0xf
add eax, 1
add ecx, 4
add edx, 0x101
shr esi, 0xe
sub ebx, 0xe
cmp eax, 0x1e
mov dword [edi + 0x64], edx
mov dword [edi + 0x68], eax
mov dword [esp + 0x40], ecx
mov dword [edi + 0x60], ecx
ja 0x582b38
cmp edx, 0x11e
ja 0x582b38
mov dword [edi + 0x6c], 0
mov dword [edi + 4], 0x3f45
xor edx, edx
mov edi, dword [esp + 0x44]
mov ecx, ebx
mov dword [esp + 0x3c], edi
jmp 0x5822b8
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x582740
mov ecx, dword [esp + 0x2c]
cmp ebp, eax
cmovbe eax, ebp
cmp ecx, eax
cmovbe eax, ecx
test eax, eax
je 0x582600
mov dword [esp + 8], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._memcpy
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
sub dword [esp + 0x2c], edx
add dword [esp + 0x28], edx
sub dword [eax + 0x44], edx
mov eax, dword [eax + 4]
sub ebp, edx
add edi, edx
mov esi, esi
lea edi, [edi]
lea edx, [eax - 0x3f34]
jmp 0x58105f
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
test dh, 0x10
je 0x581f9a
test ebp, ebp
je 0x582600
mov dword [esp + 0x40], esi
xor ecx, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], ebx
mov esi, dword [esp + 0x24]
jmp 0x581a56
cmp dword [esp + 0x3c], ecx
jbe 0x581a82
mov eax, dword [esi + 0x24]
add ecx, 1
movzx edx, byte [edi + ecx - 1]
test eax, eax
je 0x581a7e
mov ebp, dword [eax + 0x24]
test ebp, ebp
je 0x581a7e
mov ebx, dword [esi + 0x44]
cmp ebx, dword [eax + 0x28]
jae 0x581a7e
lea eax, [ebx + 1]
mov dword [esi + 0x44], eax
mov byte [ebp + ebx], dl
test dl, dl
jne 0x581a50
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
test byte [eax + 0x15], 2
je 0x581aa2
test byte [eax + 0xc], 4
jne 0x582a96
sub ebp, ecx
add edi, ecx
test dl, dl
jne 0x582600
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f3c
jmp 0x581af0
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], 1
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
jmp 0x581624
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
mov esi, esi
lea edi, [edi]
test dh, 2
je 0x581b5c
cmp ebx, 0xf
ja 0x581b4a
test ebp, ebp
je 0x582600
lea eax, [ebp - 1]
lea ecx, [edi + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [edi]
mov dword [esp + 0x40], ecx
mov ecx, ebx
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0xf
ja 0x582f2e
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582e64
lea eax, [edi + 2]
sub ebp, 2
add ebx, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
test byte [ecx + 0xc], 4
jne 0x5828b0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x581b77
sar edx, 9
mov dword [eax + 0x30], 1
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._crc32
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x1c], eax
mov dword [ecx + 0x30], eax
mov eax, 0x3f3f
mov dword [edx + 4], 0x3f3f
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x64]
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], eax
add eax, dword [edx + 0x68]
mov dword [esp + 0x58], eax
mov edx, eax
cmp dword [esp + 0x44], edx
jae 0x583208
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x58]
mov edx, dword [eax + 0x50]
mov eax, 1
shl eax, cl
mov edi, edx
mov dword [esp + 0x3c], edx
lea eax, [eax - 1]
mov dword [esp + 0x40], eax
and eax, esi
lea eax, [edi + eax*4]
movzx ecx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, cl
cmp ebx, eax
jae 0x581c63
test ebp, ebp
je 0x582f39
mov edi, dword [esp + 0x48]
mov ecx, ebx
jmp 0x581c2c
test ebp, ebp
je 0x582630
add edi, 1
movzx eax, byte [edi - 1]
mov ebx, dword [esp + 0x3c]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
mov eax, dword [esp + 0x40]
and eax, esi
lea eax, [ebx + eax*4]
movzx ebx, byte [eax + 1]
movzx edx, word [eax + 2]
movzx eax, bl
cmp eax, ecx
ja 0x581c24
mov dword [esp + 0x48], edi
mov edi, ebx
mov ebx, ecx
mov ecx, edi
cmp dx, 0xf
jbe 0x582a70
cmp dx, 0x10
je 0x582e79
cmp dx, 0x11
je 0x582f5f
lea edi, [eax + 7]
cmp edi, ebx
mov edx, edi
jbe 0x581cc5
test ebp, ebp
je 0x582f39
mov ecx, ebx
mov edi, dword [esp + 0x48]
mov ebx, eax
mov eax, edx
jmp 0x581ca8
test ebp, ebp
je 0x582630
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add esi, edx
cmp eax, ecx
ja 0x581ca0
mov eax, ebx
mov dword [esp + 0x48], edi
mov ebx, ecx
mov ecx, eax
sub ebx, eax
xor eax, eax
shr esi, cl
mov ecx, dword [esp + 0x44]
sub ebx, 7
mov edx, esi
shr esi, 7
and edx, 0x7f
add edx, 0xb
mov edi, ecx
add edi, edx
cmp edi, dword [esp + 0x58]
mov dword [esp + 0x64], edi
ja 0x58348b
mov edi, ecx
mov ecx, dword [esp + 0x24]
mov word [esp + 0x40], ax
add edi, 0x3a
mov dword [esp + 0x60], edi
lea ecx, [ecx + edi*2]
shl ecx, 0x1e
shr ecx, 0x1f
cmp ecx, edx
cmova ecx, edx
cmp edx, 6
ja 0x5830df
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
cmp edx, 2
mov word [edi + ecx*2 + 0x74], ax
mov word [edi + ecx*2 + 0x76], ax
je 0x581d5c
mov ecx, dword [esp + 0x60]
cmp edx, 3
mov word [edi + ecx*2 + 4], ax
je 0x581d5c
mov ecx, dword [esp + 0x44]
cmp edx, 4
mov word [edi + ecx*2 + 0x7a], ax
je 0x581d5c
cmp edx, 6
mov word [edi + ecx*2 + 0x7c], ax
jne 0x581d5c
mov word [edi + ecx*2 + 0x7e], ax
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x58]
mov dword [edi + 0x6c], eax
mov dword [esp + 0x44], eax
jmp 0x581bd8
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
mov eax, edx
and eax, 0x400
test eax, eax
je 0x581e3e
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
cmp ebp, eax
mov ecx, eax
mov dword [esp + 0x3c], eax
cmovbe ecx, ebp
mov eax, ecx
mov ecx, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x40], eax
je 0x581e2f
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x581e04
mov eax, dword [ecx + 0x10]
test eax, eax
mov dword [esp + 0x44], eax
je 0x581e04
mov edx, dword [ecx + 0x14]
sub edx, dword [esp + 0x3c]
mov eax, edx
mov edx, dword [ecx + 0x18]
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], edi
add ecx, eax
mov dword [esp + 0x3c], ecx
mov ecx, edx
sub ecx, eax
cmp dword [esp + 0x3c], edx
mov edx, ecx
cmovbe edx, dword [esp + 0x40]
add eax, dword [esp + 0x44]
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._memcpy
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
and dh, 2
je 0x581e17
mov eax, dword [esp + 0x24]
test byte [eax + 0xc], 4
jne 0x582fc8
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + 0x44]
sub ebp, eax
add edi, eax
mov dword [esp + 0x3c], ecx
sub ecx, eax
mov dword [edx + 0x44], ecx
test ecx, ecx
jne 0x582600
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3a
jmp 0x581ef7
cmp ebx, 0xf
ja 0x5831e4
test ebp, ebp
je 0x582600
lea eax, [ebp - 1]
mov ecx, ebx
lea edx, [edi + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0xf
ja 0x5831fd
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582b9f
movzx eax, byte [edi + 1]
lea edx, [edi + 2]
sub ebp, 2
add ebx, 0x10
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x24]
mov eax, esi
cmp al, 8
mov dword [edi + 0x14], esi
je 0x582b00
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov dword [edi + 4], 0x3f51
mov eax, 0x3f51
mov edi, edx
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x44]
mov edx, dword [esp + 0x24]
mov dword [edx + 4], 0x3f43
jmp 0x5819b7
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
test dh, 8
je 0x5826a0
test ebp, ebp
je 0x582600
mov dword [esp + 0x40], esi
xor ecx, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x44], ebx
mov esi, dword [esp + 0x24]
jmp 0x581f26
cmp dword [esp + 0x3c], ecx
jbe 0x581f52
mov eax, dword [esi + 0x24]
add ecx, 1
movzx edx, byte [edi + ecx - 1]
test eax, eax
je 0x581f4e
mov ebp, dword [eax + 0x1c]
test ebp, ebp
je 0x581f4e
mov ebx, dword [esi + 0x44]
cmp ebx, dword [eax + 0x20]
jae 0x581f4e
lea eax, [ebx + 1]
mov dword [esi + 0x44], eax
mov byte [ebp + ebx], dl
test dl, dl
jne 0x581f20
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
test byte [eax + 0x15], 2
jne 0x582871
sub ebp, ecx
add edi, ecx
test dl, dl
jne 0x582600
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
test dh, 0x10
mov dword [eax + 0x44], 0
mov dword [eax + 4], 0x3f3b
jne 0x581a30
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x581ab5
mov dword [eax + 0x24], 0
jmp 0x581ab5
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x14]
test ah, 4
mov edx, eax
je 0x5825d0
cmp ebx, 0xf
jbe 0x5818ba
mov ebx, dword [esp + 0x24]
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x44], esi
test edx, edx
je 0x581fe1
mov dword [edx + 0x14], esi
test ah, 2
je 0x581ff4
mov ebx, dword [esp + 0x24]
test byte [ebx + 0xc], 4
jne 0x58309b
mov edx, eax
xor ebx, ebx
and eax, 0x400
xor esi, esi
jmp 0x5825ed
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x5829d0
cmp ebx, 0x1f
ja 0x5820c8
test ebp, ebp
je 0x582c86
lea eax, [ebp - 1]
lea ecx, [edi + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [edi]
mov dword [esp + 0x40], ecx
mov ecx, ebx
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0x1f
ja 0x5831af
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582b60
lea eax, [ebp - 2]
mov dword [esp + 0x3c], eax
lea eax, [edi + 2]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
lea ecx, [ebx + 0x10]
add esi, eax
cmp ecx, 0x1f
ja 0x5831af
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582b60
lea eax, [ebp - 3]
mov dword [esp + 0x3c], eax
lea eax, [edi + 3]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
shl eax, cl
lea ecx, [ebx + 0x18]
add esi, eax
cmp ecx, 0x1f
ja 0x5831af
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582b60
lea eax, [edi + 4]
sub ebp, 4
add ebx, 0x20
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 3]
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
add dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x24]
add dword [ecx + 0x20], eax
mov ecx, edx
and ecx, 4
je 0x58212d
test eax, eax
je 0x58212d
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
mov dword [esp + 8], eax
test edx, edx
mov edx, dword [esp + 0x28]
je 0x5832a8
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [ecx + 0x1c]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [edx + 0x1c], eax
mov edx, dword [edx + 0xc]
mov dword [ecx + 0x30], eax
mov ecx, edx
and ecx, 4
test ecx, ecx
je 0x582e3f
mov ecx, dword [esp + 0x24]
mov eax, esi
cmp dword [ecx + 0x14], 0
jne 0x582167
mov ecx, esi
shl eax, 0x18
shr ecx, 0x18
add ecx, eax
mov eax, esi
shr eax, 8
and eax, 0xff00
add ecx, eax
mov eax, esi
and eax, 0xff00
shl eax, 8
add eax, ecx
mov ecx, dword [esp + 0x24]
cmp eax, dword [ecx + 0x1c]
je 0x5829c1
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_data_check
mov eax, dword [esp + 0x2c]
mov dword [ecx + 4], 0x3f51
mov dword [esp + 0x30], eax
mov eax, 0x3f51
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x5829e0
cmp ebx, 0xf
ja 0x582204
test ebp, ebp
je 0x582c86
lea eax, [ebp - 1]
lea ecx, [edi + 1]
mov dword [esp + 0x3c], eax
movzx eax, byte [edi]
mov dword [esp + 0x40], ecx
mov ecx, ebx
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0xf
ja 0x5832f4
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x582e64
lea eax, [edi + 2]
sub ebp, 2
add ebx, 0x10
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x40]
test dl, 2
mov eax, dword [esp + 0x24]
je 0x582219
cmp esi, 0x8b1f
je 0x58323d
mov dword [eax + 0x14], 0
mov eax, dword [eax + 0x24]
test eax, eax
je 0x58222e
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0x582dee
mov eax, esi
mov ecx, esi
mov edx, 0x8421085
shl eax, 8
shr ecx, 8
movzx eax, ax
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
mov edx, eax
shl edx, 5
sub edx, eax
cmp ecx, edx
jne 0x582dee
mov eax, esi
and eax, 0xf
cmp eax, 8
je 0x5832ff
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.unknown_compression_method
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x60]
cmp edx, eax
mov dword [esp + 0x40], eax
jae 0x58230d
mov dword [esp + 0x3c], edi
mov ecx, ebx
cmp ecx, 2
ja 0x5822df
test ebp, ebp
je 0x582f4c
mov edi, dword [esp + 0x3c]
sub ebp, 1
movzx eax, byte [edi]
shl eax, cl
add ecx, 8
add esi, eax
mov eax, edi
add eax, 1
mov dword [esp + 0x3c], eax
add edx, 1
mov ebx, esi
sub ecx, 3
and ebx, 7
movzx eax, word [edx + edx + 0x7242fe]
shr esi, 3
cmp dword [esp + 0x40], edx
mov edi, dword [esp + 0x24]
mov dword [edi + 0x6c], edx
mov word [edi + eax*2 + 0x74], bx
ja 0x5822b8
mov edi, dword [esp + 0x3c]
mov ebx, ecx
cmp edx, 0x12
lea eax, [edx + edx + 0x724300]
mov ecx, dword [esp + 0x24]
ja 0x58233f
lea esi, [esi]
movzx edx, word [eax]
add eax, 2
cmp eax, 0x724326
mov word [ecx + edx*2 + 0x74], 0
jne 0x582320
mov eax, dword [esp + 0x24]
mov dword [eax + 0x6c], 0x13
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [eax + 0x70], edx
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x58], 7
mov dword [esp + 8], 0x13
mov dword [esp], 0
mov dword [esp + 0x14], edx
mov edx, eax
add eax, 0x58
mov dword [esp + 0x10], eax
mov eax, edx
add eax, 0x70
mov dword [esp + 0xc], eax
mov eax, edx
add eax, 0x74
mov dword [esp + 4], eax
call sym._inflate_table
test eax, eax
mov dword [esp + 0x38], eax
je 0x5831ba
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_code_lengths_set
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
shr esi, cl
cmp ebx, 0x1f
ja 0x5831eb
test ebp, ebp
je 0x582600
lea eax, [edi + 1]
mov ecx, ebx
lea edx, [ebp - 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0x1f
ja 0x582e54
test edx, edx
je 0x582b60
lea eax, [edi + 2]
lea edx, [ebp - 2]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
lea ecx, [ebx + 0x10]
add esi, eax
cmp ecx, 0x1f
ja 0x582e54
test edx, edx
je 0x582b60
lea eax, [edi + 3]
lea edx, [ebp - 3]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
shl eax, cl
lea ecx, [ebx + 0x18]
add esi, eax
cmp ecx, 0x1f
ja 0x582e54
test edx, edx
je 0x582b60
lea eax, [edi + 4]
sub ebp, 4
add ebx, 0x20
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 3]
shl eax, cl
add esi, eax
mov edx, esi
movzx eax, si
shr edx, 0x10
xor edx, 0xffff
cmp eax, edx
je 0x582ad7
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x40]
mov dword [eax + 0x18], str.invalid_stored_block_lengths
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x58318f
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x58318f
cmp ebx, 0x1f
ja 0x58255f
test ebp, ebp
je 0x582c86
lea eax, [edi + 1]
mov ecx, ebx
lea edx, [ebp - 1]
mov dword [esp + 0x40], eax
movzx eax, byte [edi]
shl eax, cl
lea ecx, [ebx + 8]
add esi, eax
cmp ecx, 0x1f
ja 0x582c7d
test edx, edx
je 0x582b60
lea eax, [edi + 2]
lea edx, [ebp - 2]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 1]
shl eax, cl
lea ecx, [ebx + 0x10]
add esi, eax
cmp ecx, 0x1f
ja 0x582c7d
test edx, edx
je 0x582b60
lea eax, [edi + 3]
lea edx, [ebp - 3]
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 2]
shl eax, cl
lea ecx, [ebx + 0x18]
add esi, eax
cmp ecx, 0x1f
ja 0x582c7d
test edx, edx
je 0x582b60
lea eax, [edi + 4]
sub ebp, 4
add ebx, 0x20
mov dword [esp + 0x40], eax
movzx eax, byte [edi + 3]
shl eax, cl
add esi, eax
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x20], esi
je 0x58334b
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], str.incorrect_length_check
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x582600
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x44]
mov byte [ecx], al
mov eax, edx
sub eax, 1
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f48
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
mov eax, 0x3f48
jmp 0x581a10
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x582b31
mov edx, eax
mov dword [ecx + 0x10], 0
and eax, 0x400
mov ecx, dword [esp + 0x24]
mov dword [ecx + 4], 0x3f39
jmp 0x581d82
mov dword [esp + 0x3c], esi
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
jmp 0x581624
mov dword [edi + 4], 0x3f40
mov edx, 0xc
jmp 0x58100d
sub eax, 0xffffff80
xor edx, edx
jmp 0x5817a2
mov ebx, edi
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ecx
jmp 0x581624
mov esi, dword [esi + 4]
test esi, esi
jne 0x580fb1
mov dword [esp + 0x34], 0
jmp 0x581001
mov ecx, ebx
mov dword [eax + 4], 0x3f4e
and ebx, 0xfffffff8
and ecx, 7
mov eax, 0x3f4e
shr esi, cl
jmp 0x581a10
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call sym._adler32
jmp 0x58175f
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x581f7f
mov dword [eax + 0x1c], 0
jmp 0x581f7f
mov edx, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp], eax
sub edx, ebx
mov dword [esp + 4], edx
call sym._memcpy
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], eax
jmp 0x581710
mov ebp, ebx
mov dword [esp + 0x3c], esi
mov ebx, edi
mov esi, ecx
mov edi, dword [esp + 0x24]
jmp 0x581624
mov dword [esi + 0x34], 0
jmp 0x581704
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x38]
mov dword [esp + 8], ebp
sub eax, ebp
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x34], ebp
mov dword [esi + 0x30], eax
jmp 0x581710
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f3f
mov eax, 0x3f3f
jmp 0x581a10
mov eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x44]
mov edx, ecx
mov eax, dword [esp + 0x2c]
cmp eax, ecx
cmovbe ecx, eax
sub eax, ecx
sub edx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x44], edx
mov eax, dword [esp + 0x28]
mov edx, eax
add edx, 4
cmp dword [esp + 0x3c], edx
mov edx, dword [esp + 0x3c]
setae cl
add edx, 4
cmp eax, edx
setae dl
or edx, ecx
cmp dword [esp + 0x40], 9
seta cl
test dl, cl
je 0x582c30
mov edx, dword [esp + 0x3c]
or edx, eax
and edx, 3
jne 0x582c30
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], ebx
xor edx, edx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], esi
sub ecx, 4
shr ecx, 2
add ecx, 1
lea eax, [ecx*4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + edx*4]
mov dword [ebx + edx*4], esi
add edx, 1
cmp edx, ecx
jb 0x5827eb
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov edx, ebx
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
add edx, ecx
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
cmp dword [esp + 0x40], ecx
je 0x582843
movzx ecx, byte [eax]
cmp dword [esp + 0x44], 1
mov byte [edx], cl
je 0x582843
movzx ecx, byte [eax + 1]
cmp dword [esp + 0x44], 2
mov byte [edx + 1], cl
je 0x582843
movzx eax, byte [eax + 2]
mov byte [edx + 2], al
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
add dword [esp + 0x28], edx
mov edx, dword [eax + 0x44]
test edx, edx
je 0x582860
mov eax, dword [eax + 4]
jmp 0x581a10
mov dword [eax + 4], 0x3f48
mov eax, 0x3f48
jmp 0x581a10
test byte [eax + 0xc], 4
je 0x581f6c
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x40], dl
mov dword [esp + 0x3c], ecx
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x1c], eax
movzx edx, byte [esp + 0x40]
jmp 0x581f6c
movzx eax, word [ecx + 0x1c]
cmp eax, esi
je 0x581b58
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.header_crc_mismatch
mov dword [ecx + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x28]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [edx], edi
mov dword [edx + 4], ebp
mov dword [edx + 0xc], ecx
mov dword [eax + 0x3c], esi
mov dword [eax + 0x40], ebx
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._inflate_fast
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov eax, esi
mov ebx, dword [eax + 0x40]
mov eax, dword [eax + 4]
mov esi, dword [esi + 0x3c]
cmp eax, 0x3f3f
jne 0x581a10
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1bc8], 0xffffffff
jmp 0x581a10
cmp ebx, edx
jae 0x582992
test ebp, ebp
je 0x582600
mov ecx, ebx
jmp 0x58297b
test ebp, ebp
je 0x582630
add edi, 1
movzx eax, byte [edi - 1]
sub ebp, 1
shl eax, cl
add ecx, 8
add esi, eax
cmp ecx, edx
jb 0x582973
mov ebx, ecx
mov ecx, edx
mov eax, 1
sub ebx, edx
shl eax, cl
mov ecx, dword [esp + 0x24]
sub eax, 1
and eax, esi
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov ecx, edx
shr esi, cl
mov ecx, dword [esp + 0x24]
add dword [ecx + 0x1bc8], edx
mov edx, ecx
jmp 0x58141e
mov eax, dword [esp + 0x2c]
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x30], eax
mov eax, ecx
nop
mov dword [eax + 4], 0x3f4f
jmp 0x5824a7
mov dword [eax + 4], 0x3f40
mov eax, 0x3f40
jmp 0x581a10
mov eax, dword [edx + 0x1bc4]
test eax, eax
je 0x5812c1
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x7239a5
mov dword [edx + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov edx, dword [edx + 0x1bc8]
mov dword [esp + 0x40], edx
mov ecx, eax
add edx, eax
sub ebx, dword [esp + 0x44]
shr esi, cl
test byte [esp + 0x3c], 0x40
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x1bc8], edx
je 0x582c12
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x72398f
mov dword [ecx + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
shr esi, cl
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x24]
sub ebx, eax
mov eax, ecx
add eax, 1
mov dword [edi + 0x6c], eax
mov dword [esp + 0x44], eax
mov word [edi + ecx*2 + 0x74], dx
mov edx, dword [esp + 0x58]
jmp 0x581bd8
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov eax, dword [eax + 0x1c]
mov byte [esp + 0x40], dl
mov dword [esp + 0x3c], ecx
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x1c], eax
movzx edx, byte [esp + 0x40]
jmp 0x581aa2
mov dword [edi + 4], 0x3f44
mov eax, 0x3f44
jmp 0x581208
cmp dword [esp + 0xa4], 6
mov edi, dword [esp + 0x24]
mov dword [edi + 0x44], eax
mov dword [edi + 4], 0x3f42
je 0x5834b2
mov edi, dword [esp + 0x40]
xor ebx, ebx
xor esi, esi
jmp 0x581edb
test esi, 0xe000
je 0x58305e
mov eax, dword [esp + 0xa0]
mov edi, edx
mov dword [eax + 0x18], str.unknown_header_flags_set
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
xor eax, eax
jmp 0x5825ed
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x44]
mov dword [eax + 0x18], str.too_many_length_or_distance_symbols
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ecx
mov ebx, dword [esp + 0x40]
xor ebp, ebp
jmp 0x581624
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ebx
xor ebp, ebp
mov ebx, dword [esp + 0x40]
jmp 0x581624
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov ebx, dword [esp + 0x44]
jmp 0x581624
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov ebx, edx
jmp 0x581624
sub eax, ecx
add eax, dword [edx + 0x38]
mov dword [esp + 0x3c], eax
mov eax, edx
jmp 0x5812dc
test byte [esp + 0x3c], 0xf0
je 0x582c95
mov edx, dword [esp + 0x24]
movzx ecx, byte [esp + 0x48]
sub ebx, eax
mov dword [edx + 0x1bc8], eax
movzx eax, word [esp + 0x58]
shr esi, cl
mov dword [edx + 0x44], eax
test byte [esp + 0x3c], 0x20
je 0x582e11
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1bc8], 0xffffffff
mov dword [eax + 4], 0x3f3f
mov eax, 0x3f3f
jmp 0x581a10
movzx eax, word [esp + 0x58]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 4], 0x3f4b
and edx, 0xf
mov dword [ecx + 0x48], eax
mov dword [ecx + 0x4c], edx
jmp 0x581227
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x44], ebx
lea ecx, [edx + eax]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov esi, esi
lea edi, [edi]
add eax, 1
movzx ebx, byte [eax - 1]
add edx, 1
cmp ecx, eax
mov byte [edx - 1], bl
jne 0x582c50
mov ebx, dword [esp + 0x44]
jmp 0x582843
mov dword [esp + 0x3c], ebp
mov ebp, esi
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
jmp 0x581624
mov ebx, ecx
mov ebp, edx
jmp 0x582557
mov dword [esp + 0x3c], esi
mov esi, ebx
mov ebx, edi
mov edi, eax
jmp 0x581624
movzx edx, word [esp + 0x58]
movzx ecx, byte [esp + 0x3c]
mov dword [esp + 0x44], edx
add ecx, eax
mov edx, 1
shl edx, cl
mov ecx, edx
sub ecx, 1
mov dword [esp + 0x58], ecx
and ecx, esi
mov edx, ecx
movzx ecx, byte [esp + 0x48]
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x3c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x48], cx
lea ecx, [edx + eax]
cmp ecx, ebx
mov dword [esp + 0x5c], ecx
jbe 0x582d59
test ebp, ebp
je 0x582600
mov edx, esi
mov esi, ebp
mov ebp, edx
jmp 0x582d08
test esi, esi
je 0x582c6a
add edi, 1
movzx edx, byte [edi - 1]
mov ecx, ebx
add ebx, 8
sub esi, 1
shl edx, cl
mov ecx, eax
add ebp, edx
mov edx, dword [esp + 0x58]
and edx, ebp
shr edx, cl
add edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + edx*4]
movzx ecx, byte [edx]
mov byte [esp + 0x3c], cl
movzx ecx, word [edx + 2]
movzx edx, byte [edx + 1]
mov word [esp + 0x48], cx
lea ecx, [edx + eax]
cmp ecx, ebx
ja 0x582d00
mov dword [esp + 0x40], ebp
mov ebp, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
sub ebx, eax
mov ecx, eax
mov eax, ebx
shr esi, cl
mov ecx, edx
sub eax, edx
shr esi, cl
cmp byte [esp + 0x3c], 0
mov ebx, eax
movzx eax, word [esp + 0x48]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0x44], eax
mov dword [edx + 0x1bc8], ecx
jne 0x582be8
jmp 0x5813ef
cmp dword [esp + 0xa4], 6
mov dword [edi + 0x50], 0x723b00
mov dword [edi + 0x58], 9
mov dword [edi + 0x54], 0x723a80
mov dword [edi + 0x5c], 5
mov dword [edi + 4], 0x3f47
je 0x5834c9
mov eax, 0x3f47
jmp 0x581208
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_block_type
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581208
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.incorrect_header_check
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
test byte [esp + 0x3c], 0x40
je 0x58303b
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], 0x723973
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov eax, dword [esp + 0x2c]
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
jmp 0x5829d0
mov ebx, ecx
mov ebp, edx
jmp 0x582463
mov ebp, edx
jmp 0x581108
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ecx
xor ebp, ebp
mov ebx, dword [esp + 0x40]
jmp 0x581624
lea edi, [eax + 2]
cmp edi, ebx
mov edx, edi
jbe 0x582ec5
test ebp, ebp
je 0x582f39
mov ecx, ebx
mov edi, dword [esp + 0x48]
mov ebx, eax
mov eax, edx
jmp 0x582ea8
test ebp, ebp
je 0x582630
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add esi, edx
cmp ecx, eax
jb 0x582ea0
mov eax, ebx
mov dword [esp + 0x48], edi
mov ebx, ecx
mov ecx, eax
sub ebx, eax
mov eax, dword [esp + 0x44]
shr esi, cl
test eax, eax
je 0x58348b
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
mov edx, esi
and edx, 3
shr esi, 2
sub ebx, 2
add edx, 3
movzx eax, word [eax + edi*2 + 0x72]
mov ecx, edi
jmp 0x581cdf
mov eax, esi
mov dword [esp + 8], 2
mov byte [esp + 0x7c], al
mov eax, esi
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call sym._crc32
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x14]
jmp 0x5818a0
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
jmp 0x581b46
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x24]
mov esi, ebx
mov ebx, dword [esp + 0x48]
jmp 0x581624
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], esi
mov esi, ecx
jmp 0x581624
lea edi, [eax + 3]
cmp edi, ebx
mov edx, edi
jbe 0x582fa5
test ebp, ebp
je 0x582f39
mov ecx, ebx
mov edi, dword [esp + 0x48]
mov ebx, eax
mov eax, edx
jmp 0x582f88
test ebp, ebp
je 0x582630
add edi, 1
movzx edx, byte [edi - 1]
sub ebp, 1
shl edx, cl
add ecx, 8
add esi, edx
cmp ecx, eax
jb 0x582f80
mov eax, ebx
mov dword [esp + 0x48], edi
mov ebx, ecx
mov ecx, eax
mov edi, 0xfffffffd
shr esi, cl
sub edi, eax
mov ecx, dword [esp + 0x44]
mov edx, esi
add ebx, edi
shr esi, 3
and edx, 7
xor eax, eax
add edx, 3
jmp 0x581cdf
mov eax, dword [esp + 0x40]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
jmp 0x581e17
mov eax, esi
mov dword [esp + 8], 4
mov byte [esp + 0x7c], al
mov eax, esi
shr eax, 8
mov byte [esp + 0x7d], al
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x7e], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 0x18
mov byte [esp + 0x7f], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call sym._crc32
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x24]
jmp 0x581831
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
and edx, 0xf
mov dword [eax + 4], 0x3f49
mov dword [eax + 0x4c], edx
jmp 0x58140b
mov edx, edi
mov edi, eax
jmp 0x5811d0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x58306f
mov ecx, esi
shr ecx, 8
and ecx, 1
mov dword [eax], ecx
test esi, 0x200
je 0x583085
mov eax, dword [esp + 0x24]
test byte [eax + 0xc], 4
jne 0x5833e5
mov eax, dword [esp + 0x24]
mov edi, edx
xor ebx, ebx
xor esi, esi
mov dword [eax + 4], 0x3f36
jmp 0x5817e5
mov eax, esi
mov dword [esp + 8], 2
xor ebx, ebx
mov byte [esp + 0x7c], al
mov eax, esi
mov esi, dword [esp + 0x24]
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
xor esi, esi
mov eax, edx
and eax, 0x400
jmp 0x5825ed
test ecx, ecx
jne 0x583151
lea eax, [edx - 2]
mov dword [esp + 0x68], edx
shr eax, 1
add eax, 1
mov dword [esp + 0x3c], eax
add eax, eax
mov dword [esp + 0x6c], eax
movzx edx, word [esp + 0x40]
mov edi, dword [esp + 0x24]
mov eax, edx
shl eax, 0x10
or edx, eax
mov eax, dword [esp + 0x60]
add eax, ecx
lea ecx, [edi + eax*2]
mov edi, dword [esp + 0x48]
xor eax, eax
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [esp + 0x3c]
jb 0x583118
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x6c]
add dword [esp + 0x44], edi
cmp dword [esp + 0x68], edi
je 0x581d5c
movzx edx, word [esp + 0x40]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
mov word [eax + edi*2 + 0x74], dx
jmp 0x581d5c
mov edi, dword [esp + 0x44]
lea ecx, [edi + 1]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x24]
mov word [ecx + edi*2 + 0x74], ax
lea eax, [edx - 1]
mov ecx, 1
mov edi, eax
mov dword [esp + 0x68], eax
lea eax, [edx - 3]
shr eax, 1
add eax, 1
mov dword [esp + 0x3c], eax
add eax, eax
cmp edi, 1
mov dword [esp + 0x6c], eax
je 0x58313a
jmp 0x5830f9
mov dword [esp + 0x3c], esi
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
mov dword [edi + 4], 0x3f50
mov dword [esp + 0x38], 1
jmp 0x581624
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
jmp 0x5820c4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 4], 0x3f46
mov edx, eax
jmp 0x581bc4
mov dword [esp + 0x44], edi
jmp 0x581940
mov edx, edi
jmp 0x581ea2
mov dword [esp + 0x40], edi
jmp 0x582463
mov ebx, ecx
mov ebp, edx
jmp 0x581940
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
jmp 0x581ea2
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x48]
cmp word [eax + 0x274], 0
jne 0x583360
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], str.invalid_code____missing_end_of_block
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x58324b
mov dword [eax + 0x28], 0xf
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor ebx, ebx
mov dword [esp], 0
call sym._crc32
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x7d], 0x8b
mov dword [esi + 0x1c], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._crc32
mov dword [esi + 4], 0x3f35
mov dword [esi + 0x1c], eax
mov eax, 0x3f35
xor esi, esi
jmp 0x581a10
sub edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x1c]
mov dword [esp], eax
call sym._adler32
jmp 0x582114
mov ecx, esi
mov edx, dword [esp + 0x28]
mov esi, ebx
mov ebx, edi
mov edi, eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov dword [eax + 0x10], edx
mov dword [edi + 0x3c], ecx
mov eax, 2
mov dword [edi + 0x40], esi
jmp 0x580fb1
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
jmp 0x582200
mov edx, dword [esp + 0x24]
shr esi, 4
sub ebx, 4
mov ecx, esi
and ecx, 0xf
mov eax, dword [edx + 0x28]
add ecx, 8
test eax, eax
jne 0x583423
cmp ecx, 0xf
mov dword [edx + 0x28], ecx
jbe 0x583434
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x18], str.invalid_window_size
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov ebx, edi
xor esi, esi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], 0
jmp 0x58319b
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [eax + 0x70], edx
mov dword [eax + 0x50], edx
lea edx, [eax + 0x74]
mov dword [eax + 0x58], 9
lea ecx, [eax + 0x70]
add eax, 0x58
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp], 1
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 8], edx
call sym._inflate_table
test eax, eax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x40]
je 0x5834e2
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x18], str.invalid_literal_lengths_set
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov eax, esi
mov edi, dword [esp + 0x24]
mov dword [esp + 8], 2
mov byte [esp + 0x7c], al
mov eax, esi
mov dword [esp + 0x3c], edx
shr eax, 8
mov byte [esp + 0x7d], al
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call sym._crc32
mov edx, dword [esp + 0x3c]
mov dword [edi + 0x1c], eax
jmp 0x583085
cmp ecx, 0xf
ja 0x583328
cmp ecx, eax
ja 0x583328
mov ebx, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov dword [ebx + 0x18], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._adler32
mov edx, dword [esp + 0xa0]
mov dword [ebx + 0x1c], eax
mov dword [edx + 0x30], eax
mov eax, esi
and eax, 0x200
cmp eax, 1
sbb eax, eax
xor esi, esi
and eax, 2
add eax, 0x3f3d
mov dword [ebx + 4], eax
xor ebx, ebx
jmp 0x581a10
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x48]
mov dword [eax + 0x18], str.invalid_bit_length_repeat
mov eax, dword [esp + 0x24]
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
xor esi, esi
mov dword [esp + 0x3c], 0
jmp 0x581624
mov eax, esi
mov esi, ebx
mov edi, dword [esp + 0x24]
shr eax, 3
sub esi, 3
mov ebx, edx
mov dword [esp + 0x3c], eax
jmp 0x581624
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x70]
mov dword [edx + 0x5c], 6
mov dword [edx + 0x54], eax
mov eax, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov edx, eax
add eax, 0x5c
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0x68]
mov dword [esp + 8], eax
mov eax, dword [edx + 0x64]
mov edx, dword [esp + 0x3c]
mov dword [esp], 2
lea eax, [edx + eax*2]
mov dword [esp + 4], eax
call sym._inflate_table
test eax, eax
mov dword [esp + 0x38], eax
je 0x5812e9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 0x18], str.invalid_distances_set
mov dword [eax + 4], 0x3f51
mov eax, 0x3f51
jmp 0x581a10