Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x36967834
and edx, edi
not edi
sub edi, edx
popal
not edx
mov edi, edx
mov ecx, 0
mov ebx, esi
add edi, 1
mov edi, 0x87d80106
mov eax, ebx
or edx, edi
add edx, 0x93423e81
sub edx, 0x8b99181c
mov esi, eax
mov edi, 0x99fbe76a
or edi, edi
inc ecx
sub edx, 0x5ba264c7
sub edx, 0xe5503597
add edi, edi
cmp ecx, 0x10081f2
jne 0xa789c2
or edx, edi
and edx, edx
or edi, edx
add edx, 0x9e4065c0
add edi, 0xdd0f3b73
mov eax, 0xa78796
add edi, ecx
dec ebx
sub ecx, 0x86f47432
mov edx, 0xa7898a
mov ebx, ecx
mov ecx, edi
mov esi, dword [eax]
mov edi, ebx
add ecx, 1
mov ebx, ecx
and esi, 0xff
not ecx
not ecx
add ecx, 0x1e16f56b
xor dword [edx], esi
add edi, 0x5f13a7ea
mov edi, 0x1da3456c
add ecx, edi
add edx, 1
sub edi, 0xf77650f9
sub ebx, edi
add eax, 1
and ebx, edi
or ecx, ecx
cmp edx, entry0
jl 0xa78a2c
mov ecx, ebx
or edi, ecx
inc edi
add edi, edi
add ebx, edi
and edx, esi
not ebx
inc edx
mov ecx, 0xa7898e
sub esi, 0x3cd6cf5e
dec esi
mov edx, ebx
mov ecx, dword [ecx]
sub esi, ebx
inc esi
sub esi, 0xd202bd15
mov ecx, dword [ecx]
not esi
mov ebx, 0xdf3b6ce6
or ebx, ebx
push ecx
dec edx
sub ebx, 0x553baf23
mov ecx, 0xa7898a
mov edi, edx
sub esi, edi
mov ecx, dword [ecx]
or esi, edx
add edi, 0xcc5bd011
mov ecx, dword [ecx]
not edi
sub ebx, 0x6ba95cbf
push 0xa78992
mov edx, edi
add edx, edx
add edx, 0xa5240d24
call ecx
or edx, ebx
sub esi, 0x55c7234b
mov esi, edi
mov ecx, dword [esp]
add esp, 4
add edi, esi
not esi
push 0xa7899f
or ebx, esi
inc edx
sub esp, 4
mov dword [esp], eax
mov edx, 0x99303874
not esi
add edx, 1
call ecx
sub edi, edx
inc esi
push 0x40
add esi, 1
and ebx, edx
add edi, 0xf31cb260
push 0x3000
add edx, 0xf429edf5
dec edi
not edx
push 0x200007cf
add esi, 0xe9491863
and edx, ebx
add ebx, 0xdebf31d4
push 0
not edx
add esi, edi
call eax
not edx
mov esi, edx
add eax, 0x2000075f
add ebx, ebx
sub edi, 1
add edx, edi
mov ecx, 0x6de1a1c9
mov edi, edx
dec esi
inc ebx
mov dword [eax], ecx
inc edx
sub ebx, 0x771c8c99
mov ecx, dword [eax]
not esi
inc edi
cmp ecx, 0x6de1a1c9
je 0xa78b90
mov ebx, 0
mov dword [ebx], ecx
not esi
sub esi, 1
not ebx
and edi, ebx
sub edi, 0xc3118739
mov edi, 0x8fc41bc
add edx, edi
sub edx, 1
mov eax, section.UPX1
and edx, edi
not edi
mov esi, 0xa78795
sub edi, edx
add edx, 0x8dee118d
or edi, edx
mov ecx, 0
add edx, edi
mov edi, 0xa095d1d1
mov ebx, 0xa78796
or edi, edx
add edi, edi
lea ebx, [ecx + ebx]
sub edx, 0x607245d6
sub edi, edx
mov ebx, dword [ebx]
add edx, 0xea719326
sub edx, 0x765cda38
and ebx, 0xff
and edx, edi
and edx, edx
and edx, edx
inc ecx
inc edi
add edi, edx
and edx, edi
cmp ecx, 0x1f4
jne 0xa78c14
mov ecx, 0
add edi, edi
dec edx
and edi, edx
dec edx
sub edx, 0x88c7e360
xor dword [eax], ebx
add edi, 0xe002bf27
inc edx
add eax, 2
and edi, edi
sub edx, edi
cmp eax, esi
jl 0xa78bd3
or edx, edx
dec edi
mov edi, edx
add edi, 1
sub edi, edx
mov edx, section.UPX1
add ebx, 0x1e03209f
mov edi, ebx
not ebx
mov ecx, section.UPX1
sub edi, ebx
mov edi, ebx
mov esi, 0xa78795
add ebx, 1
and ebx, ebx
mov eax, 0
dec ebx
and ebx, edi
mov al, byte [ecx]
mov ebx, 0xd8ef7699
mov ebx, 0xa4196077
mov byte [edx], al
or ebx, ebx
add ebx, 0xbdec3b7c
sub edi, 0x99b8e5fe
add edx, 1
sub edi, ebx
mov edi, ebx
sub ebx, 0xd56fbd3c
add ecx, 2
inc edi
sub edi, ebx
cmp ecx, esi
jle 0xa78c75
and ebx, ebx
add ebx, ebx
or edx, edx
not edx
and edx, edi
push 0x8dc6a0
mov edi, edx
dec edi
ret