Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xf5c49071
add edi, 1
mov ebx, edi
mov ebx, edi
popal
not edi
not ebx
mov esi, 0
mov edx, eax
mov ecx, ebx
add ebx, 0x1fb3accf
add ecx, ecx
mov edi, edx
mov ebx, ecx
inc ecx
mov eax, edi
mov ebx, ecx
sub ecx, ebx
inc esi
not ecx
sub ecx, 0x4cd60532
cmp esi, 0x10089e9
jne 0xa789c6
or ecx, ecx
sub ecx, ebx
mov ecx, 0x8dee221e
or edi, edi
sub edi, ebx
mov eax, 0xa78796
add ebx, 0x6558ba9b
and edi, esi
mov ebx, 0x10cb6e24
mov edx, 0xa7898a
and edi, edi
inc ebx
sub edi, esi
mov ecx, dword [eax]
add ebx, 0x24a3a9f7
add ebx, 0x1bd62cf4
and ecx, 0xff
sub esi, 0x2398ce7e
add esi, 0x8ba93281
xor dword [edx], ecx
add ebx, esi
and esi, ebx
add esi, edi
inc edx
sub ebx, edi
and esi, ebx
add eax, 1
dec edi
sub edi, 0x7f277c27
add esi, ebx
cmp edx, entry0
jl 0xa78a1b
mov esi, edi
mov esi, 0xa75a23e9
sub ebx, edi
inc ebx
add esi, 0x922bc63
mov ebx, edx
sub edx, 1
sub edi, 0x5cce7a99
mov ecx, 0xa7898e
mov edx, 0x61b125f1
mov ebx, edi
inc edx
mov ecx, dword [ecx]
not ebx
mov edi, 0xf45069e9
not esi
mov ecx, dword [ecx]
inc edi
mov esi, ebx
push ecx
not edx
sub edi, edx
mov ecx, 0xa7898a
add esi, 0x31dd34d2
sub ebx, 0x35c32582
mov ebx, edx
mov ecx, dword [ecx]
add esi, 0xad145f93
sub esi, ebx
inc edx
mov ecx, dword [ecx]
and edi, edi
add edi, edi
sub edx, 0x9c6c8fbf
push 0xa78992
dec edi
add ebx, esi
sub ebx, 0x6811d423
call ecx
not esi
or edx, edi
or ebx, edx
pop ecx
add edx, 1
sub edi, 0x51c23835
push 0xa7899f
inc ebx
sub edi, edx
push eax
sub ebx, esi
not esi
inc esi
call ecx
not edx
dec ebx
add esi, ebx
push 0x40
mov edi, esi
sub ebx, 0xbc34fc81
push 0x3000
mov edi, ebx
not ebx
push 0x200008e9
dec edx
mov ebx, esi
push 0
mov esi, ebx
add edx, ebx
call eax
sub esi, 0x3e110540
add ebx, edi
mov edx, 0x2273d213
add eax, 0x20000852
inc esi
sub esi, ebx
mov ecx, 0xe3498be6
inc esi
sub edi, esi
mov ebx, 0x11493493
mov dword [eax], ecx
or esi, edx
add edi, 0xf92d23ae
mov ecx, dword [eax]
inc esi
inc edi
cmp ecx, 0xe3498be6
je 0xa78b6e
mov ebx, 0
mov ecx, dword [ebx]
and esi, esi
sub ebx, esi
not edi
and edx, edi
sub ebx, 1
sub edi, 0x977e2c3a
mov edx, section..text
sub edi, 0x38f1cc6f
inc edi
not edi
mov eax, 0xa78795
and edi, ebx
add ebx, edi
mov ebx, edi
mov ecx, 0
inc ebx
sub ebx, 1
mov esi, 0xa78796
dec ebx
mov edi, ebx
sub ebx, edi
lea esi, [ecx + esi]
add edi, 0x6ac307cf
add edi, ebx
mov esi, dword [esi]
add edi, 0xe2451379
sub ebx, 0x5ead977a
and esi, 0xff
inc edi
sub ebx, edi
inc ecx
sub ebx, edi
or ebx, ebx
cmp ecx, 0x1f4
jne 0xa78be5
mov ecx, 0
sub ebx, 0x85f60dc7
not ebx
sub edi, 1
not edi
sub ebx, 0xb6b0b83
xor dword [edx], esi
inc ebx
not edi
add edx, 2
or edi, ebx
sub edi, ebx
cmp edx, eax
jl 0xa78ba7
sub edi, ebx
add edi, edi
sub edi, ebx
not edi
mov ebx, section..text
mov edx, 0x73fcde89
add ecx, 0xfa76be78
mov ecx, edx
mov esi, section..text
add edx, edx
add ecx, ecx
mov edi, 0xa78795
dec ecx
add edx, edx
sub ecx, 1
mov eax, 0
add ecx, edx
or ecx, edx
mov ecx, edx
mov al, byte [esi]
dec edx
inc edx
and ecx, ecx
mov byte [ebx], al
sub edx, 1
mov edx, ecx
or ecx, ecx
inc ebx
or ecx, ecx
sub edx, 0xc6e9f0f0
dec edx
add esi, 2
or ecx, ecx
inc edx
add ecx, 0xdb87a644
cmp esi, edi
jle 0xa78c4e
mov edx, ecx
or ecx, ecx
not edx
mov ebx, 0x5bab3691
add ebx, ebx
sub esp, 4
mov dword [esp], 0x8dc6a0
add ebx, ebx
or edi, edi
ret