Function at 0x6fa06060
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov esi, dword [0x6fac2890]
mov dword [esp], str.version_info
call esi
test eax, eax
je 0x6fa06735
mov ebx, eax
mov dword [esp + 4], 0
mov dword [esp], eax
mov edi, dword [0x6fac289c]
call edi
test eax, eax
je 0x6fa06735
mov dword [esp], eax
mov ebp, dword [0x6fac2760]
call ebp
mov dword [esp + 4], 1
mov dword [0x6fabb020], eax
mov dword [esp], ebx
call edi
test eax, eax
je 0x6fa06735
mov dword [esp], eax
call ebp
mov dword [esp], str.dllhandle
mov dword [0x6fabb024], eax
call esi
xor edx, edx
test eax, eax
je 0x6fa060e4
mov dword [esp], eax
call dword [0x6fac2768]
mov edx, eax
mov dword [0x6fabb028], edx
mov dword [esp], edx
mov ebx, 0x6fa01ab0
mov esi, dword [0x6fac29fc]
mov dword [esp + 4], str.PyCell_Get
call esi
sub esp, 8
test eax, eax
cmove eax, ebx
mov dword [esp + 4], str.PyCell_New
mov dword [0x6fabb04c], eax
mov eax, dword [0x6fabb028]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
cmove eax, ebx
mov dword [esp + 4], str.PyCell_Set
mov dword [0x6fabb050], eax
mov eax, dword [0x6fabb028]
mov dword [esp], eax
call esi
sub esp, 8
test eax, eax
mov dword [0x6faaa0d0], 0x6fa05e70
cmove eax, ebx
mov dword [esp + 4], 0x3f5
mov dword [esp], 0x6faaa0a0
mov dword [0x6fabb054], eax
call dword [0x6fac2794]
test eax, eax
mov ebx, eax
je 0x6fa06735
mov dword [esp], eax
call dword [0x6fac27a0]
test eax, eax
mov ebp, eax
je 0x6fa06735
mov edi, dword [ebx + 0x10]
and byte [edi + 8], 0xf0
mov dword [esp + 4], 0x2e
mov esi, edi
mov dword [esp], eax
call fcn.6faa4e28
test eax, eax
mov dword [esp + 0x30], edi
je 0x6fa061e4
sub eax, ebp
mov edi, eax
lea eax, [eax + 1]
mov dword [esp], eax
call fcn.6faa4ea0
mov ecx, dword [esp + 0x30]
test eax, eax
mov dword [ecx + 4], eax
mov esi, ecx
je 0x6fa061e4
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.6faa4e90
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
mov byte [eax + edi], 0
mov esi, dword [ebx + 0x10]
cmp dword [0x6fabb020], 3
jne 0x6fa06950
mov eax, dword [0x6fabb024]
lea edx, [eax - 7]
cmp edx, 5
ja 0x6fa06950
mov ebp, dword [esi + 4]
lea eax, [eax*8 + 3]
mov byte [esi + 0xc], al
test ebp, ebp
je 0x6fa06c15
mov dword [esp + 4], 0x50
mov dword [esp], 0
mov edi, dword [0x6fac262c]
call edi
test eax, eax
mov dword [esi + 0x44], eax
je 0x6fa06730
mov dword [esp], eax
mov ebp, dword [0x6fac2624]
call ebp
test eax, eax
je 0x6fa06741
mov dword [esp], 0x20
mov dword [esp + 0x34], eax
call fcn.6faa4ea0
test eax, eax
mov dword [esi + 0x48], eax
mov edx, dword [esp + 0x34]
je 0x6fa06741
mov dword [eax], ebx
lea eax, [edx + 0x10]
mov dword [edx + 0x10], str.C_ASSERT_ARMORED_INDEX
mov dword [edx + 0x14], 0x6fa04670
mov dword [edx + 0x18], 8
mov dword [edx + 0x1c], 0
mov dword [esp], eax
mov eax, dword [0x6fac263c]
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
mov dword [esp + 0x38], eax
call eax
test eax, eax
mov edx, dword [esp + 0x34]
je 0x6fa06762
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x34], edx
mov dword [ecx + 4], eax
lea eax, [edx + 0x20]
mov dword [edx + 0x20], str.C_ENTER_CO_OBJECT_INDEX
mov dword [edx + 0x24], 0x6fa03f80
mov dword [edx + 0x28], 8
mov dword [edx + 0x2c], 0
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x38]
call eax
test eax, eax
mov edx, dword [esp + 0x34]
je 0x6fa06762
mov ecx, dword [esi + 0x48]
add edx, 0x30
mov dword [ecx + 8], eax
mov dword [edx], str.C_LEAVE_CO_OBJECT_INDEX
mov dword [edx + 4], 0x6fa04310
mov dword [edx + 8], 8
mov dword [edx + 0xc], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
mov dword [esp], edx
call eax
test eax, eax
je 0x6fa06762
mov edx, dword [esi + 0x48]
mov dword [edx + 0xc], eax
mov eax, dword [edx + 4]
mov esi, dword [ebx + 0x10]
mov dword [esp + 4], 0x198
mov dword [esp], 0
mov dword [0x6fabb030], eax
call edi
test eax, eax
mov dword [esi + 0x4c], eax
je 0x6fa06730
mov dword [esp], eax
call ebp
mov edx, dword [0x6fac28e0]
lea edi, [eax + 4]
and edi, 0xfffffffc
mov ecx, dword [edx]
mov esi, edx
mov dword [eax], ecx
mov ecx, dword [edx + 0xc8]
mov dword [eax + 0xc8], ecx
mov ecx, eax
sub ecx, edi
sub esi, ecx
add ecx, 0xcc
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x6fac27a4]
mov dword [eax + 0x80], edx
lea edi, [eax + 0xd0]
mov dword [eax + 0x3c], 0x6fa016d0
mov dword [eax + 0x64], 0x6fa01710
lea ecx, [eax + 0xcc]
mov dword [eax + 0x18], 0x6fa01660
and edi, 0xfffffffc
sub ecx, edi
mov edx, dword [esi]
mov dword [eax + 0xcc], edx
mov edx, dword [esi + 0xc8]
sub esi, ecx
add ecx, 0xcc
shr ecx, 2
mov dword [eax + 0x194], edx
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x114], 0x6fa01840
mov dword [eax + 0x118], 0x6fa019f0
mov ebp, dword [ebx + 0x10]
jmp 0x6ff962e8
jmp 0x6ff8f554
jmp 0x6fe7a4c2
jmp 0x6fa06746
jmp 0x6fe71b5c
jmp 0x6ffa2b99
jmp 0x6fe71b64
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa06af0
movzx eax, byte [eax]
shr al, 2
mov edi, eax
and edi, 3
cmp edi, 2
je 0x6fa070ca
mov edx, 5
mov eax, esi
call fcn.6fa01410
cmp edi, 1
je 0x6fa06ae0
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x14c0
jmp 0x6fa06710
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa0698c
movzx eax, byte [esi + 8]
shr al, 5
mov edi, eax
and edi, 3
jmp 0x6fa06966
mov eax, dword [esi + 0x60]
test eax, eax
je 0x6fa06d11
movzx eax, byte [eax]
shr al, 2
mov edi, eax
and edi, 3
cmp edi, 2
je 0x6fa070ca
mov edx, 7
mov eax, esi
call fcn.6fa01410
cmp edi, 1
je 0x6fa06d04
mov edx, dword [0x6fac26e0]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x14ee
jmp 0x6fa06710
mov edx, dword [0x6fac26e8]
mov edx, dword [edx]
jmp 0x6fa06c51
movzx eax, byte [esi + 8]
shr al, 5
mov edi, eax
and edi, 3
jmp 0x6fa06c2b
mov dword [esp], 1
call fcn.6faa4ee8
lea esi, [esi]
lea edi, [edi]