Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x7a1054ad
or esi, esi
add ecx, 0x75c56b94
popal
dec ecx
and ecx, ecx
mov ecx, 0
mov edx, edi
add eax, eax
add ebx, 0x8228f7
mov esi, edx
not eax
add ebx, eax
and ebx, ebx
mov edi, esi
add ebx, 1
sub ebx, 1
inc ecx
mov ebx, eax
inc ebx
cmp ecx, 0x1004f37
jne 0xa789c3
add eax, 0x678e896e
not eax
sub ebx, 0xe028572e
sub esi, 0xe7c5e6fd
inc ecx
mov ebx, 0xa78796
inc edx
inc edi
mov ecx, 0xa7898a
add esi, 0x40521ae5
add edi, edx
mov eax, dword [ebx]
not edi
add edi, 0x70605d38
mov edi, esi
and eax, 0xff
mov edi, edx
or edx, edi
and edi, edi
xor dword [ecx], eax
add esi, edx
mov edi, esi
dec edx
inc ecx
or edi, edi
not edi
inc ebx
sub esi, edi
add edi, edx
cmp ecx, entry0
jl 0xa78a1c
dec edi
mov esi, edi
add edx, 0x6fdbf8f8
and esi, esi
sub edi, ebx
mov ebx, 0xa761015d
and esi, edx
mov ecx, 0xa7898e
dec edi
and ebx, ebx
not edi
mov ecx, dword [ecx]
and edi, edi
and ebx, esi
and esi, esi
mov ecx, dword [ecx]
sub edx, 0xf09351df
and esi, ebx
dec edx
push ecx
mov edx, edi
and edi, esi
mov ecx, 0xa7898a
not edx
or esi, edi
and ebx, esi
mov ecx, dword [ecx]
add edi, 0x5fd0d33b
and esi, ebx
or esi, edi
mov ecx, dword [ecx]
dec esi
and esi, edx
push 0xa78992
or edx, ebx
mov ebx, 0xe4640cc2
call ecx
and edi, edi
not esi
mov ecx, dword [esp]
add esp, 4
add edi, 0x98b1c53
or esi, esi
push 0xa7899f
sub ebx, 0x7f2766a7
dec esi
dec ebx
push eax
sub ebx, edi
mov edx, 0xd409cb80
call ecx
mov edi, 0x73a6ac47
mov esi, 0xadd88b03
dec ebx
push 0x40
mov edi, 0x52993c69
sub esi, edx
and edx, edi
push 0x3000
sub edx, 0xacbec604
not edi
push 0x20000f6d
sub edx, esi
not esi
or edx, edi
sub esp, 4
mov dword [esp], 0
add esi, edi
sub edi, 0xa2610406
call eax
mov edx, 0x22d3b62e
sub edx, edi
or ebx, edx
add eax, 0x20000ec7
mov edi, esi
and edx, esi
sub ebx, 0x795ccd13
mov ecx, 0x459d0ec2
and ebx, edx
or edi, edx
not ebx
mov dword [eax], ecx
inc ebx
or esi, edx
mov ecx, dword [eax]
dec edx
mov edx, 0x3152dcc0
cmp ecx, 0x459d0ec2
je 0xa78b5f
mov ebx, 0
mov dword [ebx], ecx
not edx
add edi, esi
add edi, ebx
mov edi, ebx
dec edi
not edi
or esi, esi
dec ecx
inc ecx
mov edi, section..text
dec ecx
sub ecx, 0x4a995e88
add esi, esi
mov ebx, 0xa78795
sub ecx, 1
sub esi, ecx
or esi, ecx
mov eax, 0
mov esi, 0x961c8112
inc esi
inc esi
mov edx, 0xa78796
mov ecx, 0x792bf428
and esi, esi
and ecx, esi
lea edx, [edx + eax]
mov ecx, 0x1c027517
add ecx, 0xd2f384ab
inc esi
mov edx, dword [edx]
add esi, 0xeebe0e73
and ecx, esi
and edx, 0xff
mov ecx, 0x8a88aab8
inc ecx
mov esi, 0x340978c1
add eax, 1
and ecx, ecx
inc esi
cmp eax, 0x1f4
jne 0xa78be5
mov eax, 0
not ecx
add esi, esi
sub esi, ecx
inc ecx
or esi, ecx
and esi, esi
xor dword [edi], edx
or esi, ecx
or esi, esi
add edi, 2
add esi, 1
mov ecx, 0xc0da0f0f
cmp edi, ebx
jl 0xa78b97
mov ecx, 0x264f6b41
and ecx, esi
sub ecx, 0x9e51d79c
add ecx, esi
add ecx, esi
mov ecx, section..text
dec esi
mov eax, esi
not esi
mov edi, section..text
and eax, eax
mov eax, 0x37d9294
mov edx, 0xa78795
add eax, 0x7ad78f0b
mov esi, 0x10e9b03e
mov eax, 0xcaab69ce
mov ebx, 0
dec esi
mov eax, esi
add esi, eax
mov bl, byte [edi]
sub esi, 0x8e686ab4
mov esi, 0x5bf4b0c1
and esi, esi
mov byte [ecx], bl
mov esi, 0x3fe7cb1c
sub esi, 0xa6d50bff
inc ecx
dec eax
sub esi, 1
or esi, esi
add edi, 2
mov esi, eax
add eax, 0xe36a190f
cmp edi, edx
jle 0xa78c55
add eax, eax
or esi, esi
mov eax, 0x6a16177e
mov ecx, 0x7369f18f
add ecx, 0x6fff6ba9
inc ecx
push 0x8dc6a0
or esi, esi
dec ecx
and ecx, esi
ret