Function at 0x47c565
Capabilities:
Decompress data using aplib

Disassembly:
pushal
call 0x47c006
pop ebp
sub ebp, 0x444a0a
mov ebx, 0x444a04
add ebx, ebp
sub ebx, dword [ebp + 0x4450b1]
cmp dword [ebp + 0x4450ac], 0
mov dword [ebp + 0x444ebb], ebx
jne 0x47c544
lea eax, [ebp + 0x4450d1]
push eax
call dword [ebp + 0x445194]
mov dword [ebp + 0x4450cd], eax
mov edi, eax
lea ebx, [ebp + 0x4450de]
push ebx
push eax
call dword [ebp + 0x445190]
mov dword [ebp + 0x4450b9], eax
lea ebx, [ebp + 0x4450eb]
push ebx
push edi
call dword [ebp + 0x445190]
mov dword [ebp + 0x4450bd], eax
mov eax, dword [ebp + 0x444ebb]
mov dword [ebp + 0x4450ac], eax
push 4
push 0x1000
push 0x49a
push 0
call dword [ebp + 0x4450b9]
mov dword [ebp + 0x4450b5], eax
lea ebx, [ebp + 0x444acf]
push eax
push ebx
call 0x47c565
mov ecx, eax
lea edi, [ebp + 0x444acf]
mov esi, dword [ebp + 0x4450b5]
sar ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x4450b5]
push 0x8000
push 0
push eax
call dword [ebp + 0x4450bd]
lea ecx, [esi]
test dword [edi], esi
dec esp
inc esp
pop es
push eax
ret
mov esi, 0xa045ad9b
test eax, 0x345a7992
into
insd dword es:[edi], dx
mov eax, 0x4087f163
add dword [eax + 0x75c54f0e], ebx
cmpsb byte [esi], byte es:[edi]
mov byte [0x2c53159f], al
and byte [edx + 0x1c], 0x58
push ebp
mov ebp, esp
pushal
push ebp
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
cld
mov dl, pe_nt_image_headers32
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add dl, dl
jne 0x47c582
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x47c573
add dl, dl
jne 0x47c58d
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x47c5d9
xor eax, eax
add dl, dl
jne 0x47c59a
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x47c676
add dl, dl
jne 0x47c5a9
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x47c5b4
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x47c5bf
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x47c5ca
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x47c5d4
push edi
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
jmp 0x47c579
mov eax, 1
add dl, dl
jne 0x47c5e7
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x47c5f2
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x47c5de
sub eax, 2
jne 0x47c621
mov ecx, 1
add dl, dl
jne 0x47c607
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x47c612
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x47c5fe
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x47c579
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x47c638
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x47c643
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x47c62f
cmp eax, 0x7d00
jae 0x47c666
cmp eax, 0x500
jb 0x47c661
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x47c579
cmp eax, 0x7f
ja 0x47c669
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x47c579
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x47c692
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x47c579
pop ebp
sub edi, dword [ebp + 0xc]
mov dword [ebp - 4], edi
popal
pop ebp
ret 8