Function at 0x10024060
Capabilities:
Decompress data using aplib
Encode data using xor

Disassembly:
push ebp
rol ebp, cl
ror ebp, cl
add ebp, 0x665c031a
mov ebp, esp
jmp 0x100244c3
add esi, 1
push edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
xor ax, 0x528a
or ax, 0x6cc7
or eax, dword [esp + 8]
mov eax, ebx
sub ebx, 1
jmp 0x1002450a
or ax, dx
shr eax, cl
mov eax, edx
shr eax, 7
and eax, 1
jmp 0x10024a09
and esp, 0xfffffff8
sub esp, 0x1c
mov ecx, dword [0x100261c0]
sub edx, ecx
or edx, 0x20d607da
mov edx, dword [esp + 0x14]
jmp 0x10024629
test eax, eax
jne 0x100242ba
movzx edx, byte [esi]
jmp 0x100248bf
push ebx
push esi
or esi, ecx
mov esi, eax
mov al, byte [esi]
xor ebx, ebx
mov byte [ecx], al
add ecx, 1
jmp 0x100241e9
add esi, 1
mov dword [esp + 0x18], esi
lea ebx, [eax + 7]
jmp 0x100242ba
add edx, edx
test eax, eax
je 0x10025157
add ax, cx
ror al, cl
mov eax, ebx
sub ebx, 1
test eax, eax
jmp 0x10024b18
mov dword [esp + 0x24], ebx
jne 0x10024bc0
movzx edx, byte [esi]
add esi, 1
and ebx, dword [esp + 4]
dec ebx
rol bx, cl
shl bx, cl
mov ebx, 7
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], ebx
jmp 0x10024bc0
ror eax, cl
and eax, 0x49f802c7
mov eax, ebx
ror ax, cl
mov eax, edx
shr eax, 7
jmp 0x10024c69
and eax, 1
add edx, edx
test eax, eax
jmp 0x10024d06
mov dword [esp + 0x20], edx
je 0x10025006
shl eax, cl
or eax, esi
xor eax, 0xb1519be
mov ax, dx
mov eax, ebx
sub ebx, 1
test eax, eax
jmp 0x10024d74
jne 0x10024da8
movzx edx, byte [esi]
jmp 0x10024d9e
add esi, 1
mov dword [esp + 0x18], esi
lea ebx, [eax + 7]
dec eax
add ax, bx
mov eax, edx
shr eax, 7
and eax, 1
jmp 0x10024dfa
add edx, edx
nop
nop
nop
nop
nop
test eax, eax
je 0x10024f59
jmp 0x10024e87
xor edi, edi
mov dword [esp + 0xc], 4
inc eax
and ax, 0x19e0
mov eax, esi
mov eax, ebx
sub ebx, 1
test eax, eax
jne 0x10024eb4
movzx edx, byte [esi]
add esi, 1
lea ebx, [eax + 7]
nop
nop
nop
nop
nop
shr ax, cl
sub eax, edx
mov eax, edx
shr eax, 7
jmp 0x10024eec
and eax, 1
add edx, edx
jmp 0x10024f15
sub dword [esp + 0xc], 1
lea edi, [eax + edi*2]
jne 0x10024e91
nop
nop
nop
nop
nop
test edi, edi
mov dword [esp + 0x18], esi
je 0x10024f4e
and ax, 0x73dc
mov eax, ecx
sub eax, edi
mov al, byte [eax]
mov byte [ecx], al
add ecx, 1
jmp 0x10025174
mov byte [ecx], 0
add ecx, 1
jmp 0x10025174
movzx eax, byte [esi]
mov edi, esp
and edi, 0x4ad819d5
shr edi, cl
mov edi, eax
and edi, 1
add esi, 1
nop
nop
nop
nop
nop
add edi, 2
shr eax, 1
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], eax
je 0x10024fe3
test edi, edi
nop
nop
nop
nop
nop
je 0x10024ff0
nop
nop
nop
nop
nop
rol al, cl
add al, 0xd2
shl al, cl
add eax, ecx
and ax, dx
mov eax, ecx
sub eax, dword [esp + 0xc]
add ecx, 1
sub edi, 1
nop
nop
nop
nop
nop
mov al, byte [eax]
mov byte [ecx - 1], al
jne 0x10024f98
shr ax, cl
add ax, bx
sub eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
jmp 0x10025180
mov dword [esp + 0x14], 1
nop
nop
nop
nop
nop
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
nop
nop
nop
nop
nop
jmp 0x10025180
lea edi, [esp + 0x18]
call section..pdata
cmp dword [esp + 0xc], 0
jne 0x10025078
cmp eax, 2
jne 0x10025070
call section..pdata
nop
nop
nop
nop
nop
test eax, eax
mov ecx, dword [esp + 0x1c]
je 0x1002512d
and dx, ax
and edx, ecx
shr dl, cl
add edx, 0x1c887a84
mov edx, ecx
sub edx, dword [esp + 0x10]
add ecx, 1
sub eax, 1
nop
nop
nop
nop
nop
mov dl, byte [edx]
mov byte [ecx - 1], dl
nop
nop
nop
nop
nop
jne 0x10025039
mov dword [esp + 0x1c], ecx
jmp 0x1002512d
sub eax, 3
jmp 0x1002507b
sub eax, 2
and ecx, 0x2fc62c9d
xor cl, dl
mov ecx, dword [esp + 0x18]
nop
nop
nop
nop
nop
movzx edx, byte [ecx]
shl eax, 8
add eax, edx
add ecx, 1
lea edi, [esp + 0x18]
sub esi, ebx
and esi, 0x338205d2
mov esi, eax
mov dword [esp + 0x18], ecx
call section..pdata
nop
nop
nop
nop
nop
cmp esi, 0x7d00
jb 0x100250c7
add eax, 1
nop
nop
nop
nop
nop
cmp esi, 0x500
jb 0x100250d6
add eax, 1
cmp esi, 0x80
nop
nop
nop
nop
nop
jae 0x100250ef
nop
nop
nop
nop
nop
add eax, 2
test eax, eax
mov ecx, dword [esp + 0x1c]
je 0x10025124
lea ebx, [ebx]
xor edx, dword [esp]
mov dl, 0xdb
mov edx, ecx
sub edx, esi
nop
nop
nop
nop
nop
mov dl, byte [edx]
mov byte [ecx], dl
add ecx, 1
sub eax, 1
jne 0x10025101
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], esi
nop
nop
nop
nop
nop
or bl, 0xf7
add bl, 5
inc ebx
mov ebx, dword [esp + 0x24]
dec dx
mov edx, dword [esp + 0x20]
inc esi
mov esi, 0x3c2831b8
mov esi, eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], 1
jmp 0x10025180
mov al, byte [esi]
mov byte [ecx], al
nop
nop
nop
nop
nop
add ecx, 1
nop
nop
nop
nop
nop
add esi, 1
mov dword [esp + 0x18], esi
nop
nop
nop
nop
nop
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x14], 0
nop
nop
nop
nop
nop
je 0x100241fd
pop edi
rol eax, cl
shr eax, cl
xor ax, 0x79f2
add al, 0x31
mov eax, ecx
sub eax, dword [0x100261c0]
pop esi
pop ebx
or esp, ebp
rol esp, cl
inc esp
add esp, ebx
mov esp, ebp
pop ebp
ret