Function at 0x407f7e
Capabilities:
Decompress data using lzo

Disassembly:
mov edx, dword [esp + 4]
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0x18]
add ebx, edx
push esi
push edi
mov edi, dword [esp + 0x1c]
and dword [ebp], 0
mov al, byte [edx]
push 4
pop ecx
cmp al, 0x11
jbe 0x407fbe
movzx ecx, al
sub ecx, 0x11
inc edx
cmp ecx, 4
jb 0x408182
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
sub ecx, 1
jne 0x407fb1
jmp 0x408022
movzx esi, al
inc edx
cmp esi, 0x10
jae 0x40805d
test al, al
jne 0x407fe7
jmp 0x407fd8
add esi, 0xff
inc edx
mov al, byte [edx]
test al, al
je 0x407fd1
add esi, 0xf
movzx eax, al
add esi, eax
inc edx
mov eax, dword [edx]
add edx, ecx
mov dword [edi], eax
add edi, ecx
sub esi, 1
je 0x408022
cmp esi, ecx
jb 0x408017
mov eax, dword [edx]
sub esi, ecx
mov dword [edi], eax
add edx, ecx
add edi, ecx
cmp esi, ecx
jae 0x407ff8
test esi, esi
je 0x408022
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
sub esi, 1
jne 0x40800a
jmp 0x408022
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
sub esi, 1
jne 0x408017
movzx esi, byte [edx]
inc edx
cmp esi, 0x10
jae 0x40805d
movzx eax, byte [edx]
mov ecx, edi
shl eax, 2
shr esi, 2
sub ecx, esi
sub ecx, eax
inc edx
mov al, byte [ecx - 0x801]
mov byte [edi], al
mov al, byte [ecx - 0x800]
mov byte [edi + 1], al
mov al, byte [ecx - 0x7ff]
mov byte [edi + 2], al
add edi, 3
jmp 0x408179
cmp esi, 0x40
jb 0x40809c
mov eax, esi
mov ecx, edi
shr eax, 2
and eax, 7
shr esi, 5
sub ecx, eax
movzx eax, byte [edx]
shl eax, 3
sub ecx, eax
dec ecx
inc edx
dec esi
mov al, byte [ecx]
mov byte [edi], al
mov al, byte [ecx + 1]
mov byte [edi + 1], al
add edi, 2
add ecx, 2
mov al, byte [ecx]
mov byte [edi], al
inc edi
inc ecx
sub esi, 1
jne 0x40808c
jmp 0x408179
cmp esi, 0x20
jb 0x4080ce
and esi, 0x1f
jne 0x4080be
jmp 0x4080af
add esi, 0xff
inc edx
mov al, byte [edx]
test al, al
je 0x4080a8
add esi, 0x1f
movzx eax, al
add esi, eax
inc edx
movzx eax, word [edx]
lea ecx, [edi - 1]
shr eax, 2
sub ecx, eax
add edx, 2
jmp 0x408119
mov ecx, edi
cmp esi, 0x10
jb 0x40815e
mov eax, esi
and eax, 8
shl eax, 0xb
sub ecx, eax
and esi, 7
jne 0x408100
jmp 0x4080f1
add esi, 0xff
inc edx
mov al, byte [edx]
test al, al
je 0x4080ea
add esi, 7
movzx eax, al
add esi, eax
inc edx
movzx eax, word [edx]
add edx, 2
shr eax, 2
sub ecx, eax
cmp ecx, edi
je 0x4081b1
sub ecx, 0x4000
cmp esi, 6
jb 0x40807c
mov eax, edi
sub eax, ecx
cmp eax, 4
jl 0x40807c
mov eax, dword [ecx]
add ecx, 4
mov dword [edi], eax
add edi, 4
sub esi, 2
mov eax, dword [ecx]
mov dword [edi], eax
push 4
pop eax
sub esi, eax
add edi, eax
add ecx, eax
cmp esi, eax
jae 0x40813c
test esi, esi
je 0x408179
mov al, byte [ecx]
mov byte [edi], al
inc edi
inc ecx
sub esi, 1
jne 0x408151
jmp 0x408179
movzx eax, byte [edx]
shr esi, 2
shl eax, 2
sub ecx, esi
sub ecx, eax
inc edx
mov al, byte [ecx - 1]
mov byte [edi], al
mov al, byte [ecx]
mov byte [edi + 1], al
add edi, 2
movzx ecx, byte [edx - 2]
and ecx, 3
je 0x4081a7
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
cmp ecx, 1
jbe 0x40819e
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
cmp ecx, 2
jbe 0x40819e
mov al, byte [edx]
mov byte [edi], al
inc edi
inc edx
movzx esi, byte [edx]
inc edx
jmp 0x40805d
mov al, byte [edx]
push 4
pop ecx
jmp 0x407fbe
sub edi, dword [esp + 0x1c]
cmp edx, ebx
mov dword [ebp], edi
sbb eax, eax
xor ecx, ecx
and eax, 0xfffffffc
pop edi
add eax, 0xfffffffc
cmp edx, ebx
pop esi
pop ebp
cmove eax, ecx
pop ebx
ret