Function at 0x2d0108c
Capabilities:
Decompress data using aplib

Disassembly:
bt cx, cx
mov bl, 1
push 0x9b6239dc
mov dword [esp + 0x34], esi
mov si, cx
push eax
mov esi, edi
stc
sub esi, eax
jmp 0x2d010a9
pushfd
push dword [esp]
call fcn.0390efff
add byte [eax], al
dec ecx
jae 0x2d010fa
push 0x646c69
call fcn.039116e3
add byte [eax], al
dec esp
outsd dx, dword [esi]
arpl word [ecx + 0x6c], sp
push edx
inc ecx
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [eax], ax
inc ecx
inc esp
push esi
inc ecx
push eax
dec ecx
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [eax], al
add byte [edi + 0x65], al
je 0x2d01127
jae 0x2d01151
je 0x2d01157
jo 0x2d01141
imul ebp, dword [esi + 0x64], 0x776f
add byte [ebx + 0x65], dl
je 0x2d0114a
js 0x2d0116d
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x2d010ff
add byte [eax], al
push ebx
je 0x2d01165
jb 0x2d0117a
inc esp
outsd dx, dword [esi]
arpl word [ecx], ax
add byte [eax], al
push ebx
je 0x2d01164
arpl word [edx + 0x6f], si
insb byte es:[edi], dx
insb byte es:[edi], dx
push edx
popal
outsb dx, byte [esi]
add byte gs:[si], al
add cl, bh
ja 0x2d0118a
jbe 0x2d01190
dec edi
jne 0x2d011a2
push ebp
outsb dx, byte [esi]
jo 0x2d011a4
jo 0x2d01196
jb 0x2d0119c
dec eax
popal
jb 0x2d0113e
add al, 0x24
test eax, 0x8d9c6060
and al, 0x48
dec eax
add byte [edi + 0x72], dl
imul esi, dword [ebp + 0x46], 0x656c69
add byte [eax], al
push eax
imul ecx, dword gs:[ebp + 0x65], 0x73
inc esi
imul ebp, dword [ebp], 0x65500000
imul ecx, dword gs:[ebp + 0x65], 0x73
jae 0x2d011d9
jae 0x2d011c8
popal
inc ecx
add byte [eax], al
add byte [ecx + 0x6d], cl
dec ecx
insd dword es:[edi], dx
popal
dec esp
imul esi, dword [ebx + 0x74], 0x6165525f
add byte fs:[eax], al
add byte [edi + 0x65], al
je 0x2d011cf
outsd dx, dword [esi]
jne 0x2d011f2
inc esi
imul ebp, dword [ebp + 0x4e], 0x41656d61
dec esi
popal
insd dword es:[edi], dx
inc ecx
add byte [eax], al
add byte [edi + 0x65], al
je 0x2d011ea
push ebx
jns 0x2d0120c
inc ebx
outsd dx, dword [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
jb 0x2d011e1
jb 0x2d01216
jae 0x2d0120b
push 0x24648d00
sub al, 0xe8
add byte [ebp - 0x17d3db9c], cl
pop es
or dword [eax], eax
add ch, dh
push dword [esp + 0x28]
ret 0x2c
add byte [eax], al
push ebx
je 0x2d0122c
imul ebp, dword [esi + 0x64], 0x724f776f
inc ebp
ja 0x2d0122a
jb 0x2d01244
inc ebp
js 0x2d011e0
add byte [eax], al
inc edi
je 0x2d0123d
add byte [edi + 0x65], al
je 0x2d0123d
imul ebp, dword [esi + 0x64], 0x6552776f
arpl word [eax + eax], si
ja 0x2d0123e
arpl word gs:[eax + eax], si
add byte [edx + 0x65], dl
imul esi, dword [bp + di + 0x74], 0x69577265
push edx
imul esi, dword gs:[bp + di + 0x74], 0x69577265
outsb dx, byte [esi]
outsd dx, dword fs:[esi]
ja 0x2d0124e
jae 0x2d01277
popal
inc ecx
add byte [eax], al
add byte [edi + 0x65], al
je 0x2d0125c
inc edi
je 0x2d0125c
popal
jo 0x2d0125f
outsd dx, dword [esi]
add byte gs:[eax], al
add byte [ebp + 0x65], cl
jae 0x2d0128f
add byte [eax], al
dec ebp
jae 0x2d0128f
popal
inc edx
outsd dx, dword [esi]
js 0x2d01264
add al, ch
cdq
adc eax, dword [eax]
add byte [ebx + 0x4f], al
call 0x2d025c2
inc ebx
dec edi
dec ebp
inc ebx
push esp
dec esp
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add bh, bh
push dword [esp]
adc byte [ecx + ebp*8 + 0xc0552a], bl
add byte [eax], al
insd dword es:[edi], dx
imul esp, dword [ecx + ebp*2 + 0x4f], 0x65527475
jae 0x2d012b7
add byte [eax], al
add byte [ebp + 0x69], ch
imul ecx, dword fs:[edi + 0x75], 0x73655274
je fcn.02d01254
push edx
jae 0x2d012b7
je fcn.02d01254
add al, 0xc6
inc esp
and al, 4
jp 0x2d012c9
mov dword [esp + 4], esp
and al, 4
push esi
popal
insb byte es:[edi], dx
imul esp, dword [ecx + 0x74], 0x63655265
je 0x2d01284
add byte [eax], al
inc edi
je 0x2d012d0
jne 0x2d012f8
insb byte es:[edi], dx
push eax
popal
je 0x2d012f9
dec esi
popal
insd dword es:[edi], dx
inc ecx
add byte [eax], al
add byte [ebp + 0x73], al
je 0x2d01310
outsd dx, dword [esi]
jns 0x2d012ee
outsb dx, byte gs:[esi]
jne 0x2d012a5
bswap eax
add byte [ebp - 0x75], dl
je 0x2d012e2
add al, 0x5d
popal
jo 0x2d01310
jae 0x2d01343
jb 0x2d01340
outsd dx, dword [esi]
jns fcn.02d012d3
outsb dx, byte [esi]
pop ss
and al, 4
into
pop esi
and al, 0x2c
push edx
jae 0x2d01389
insd dword es:[edi], dx
push esp
push 0x64616572
add byte [eax], al
add byte [edi + 0x65], al
je 0x2d01373
outsd dx, dword [esi]
insb byte es:[edi], dx
jns 0x2d0136d
imul ebp, dword [esp + ebp*2 + 0x4d], 0x65646f
mov byte [esp], 0x48
mov byte [esp], dl
push 0x1ad4d684
dec eax
push 0x2f549ca8
das
shl eax, 8
not al
lea esp, [esp + 0xc]
jg 0x390f070
or dh, dh
ror byte [ebp + 0xf0c2464], 1
invalid
not al
lodsb al, byte [esi]
pushal
jmp 0x397e5dc
popal
jo 0x2d013c7
imul ebp, dword [esi + 0x64], 0x6f50776f
outsd dx, dword [esi]
ja 0x2d013c6
outsd dx, dword [esi]
imul ebp, dword [esi + 0x74], 0x7af70073
insd dword es:[edi], dx
pushal
in al, 0x43
add eax, 0xc5763842
sahf
test dword [esi + 0x1a], 0x4361b46b
inc esi
sbb ch, byte [ebx - 0x4c]
popal
inc ebx
invalid
cmp ah, byte [ecx]
and al, 0xe1
je 0x2d01400
mov eax, 0x67e81e96
push eax
jecxz 0x2d0143a
cli
insd dword es:[edi], dx
pop ebx
pop ds
push es
mov dword [0x4fe25198], eax
add eax, ecx
out 0xc6, eax
rol esp, cl
ret
jns 0x2d01402
add byte [eax], al
push ebx
je 0x2d0144a
imul ecx, dword [ebp + 0x6f], 0x64
add byte gs:[eax], al
add byte [ebx + 0x72], al
popal
je 0x2d0147b
inc esp
imul esi, dword [edx + 0x65], 0x726f7463
jns 0x2d01461
add dh, al
inc esp
and al, 4
ljmp 0xc0e3
outsb dx, byte [esi]
add byte [eax - 0x73], ah
pushal
lea esp, [esp + 0x28]
cmc
fdiv qword [ecx]
shr byte [eax + 0x6f], 0x3f
jnp 0x2d01457
dec eax
jecxz 0x2d01423
add byte [eax + 0x2424648d], bl
clc
not al
pushfd
setns al
mov al, byte [esp]
lodsb al, byte [esi]
mov word [esp], 0x38dc
inc al
lea esp, [esp + 4]
jo 0x2d0299f
stc
pushal
rol al, 6
clc
call fcn.0390673f
push 0xdf80a4e5
call fcn.03906a7b
add byte [eax], al
inc ebx
jb 0x390f10b
popal
je 0x390f10e
push edi
imul ebp, dword [esi + 0x64], 0x7845776f
inc ecx
add byte [eax], al
add byte [ebx + esi*2 + 0x74], ch
jb 0x390f11d
jo 0x390f135
outsb dx, byte [esi]
inc ecx
add byte [eax], al
add byte [ebx + 0x68], dl
insb byte es:[edi], dx
insb byte es:[edi], dx
pop edi
dec esi
outsd dx, dword [esi]
je 0x390f134
jns 0x390f117
arpl word [edi + 0x6e], bp
inc ecx
add byte [eax], al
add byte [edi + 0x65], al
je 0x390f12c
arpl word [edx + 0x6f], si
insb byte es:[edi], dx
insb byte es:[edi], dx
push eax
outsd dx, dword [esi]
jae 0x390f0e2
add byte [eax], al
dec edi
jo 0x390f156
outsb dx, byte [esi]
inc esi
imul ebp, dword [ebp + 0x4d], 0x69707061
outsb dx, byte [esi]
inc ecx
add byte [eax], al
add byte [ebx + 0x72], al
popal
je 0x390f16c
inc esp
inc ebx
inc ecx
add byte [eax], al
add byte [edi + 0x65], al
je 0x390f154
add byte [eax], al
inc edi
je 0x390f154
jne 0x390f185
jae 0x390f184
jb 0x390f117
pop esp
jecxz 0x390f0ec
sar dword [0xe9e95aa0], 0x19
stc
lds ebx, [esi + ebp*8 + 0x1e]
pop edx
jmp 0xc98a0b0c
out dx, al
push ds
invalid
push 0xffffffffffffffc7
push esi
out 0x1e, eax
invalid
les ecx, [edi - 0x2c]
inc ebx
dec edi
aam 0x43
mov word [ebx - 0x3d], fs
loope 0x390f13e
inc ebx
out 0x4c, al
mov edx, dword [ebp + ebp*8 + 0x3f]
mov bl, 0x8c
cmovae eax, ebx
push cs
pop es
xchg ebx, eax
sub bh, byte [ecx]
push edx
sub al, 0x9f
and dword ss:[eax + ebx*4], edx
cwde
stc
or eax, edi
test al, 7
fistp dword [eax - 0x5d]
loop 0x390f124
add al, byte [ecx + 0x44feb90a]
push ds
cmc
mov al, byte [0xb4115165]
sub ecx, edi
cli
xchg dword [ebx], edi
mov dh, byte [ecx + eax*2 + 0x6b12039a]
push esp
invalid
mov ah, 0x2b
iretd
push es
xchg ebx, eax
xor eax, 0xf61e48af
invalid
push ebx
pushal
inc al
cmc
bt dx, 0xc
pushfd
rol al, 6
add esp, 0x44
jge 0x390fd3e
bt di, 4
add al, 0
push 0xb15e857d
mov word [esp], 0x1735
xor al, 0x32
pushfd
jmp 0x2d01224