Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x2ed0528c
sub edi, 0x9ecaf93b
mov edi, esi
sub esi, edi
popal
sub esi, 1
or edi, edi
mov edi, esi
mov ecx, 0
mov edi, ebx
dec esi
or esi, esi
mov eax, edi
or edx, esi
dec esi
mov ebx, eax
mov esi, 0xf6886f29
add esi, 0xf47e95b8
add ecx, 1
sub edx, 0xb393c0cb
dec esi
add esi, esi
cmp ecx, 0x100cb28
jne 0xa789cc
add edx, edx
add edx, 0xab8bb14b
mov esi, 0xf93ff51c
mov edi, 0x8d664bf6
mov esi, 0xa78796
add edi, eax
and ebx, eax
mov eax, ebx
mov ecx, 0xa7898a
mov edi, ebx
sub ebx, 1
mov edx, dword [esi]
add edi, ebx
inc ebx
or eax, eax
and edx, 0xff
sub edi, eax
inc eax
add ebx, 0x310777b
xor dword [ecx], edx
inc edi
mov eax, edi
inc ecx
dec edi
mov ebx, eax
sub eax, ebx
add esi, 1
add edi, ebx
or ebx, ebx
add eax, eax
cmp ecx, entry0
jl 0xa78a28
mov eax, ebx
not edi
sub edi, eax
sub eax, 0x689380ae
mov esi, 0xb6c976ce
add ecx, 1
inc ecx
mov edx, 0xa7898e
add ecx, edi
sub esi, 0xb99f5d24
and esi, esi
mov edx, dword [edx]
sub edi, 0x2745cbad
mov edi, 0x20e79df9
mov edx, dword [edx]
sub esi, edi
not esi
mov esi, ebx
push edx
not esi
add ecx, edi
mov edx, 0xa7898a
not edi
add esi, 0x90720072
mov edx, dword [edx]
mov ebx, edi
sub ecx, 0x81bb7d50
mov edx, dword [edx]
sub ecx, 0x93408b91
or edi, ebx
push 0xa78992
sub edi, 0xdbb91e93
mov esi, edi
and edi, ebx
call edx
sub ebx, esi
or edi, edi
or ecx, esi
pop edx
add esi, 1
sub edi, 1
push 0xa7899f
sub esi, 1
add ebx, esi
push eax
sub ecx, 0x449c77fe
and esi, ebx
and esi, edi
call edx
sub edi, ebx
mov ecx, ebx
push 0x40
sub esi, 0x6673a4c5
add ebx, esi
add ecx, 0x4fdc3e7c
push 0x3000
not ebx
mov edi, ecx
push 0x200005a6
not esi
dec edi
sub edi, 0xfa905157
push 0
inc ecx
and esi, esi
call eax
add esi, esi
dec ecx
add eax, 0x2000051e
or esi, ebx
mov ecx, ebx
not ecx
mov edx, 0xf47725f6
sub edi, esi
sub edi, 0xd01b7a59
mov dword [eax], edx
sub ecx, esi
add edi, ebx
add edi, 0xf1cae080
mov edx, dword [eax]
sub esi, ecx
mov edi, 0x9923e8bf
cmp edx, 0xf47725f6
je 0xa78b79
mov edx, 0
mov byte [edx], cl
mov edi, 0x30172824
add esi, 1
or edi, ebx
not edi
dec ecx
and edi, edi
or esi, esi
not esi
mov ecx, section..reltc
not edi
add esi, edi
add edi, 1
mov ebx, 0xa78795
add esi, 0x32a17fb7
not edi
add edi, 0x777c31de
mov edx, 0
sub edi, esi
sub edi, 1
add esi, edi
mov eax, 0xa78796
dec esi
add esi, 0x176b43db
mov esi, edi
lea eax, [edx + eax]
sub edi, esi
sub edi, 0x11588f6e
mov eax, dword [eax]
not edi
add esi, 0x94cdb11a
sub esi, edi
and eax, 0xff
or edi, esi
inc edi
sub edi, 0x25892172
add edx, 1
or edi, edi
and edi, edi
or esi, esi
cmp edx, 0x1f4
jne 0xa78c0d
mov edx, 0
sub esi, 1
mov edi, 0xd9e2e9e4
or esi, esi
dec esi
xor dword [ecx], eax
add esi, esi
and edi, edi
add ecx, 2
mov edi, esi
inc esi
add edi, edi
cmp ecx, ebx
jl 0xa78bc0
not esi
and edi, esi
or esi, esi
dec edi
mov edi, section..reltc
not esi
add eax, 0x9b609fc1
add esi, 1
mov edx, section..reltc
sub esi, 0xebdedc99
sub esi, eax
mov ecx, 0xa78795
mov eax, 0x61f0b4f0
sub esi, 0x559c12ad
mov ebx, 0
sub eax, 1
inc esi
inc eax
mov bl, byte [edx]
and esi, eax
not eax
not esi
mov byte [edi], bl
add eax, 0x49f87c2
add esi, esi
and esi, esi
inc edi
add esi, 0x59417248
add eax, 0x62211760
add edx, 2
and eax, eax
inc eax
inc eax
cmp edx, ecx
jle 0xa78c78
mov esi, eax
and eax, esi
or esi, esi
mov edi, 0xda99a3d6
sub edi, esi
add esi, 0x62738bf7
push 0x8dc6a0
sub esi, edi
and edi, esi
ret