Function at 0x10024060
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
shr ebp, cl
sub ebp, edx
and ebp, 0xee010d3
xor ebp, esi
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov ecx, dword [0x10026180]
mov edx, dword [esp + 8]
shl dl, cl
or edx, dword [esp + 4]
mov dl, 0x84
sub dl, 0xbe
mov edx, dword [esp + 0x14]
push ebx
push esi
jmp 0x10024826
movzx edx, byte [esi]
add esi, 1
mov dword [esp + 0x18], esi
lea ebx, [eax + 7]
and eax, dword [esp + 0x20]
or ax, 0x55e5
mov al, 0xfd
sub eax, 0x703d0397
mov eax, edx
shr eax, 7
jmp 0x1002463b
mov dword [esp + 0x18], esi
nop
nop
nop
nop
nop
mov dword [esp + 0x24], ebx
jmp 0x100249a6
test eax, eax
jmp 0x10024d42
and eax, 1
add edx, edx
test eax, eax
je 0x1002516d
shr al, cl
shl ax, cl
mov eax, ebx
sub ebx, 1
jmp 0x10024722
mov al, byte [eax]
jmp 0x10024f3e
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
xor al, 0xd1
and ax, cx
inc ax
ror eax, cl
add eax, 0x1bbc14fe
mov eax, ebx
sub ebx, 1
test eax, eax
jne 0x100241a3
jmp 0x10024196
test eax, eax
mov dword [esp + 0x24], ebx
jne 0x100249a6
movzx edx, byte [esi]
add esi, 1
or bl, bl
mov ebx, 7
jmp 0x1002447d
ror esi, cl
and esi, dword [esp + 0x10]
sub esi, ecx
add esi, esp
mov esi, eax
mov al, byte [esi]
xor ebx, ebx
mov byte [ecx], al
add ecx, 1
add esi, 1
push edi
mov dword [esp + 0xc], ebx
jmp 0x100246ba
and al, 0x5b
xor eax, ebp
or ax, 0x72d1
mov eax, edx
shr eax, 7
jmp 0x10024a3f
and eax, 1
add edx, edx
test eax, eax
jmp 0x10024b3d
mov dword [esp + 0x20], edx
jmp 0x10024c1e
je 0x10024ff8
and ax, ax
add eax, 0x2f140156
mov eax, ebx
sub ebx, 1
jmp 0x100245a8
jne 0x10024d5a
movzx edx, byte [esi]
add esi, 1
mov dword [esp + 0x18], esi
lea ebx, [eax + 7]
nop
nop
nop
nop
nop
ror ax, cl
xor ax, 0x211b
mov eax, edx
shr eax, 7
and eax, 1
add edx, edx
jmp 0x10024db4
test eax, eax
je 0x10024f58
xor edi, edi
mov dword [esp + 0xc], 4
add al, bl
mov eax, ebx
jmp 0x10024ecc
sub ebx, 1
test eax, eax
jne 0x10024ee0
movzx edx, byte [esi]
add esi, 1
lea ebx, [eax + 7]
sub al, al
dec eax
mov eax, ebp
or ax, 0x5dea
mov eax, edx
shr eax, 7
and eax, 1
jmp 0x10024f04
add edx, edx
sub dword [esp + 0xc], 1
lea edi, [eax + edi*2]
jne 0x10024dc6
test edi, edi
mov dword [esp + 0x18], esi
nop
nop
nop
nop
nop
je 0x10024f4d
or ax, ax
dec eax
rol ax, cl
mov ax, dx
xor eax, 0x5e039c3
mov eax, ecx
sub eax, edi
jmp 0x10024657
mov byte [ecx], al
add ecx, 1
jmp 0x10025180
mov byte [ecx], 0
add ecx, 1
jmp 0x10025180
movzx eax, byte [esi]
xor edi, esp
mov edi, eax
and edi, 1
add esi, 1
add edi, 2
shr eax, 1
nop
nop
nop
nop
nop
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], eax
je 0x10024fda
test edi, edi
nop
nop
nop
nop
nop
je 0x10024fe2
shl ax, cl
shl ax, cl
mov eax, ecx
nop
nop
nop
nop
nop
sub eax, dword [esp + 0xc]
add ecx, 1
sub edi, 1
mov al, byte [eax]
mov byte [ecx - 1], al
jne 0x10024f8a
and al, 0x7e
shr al, cl
xor eax, 0x57662f85
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
nop
nop
nop
nop
nop
jmp 0x1002518c
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
jmp 0x1002518c
lea edi, [esp + 0x18]
call section..code
cmp dword [esp + 0xc], 0
jne 0x10025071
cmp eax, 2
jne 0x10025069
nop
nop
nop
nop
nop
call section..code
test eax, eax
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x1c]
je 0x1002512a
inc edx
sub edx, esp
shr dx, cl
or edx, 0x7b62640b
sub dl, 0x6d
mov edx, ecx
nop
nop
nop
nop
nop
sub edx, dword [esp + 0x10]
add ecx, 1
sub eax, 1
mov dl, byte [edx]
nop
nop
nop
nop
nop
mov byte [ecx - 1], dl
jne 0x10025030
mov dword [esp + 0x1c], ecx
jmp 0x1002512a
sub eax, 3
jmp 0x10025074
sub eax, 2
add cl, 0xa8
xor ecx, esp
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
nop
nop
nop
nop
nop
shl eax, 8
add eax, edx
add ecx, 1
nop
nop
nop
nop
nop
lea edi, [esp + 0x18]
and esi, esp
add esi, 0x70bf450b
and esi, 0x6300089b
dec esi
dec esi
mov esi, eax
mov dword [esp + 0x18], ecx
call section..code
cmp esi, 0x7d00
jb 0x100250c5
add eax, 1
cmp esi, 0x500
nop
nop
nop
nop
nop
jb 0x100250d9
add eax, 1
cmp esi, 0x80
jae 0x100250ed
nop
nop
nop
nop
nop
add eax, 2
test eax, eax
mov ecx, dword [esp + 0x1c]
je 0x10025126
lea ebx, [ebx]
dec edx
dec dl
xor dx, dx
and edx, dword [esp + 0x20]
mov edx, ecx
sub edx, esi
mov dl, byte [edx]
mov byte [ecx], dl
nop
nop
nop
nop
nop
add ecx, 1
sub eax, 1
jne 0x100250ff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], esi
sub bx, 0x1e3a
mov bl, bl
add ebx, ebp
mov ebx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
add dx, dx
shl edx, cl
mov edx, dword [esp + 0x20]
inc esi
add esi, 0x11ba32e7
mov esi, 0x31fd3ff7
shl esi, cl
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
mov dword [esp + 0xc], 1
jmp 0x1002518c
mov al, byte [esi]
mov byte [ecx], al
add ecx, 1
add esi, 1
nop
nop
nop
nop
nop
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x14], 0
je 0x100246c6
pop edi
and al, 0xdc
inc al
mov eax, ecx
sub eax, dword [0x10026180]
pop esi
nop
nop
nop
nop
nop
pop ebx
or esp, 0x43b62d37
inc esp
xor esp, edi
and esp, 0x461a5969
or esp, ebx
mov esp, ebp
pop ebp
ret