Function at 0x10007360
Capabilities:
Decompress data using aplib

Disassembly:
sub esp, 0x18
mov edx, dword [esp + 0x1c]
push ebx
push ebp
push esi
mov esi, eax
mov al, byte [esi]
xor ebx, ebx
mov byte [edx], al
mov eax, dword [esp + 0x1c]
inc edx
xor ebp, ebp
inc esi
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], esi
jmp 0x10007390
mov ecx, ebp
dec ebp
test ecx, ecx
jne 0x100073a2
movzx eax, byte [esi]
inc esi
mov dword [esp + 0x18], esi
lea ebp, [ecx + 7]
mov ecx, eax
shr ecx, 7
and ecx, 1
add eax, eax
test ecx, ecx
je 0x10007556
mov ecx, ebp
dec ebp
mov dword [esp + 0x24], ebp
test ecx, ecx
jne 0x100073d0
movzx eax, byte [esi]
inc esi
mov ebp, 7
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], ebp
mov ecx, eax
shr ecx, 7
and ecx, 1
add eax, eax
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x100074a6
mov ecx, ebp
dec ebp
mov dword [esp + 0x24], ebp
test ecx, ecx
jne 0x10007402
movzx eax, byte [esi]
inc esi
mov ebp, 7
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], ebp
mov ecx, eax
shr ecx, 7
and ecx, 1
add eax, eax
test ecx, ecx
je 0x10007450
xor edi, edi
lea ebx, [edi + 4]
mov ecx, ebp
dec ebp
test ecx, ecx
jne 0x10007423
movzx eax, byte [esi]
inc esi
lea ebp, [ecx + 7]
mov ecx, eax
shr ecx, 7
and ecx, 1
add eax, eax
sub ebx, 1
lea edi, [ecx + edi*2]
jne 0x10007415
mov dword [esp + 0x18], esi
test edi, edi
je 0x10007448
mov ecx, edx
sub ecx, edi
mov cl, byte [ecx]
jmp 0x1000755d
mov byte [edx], 0
jmp 0x1000755f
movzx ecx, byte [esi]
mov edi, ecx
and edi, 1
inc esi
add edi, 2
shr ecx, 1
mov dword [esp + 0x18], esi
je 0x10007490
test edi, edi
je 0x10007498
mov ebp, edx
sub ebp, ecx
lea esp, [esp]
mov bl, byte [ebp]
mov byte [edx], bl
inc edx
inc ebp
sub edi, 1
jne 0x10007470
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
lea ebx, [edi + 1]
jmp 0x10007566
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ecx
mov ebx, 1
jmp 0x10007566
lea edi, [esp + 0x18]
call fcn.10007300
test ebx, ebx
jne 0x100074e6
cmp eax, 2
jne 0x100074e1
call fcn.10007300
mov edx, dword [esp + 0x1c]
mov esi, eax
test esi, esi
je 0x10007543
mov ecx, edx
sub ecx, dword [esp + 0x10]
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc edx
inc ecx
sub esi, 1
jne 0x100074d0
mov dword [esp + 0x1c], edx
jmp 0x10007543
sub eax, 3
jmp 0x100074e9
sub eax, 2
mov ecx, dword [esp + 0x18]
movzx edx, byte [ecx]
shl eax, 8
add eax, edx
inc ecx
lea edi, [esp + 0x18]
mov ebp, eax
mov dword [esp + 0x18], ecx
call fcn.10007300
mov esi, eax
cmp ebp, 0x7d00
jb 0x10007510
inc esi
cmp ebp, 0x500
jb 0x10007519
inc esi
cmp ebp, 0x80
jae 0x10007524
add esi, 2
mov edx, dword [esp + 0x1c]
test esi, esi
je 0x1000753f
mov ecx, edx
sub ecx, ebp
mov al, byte [ecx]
mov byte [edx], al
inc edx
inc ecx
sub esi, 1
jne 0x10007530
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebx, 1
jmp 0x10007566
mov cl, byte [esi]
inc esi
mov dword [esp + 0x18], esi
mov byte [edx], cl
inc edx
xor ebx, ebx
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x14], 0
je 0x10007390
pop edi
pop esi
mov eax, edx
sub eax, dword [esp + 0x24]
pop ebp
pop ebx
add esp, 0x18
ret