Function at 0x401049
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
push eax
pop eax
and ebp, esi
mov ebp, esp
and esp, 0xfffffff8
xchg bx, bx
sub esp, 0x18
mov cx, cx
mov cl, byte [eax]
nop
and dword [esp + 0x14], 0
xchg dx, dx
nop
nop
nop
nop
nop
push esi
mov al, al
xor esi, esi
mov edi, edi
and dword [esp + 8], esi
xchg cl, cl
mov byte [ebx], cl
xchg esp, esp
lea ecx, [ebx + 1]
jmp 0x401082
inc eax
nop
push edi
mov bx, bx
mov dword [esp + 0x14], ecx
nop
jmp 0x40112b
mov dword [esp + 0x10], eax
xchg edx, edx
lea ecx, [esp + 0x10]
jmp 0x40113e
call entry0
mov al, al
jmp 0x401548
test eax, eax
jmp 0x401553
je 0x401ef6
call entry0
xchg cx, cx
test eax, eax
jmp 0x401567
je 0x401b77
call entry0
xchg ax, ax
test eax, eax
jmp 0x40157c
je 0x4017b0
jmp 0x401623
push 4
xchg ebx, ebx
xor esi, esi
nop
inc edi
pop edi
jmp 0x401648
lea ecx, [esp + 0x10]
jmp 0x401655
call entry0
cld
dec edi
nop
jmp 0x4016d5
lea esi, [eax + esi*2]
jmp 0x4016dc
jne 0x401648
test esi, esi
jmp 0x4016e8
mov eax, dword [esp + 0x14]
jmp 0x4016f5
je 0x4017a0
mov ecx, edx
shr ecx, cl
xor cx, bx
xor ecx, 0x3bdd7a34
add ecx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
sub eax, esi
mov ecx, ecx
jmp 0x401792
mov al, byte [eax]
xchg ax, ax
mov byte [ecx], al
mov ebp, ebp
jmp 0x4017a5
mov byte [eax], 0
xchg bl, bl
inc dword [esp + 0x14]
nop
jmp 0x401f27
dec ax
mov eax, 0x440764a2
sub ax, dx
sub eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
jmp 0x4017ca
jmp 0x40180b
inc dword [esp + 0x10]
xchg cx, cx
xor edx, edx
push ebp
pop ebp
inc edx
mov eax, eax
jmp 0x4018eb
ror ax, cl
add al, cl
mov eax, ecx
and eax, edx
mov ax, ax
inc eax
nop
inc eax
mov ax, ax
shr ecx, 1
jmp 0x401909
jmp 0x40196e
je 0x401b4f
test eax, eax
jmp 0x40197d
jmp 0x401a41
je 0x401b56
or dl, 0x1a
mov edx, dword [esp + 0x14]
or esi, 0x502510b8
xor esi, 0x5bc43732
dec esi
and esi, 0x4df22941
mov esi, dword [esp + 0x14]
sub edx, ecx
xchg al, al
jmp 0x401b20
mov dl, byte [edx]
nop
inc dword [esp + 0x14]
xchg bl, bl
dec eax
nop
mov byte [esi], dl
jmp 0x401b35
jne 0x401a47
jmp 0x401b56
mov dword [esp + 0xc], edx
mov cx, cx
mov dword [esp + 8], ecx
nop
jmp 0x401ebb
call fcn.00401030
push esi
pop esi
test esi, esi
jmp 0x401b87
jne 0x401cf2
cmp eax, 2
xchg cl, cl
jne 0x401ce7
lea ecx, [esp + 0x10]
jmp 0x401ba2
call fcn.00401030
nop
nop
nop
nop
nop
nop
test eax, eax
jmp 0x401bb2
je 0x401ebb
rol cx, cl
xor cx, cx
and cl, 0x30
ror ecx, cl
shr cx, cl
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 8]
xchg cx, cx
shl dl, cl
mov dx, ax
mov edx, dword [esp + 0x14]
mov cl, byte [ecx]
xchg bl, bl
jmp 0x401c74
inc dword [esp + 0x14]
nop
jmp 0x401c9d
dec eax
nop
mov byte [edx], cl
jmp 0x401cab
jmp 0x401cdc
jne 0x401bb8
jmp 0x401ebb
sub eax, 3
xchg cx, cx
jmp 0x401cf8
dec eax
xchg ebp, ebp
dec eax
mov al, al
or cl, 0xf8
sub ecx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx]
jmp 0x401d0c
shl eax, 8
jmp 0x401d17
nop
nop
nop
nop
nop
add eax, ecx
nop
jmp 0x401d40
inc dword [esp + 0x10]
xchg bl, bl
lea ecx, [esp + 0x10]
jmp 0x401d50
mov esi, 0x69964735
sub esi, edx
mov esi, eax
call fcn.00401030
mov ebx, ebx
cmp esi, 0x7d00
xchg dl, dl
jb 0x401d76
inc eax
xchg dl, dl
nop
nop
nop
nop
nop
cmp esi, 0x500
push edi
pop edi
jb 0x401da5
inc eax
push edx
pop edx
jmp 0x401da5
cmp esi, 0x80
xchg dx, dx
jmp 0x401de8
jae 0x401df5
inc eax
push ebx
pop ebx
inc eax
mov ax, ax
test eax, eax
jmp 0x401dfa
je 0x401eb5
sub cl, bl
mov ecx, dword [esp + 0x14]
shr dl, cl
or dl, 0x2d
mov edx, dword [esp + 0x14]
jmp 0x401e23
sub ecx, esi
mov edi, edi
mov cl, byte [ecx]
mov al, al
inc dword [esp + 0x14]
xchg ecx, ecx
dec eax
mov ax, ax
jmp 0x401ea7
mov byte [edx], cl
jmp 0x401eaf
jne 0x401e00
mov dword [esp + 8], esi
xchg bl, bl
xor esi, esi
mov dx, dx
inc esi
xchg dx, dx
jmp 0x401ef1
jmp 0x401f39
shl al, cl
ror al, cl
add al, bl
or eax, ebx
mov eax, dword [esp + 0x10]
add ecx, ecx
and ecx, ebp
sub cx, cx
add cx, bx
or cx, cx
mov ecx, dword [esp + 0x14]
mov al, byte [eax]
nop
inc dword [esp + 0x14]
mov eax, eax
inc dword [esp + 0x10]
xchg dl, dl
mov byte [ecx], al
mov al, al
xor esi, esi
xchg ax, ax
jmp 0x401f39
cmp dword [esp + 0xc], 0
nop
je 0x401131
sub ax, 0x465b
mov eax, dword [esp + 0x14]
or edi, 0x5212244b
pop edi
sub eax, ebx
nop
shl esi, cl
add esi, ebx
xor esi, ebx
shr esi, cl
pop esi
add esp, 0x1aa34d1d
mov esp, ebp
and ebp, esp
or ebp, 0x1ff759d5
add ebp, 0x150f450f
pop ebp
ret