Function at 0x73e67990
Capabilities:
Decompress data using quicklz

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
push ebx
mov ebx, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov eax, edx
shr eax, 0x17
mov ecx, edx
add eax, eax
shr ecx, 0x10
mov dword [ebp - 0x14], eax
and ecx, 0xf
push esi
mov eax, edx
mov byte [ebp - 1], 0
push edi
and eax, 0x600000
mov byte [ebp - 2], 0
xor edi, edi
cmp eax, 0x200000
jne 0x73e679d0
inc ecx
mov eax, edx
shr eax, 0xd
and eax, 7
mov dword [ebp - 0x10], eax
je 0x73e679e1
inc eax
mov dword [ebp - 0x10], eax
lea esi, [eax + ecx]
test esi, esi
je 0x73e679f3
mov eax, edx
shr eax, 0x14
and eax, 1
lea esi, [esi + eax*8]
lea eax, [esi + 1]
shr edx, 2
mov esi, dword [ebp + 0xc]
and eax, 0xfffffffe
sub dword [ebp - 0x14], eax
and edx, 0x7ff
mov dword [ebp - 8], eax
add esi, 5
mov eax, dword [ebx]
and eax, 0xffe00000
or edx, eax
mov dword [ebx], edx
add ebx, 4
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x20], ebx
mov byte [ebx], 0xe4
mov eax, dword [edx + 4]
and eax, 0x600000
cmp eax, 0x400000
jne 0x73e67a38
mov byte [esi], 0xfc
inc esi
test ecx, ecx
je 0x73e67bdb
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 0xf0000
cmp eax, 0x10000
jne 0x73e67a67
and ecx, 0x600000
cmp ecx, 0x200000
jne 0x73e67a67
mov byte [esi], 1
inc esi
mov byte [ebp - 1], 1
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov ecx, dword [ecx + 4]
mov eax, ecx
shr eax, 0x11
and eax, 7
add eax, eax
je 0x73e67aea
mov bl, byte [ebp - 1]
mov edi, edi
lea eax, [esi + 2]
mov ecx, edx
and ecx, 0xf
mov dword [ebp - 0x1c], eax
lea eax, [edi + 2]
shl ecx, 6
mov dword [ebp - 0x18], eax
and ecx, 0xffffffc0
movzx eax, word [esi]
mov dword [ebp - 0x24], eax
test bl, bl
jne 0x73e67ab6
mov eax, dword [ebp - 8]
mov bl, 1
dec eax
and eax, 0x3f
or eax, ecx
or eax, 0xffffcc00
movzx eax, ax
jmp 0x73e67ac4
and edi, 0x3f
or edi, ecx
or edi, 0xffffc800
movzx eax, di
mov edi, dword [ebp - 0x18]
add edx, 2
mov word [esi], ax
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov eax, ecx
shr eax, 0x11
and eax, 7
add eax, eax
cmp edx, eax
jb 0x73e67a80
mov byte [ebp - 1], bl
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
imul eax, eax, 8
mov dword [ebp - 0x1c], eax
mov eax, ecx
and eax, 0x600000
test ecx, 0x10000
je 0x73e67ba2
cmp eax, 0x200000
jne 0x73e67b3a
mov eax, edx
mov ecx, edi
cdq
and ecx, 0x3f
sub eax, edx
sar eax, 1
and eax, 7
or eax, 0xffffff58
shl eax, 6
or eax, ecx
movzx ecx, ax
mov eax, 2
add edi, eax
mov word [esi], cx
add esi, eax
jmp 0x73e67bdb
movzx ecx, word [esi]
and edx, 0xf
cmp byte [ebp - 1], 0
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x24], ecx
jne 0x73e67b80
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
cdq
or ecx, 0xfffffea0
and edx, 7
shl ecx, 5
add eax, edx
mov byte [ebp - 1], 1
sar eax, 3
dec eax
and eax, 0x1f
or eax, ecx
movzx ecx, ax
mov eax, 1
add edi, eax
mov word [esi], cx
add esi, 2
jmp 0x73e67bdb
or edx, 0xffffff40
mov eax, edi
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 1
movzx ecx, dx
add edi, eax
mov word [esi], cx
add esi, 2
jmp 0x73e67bdb
cmp eax, 0x200000
jne 0x73e67bdb
cmp byte [ebp - 1], 0
jne 0x73e67bca
mov eax, dword [ebp - 0x1c]
cdq
and edx, 7
mov byte [ebp - 1], 1
add eax, edx
sar eax, 3
dec eax
and eax, 0x1f
or eax, 0xffffd560
jmp 0x73e67bd4
mov eax, edi
and eax, 0x3f
or eax, 0xffffd2c0
mov word [esi], ax
add esi, 2
inc edi
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x73e67cc4
xor edx, edx
and eax, 0xfffffffe
mov dword [ebp - 0x24], eax
jbe 0x73e67c54
mov bl, byte [ebp - 1]
lea eax, [esi + 2]
mov ecx, edx
and ecx, 7
mov dword [ebp - 0x18], eax
lea eax, [edi + 2]
shl ecx, 6
mov dword [ebp - 0x1c], eax
and ecx, 0xffffffc0
movzx eax, word [esi]
mov dword [ebp - 0x28], eax
test bl, bl
jne 0x73e67c29
mov eax, dword [ebp - 8]
mov bl, 1
dec eax
and eax, 0x3f
or eax, ecx
or eax, 0xffffda00
movzx eax, ax
jmp 0x73e67c37
and edi, 0x3f
or ecx, edi
or ecx, 0xffffd800
movzx eax, cx
mov ecx, dword [ebp - 0x1c]
add edx, 2
mov edi, ecx
mov word [esi], ax
mov eax, dword [ebp - 0x18]
mov esi, eax
cmp edx, dword [ebp - 0x24]
jl 0x73e67bf3
mov byte [ebp - 1], bl
mov ebx, dword [ebp - 0x20]
jmp 0x73e67c5a
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, 8
imul eax, dword [ebp - 8]
test byte [ebp - 0x10], 1
je 0x73e67cc4
lea ecx, [esi + 2]
and edx, 7
mov dword [ebp - 0x20], ecx
mov cl, byte [ebp - 1]
mov dword [ebp - 0x24], edx
test cl, cl
jne 0x73e67cae
cdq
and edx, 7
mov byte [esi + 1], 0xde
mov cx, word [esi]
add eax, edx
sar eax, 3
mov edx, 0xffffff00
dec eax
and cx, dx
and eax, 0x1f
or ax, cx
mov ecx, dword [ebp - 0x24]
shl ecx, 5
or ax, cx
mov cl, 1
mov word [esi], ax
mov esi, dword [ebp - 0x20]
jmp 0x73e67cc7
or edx, 0xffffff70
and edi, 0x3f
shl edx, 6
or edx, edi
mov word [esi], dx
mov esi, dword [ebp - 0x20]
jmp 0x73e67cc7
mov cl, byte [ebp - 1]
mov edi, dword [ebp - 0xc]
mov eax, dword [edi + 4]
test eax, 0x100000
je 0x73e67ce4
test cl, cl
je 0x73e67ce4
mov dword [esi], 0xe3e3e3e3
add esi, 4
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x14]
test edx, edx
jle 0x73e67dd5
and eax, 0x600000
cmp eax, 0x600000
je 0x73e67d58
cmp eax, 0x400000
je 0x73e67d58
lea ecx, [edx*8]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, 0x4000
jl 0x73e67d34
mov byte [esi + 3], 0xe0
mov ecx, dword [esi]
xor ecx, eax
and ecx, 0xffffff
xor dword [esi], ecx
add esi, 4
jmp 0x73e67dd5
cmp ecx, 0x200
jl 0x73e67d4e
and eax, 0x7ff
or eax, 0xffffc000
mov word [esi], ax
jmp 0x73e67dd2
and al, 0x1f
mov byte [esi], al
inc esi
jmp 0x73e67dd5
lea ecx, [edx*8]
cmp edx, 0x40
mov eax, ecx
cdq
jg 0x73e67d79
and edx, 7
add eax, edx
sar eax, 3
dec al
and al, 0x3f
or al, 0x80
mov byte [esi], al
jmp 0x73e67dca
and edx, 0xf
add eax, edx
sar eax, 4
cmp ecx, 0x4000
jl 0x73e67da0
mov byte [esi + 3], 0xe0
mov ecx, dword [esi]
xor ecx, eax
mov eax, 4
and ecx, 0xffffff
xor dword [esi], ecx
jmp 0x73e67dc5
cmp ecx, 0x200
jl 0x73e67dbc
and eax, 0x7ff
or eax, 0xffffc000
mov word [esi], ax
mov eax, 2
jmp 0x73e67dc5
and al, 0x1f
mov byte [esi], al
mov eax, 1
add esi, eax
mov byte [esi], 0x40
mov byte [esi + 1], 0xe1
mov byte [ebp - 2], 1
add esi, 2
mov eax, dword [edi + 4]
and al, 3
cmp al, 2
jne 0x73e67de2
mov byte [esi], 0xe5
inc esi
mov edx, dword [ebp + 0xc]
mov eax, dword [edi + 4]
and al, 3
mov ecx, dword [edx]
cmp al, 2
jne 0x73e67df8
and ecx, 0xf81fffff
jmp 0x73e67e1a
or ecx, 0x200000
cmp byte [ebp - 2], 0
mov dword [edx], ecx
je 0x73e67e14
and ecx, 0xf87fffff
or ecx, 0x400000
jmp 0x73e67e1a
and ecx, 0xf83fffff
mov eax, edx
mov edx, esi
sub edx, ebx
mov dword [eax], ecx
cmp edx, 1
jbe 0x73e67e3e
dec esi
cmp ebx, esi
jae 0x73e67e3e
lea esp, [esp]
mov al, byte [esi]
mov cl, byte [ebx]
mov byte [ebx], al
inc ebx
mov byte [esi], cl
dec esi
cmp ebx, esi
jb 0x73e67e30
mov esi, dword [ebp + 0xc]
lea ecx, [edx + 3]
shl ecx, 0x19
lea eax, [edx + 3]
shl eax, 0x19
pop edi
xor ecx, dword [esi]
and ecx, 0x7ffffff
xor ecx, eax
mov dword [esi], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret