Function at 0xa77eec
Capabilities:
Encode data using xor

Disassembly:
jne 0xaad1ba
inc esp
movzx eax, word [ebx + 0x1a]
dec eax
mov edi, dword [ebx + 0x30]
inc ecx
mov eax, eax
dec eax
mov dword [esp + 0x40], ebp
dec eax
mov dword [esp + 0x48], esi
dec esp
mov dword [esp + 0x58], edi
dec esp
lea esi, [edi - 2]
dec esp
mov dword [ebx + 0x38], esi
inc ecx
cmp eax, 0x5e
jae 0xa77f6b
inc ebp
test eax, eax
je 0xa780e8
inc ecx
cmp eax, 0x2f
jne 0xa78106
inc bp
inc ecx
cmp eax, 0x7c
jae 0xa77f1b
inc ecx
movzx edx, word [esi]
xor ebp, ebp
dec esp
mov dword [esp + 0x50], esp
inc esp
mov esp, ebp
cmp edx, 0x2a
je 0xa77fe2
mov eax, edx
movzx ecx, dl
dec eax
shr eax, 8
dec ecx
mov edi, esi
inc esp
mov eax, ebp
dec ecx
mov eax, dword [ecx + eax*8 + 0x132960]
test byte [ecx + eax], 4
je 0xa77fd3
cmp dx, 0x3a
je 0xaad317
movzx edx, word [edi + 2]
dec eax
add edi, 2
mov eax, edx
movzx ecx, dl
dec eax
shr eax, 8
dec ecx
mov eax, dword [ecx + eax*8 + 0x132960]
test byte [ecx + eax], 8
jne 0xa77fa1
dec ebp
test eax, eax
jne 0xaad324
inc ebp
test esp, esp
jne 0xa77fe2
cmp word [edi], 0x3a
je 0xaad373
dec eax
mov esi, edi
dec ecx
sub esi, esi
dec eax
sar esi, 1
inc ebp
test esp, esp
jne 0xaad390
dec esp
mov edi, ebp
inc cx
cmp dword [esi], 0x2a
dec esp
mov esp, dword [esp + 0x50]
je 0xaad3b8
inc esp
mov eax, esi
dec ecx
mov edx, esi
xor ecx, ecx
call fcn.00a4e250
dec eax
mov esi, eax
mov ecx, dword [0x1364e3]
dec eax
call dword [0x108594]
nop dword [eax + eax]
cmp dword [eax + 0x34], 1
je 0xaad3c0
xor al, al
dec ebp
test edi, edi
inc esp
mov dword [ebx + 0x40], eax
inc bp
test eax, eax
je 0xa780cc
jmp 0xa780bd
sub eax, 0x21
cmp eax, 0x5b
ja 0xa77f71
dec eax
cwde
inc ecx
movzx eax, byte [ecx + eax + 0x39594]
inc ecx
mov ecx, dword [ecx + eax*4 + 0x3956c]
dec ecx
add ecx, ecx
jmp ecx
pop esi
sbb dword [eax], eax
sbb dl, byte [edi]
add byte [eax], al
or byte [eax], 0x82
inc ebp
inc eax
sub al, cl
inc edx
add al, ah
cmpsd dword [esi], dword es:[edi]
ja 0xaad1f6
mov word [eax + 0x42], gs
mov byte [0x1a000c66], al
adc eax, dword [eax]
add byte [eax], al
bnd jae 0xaad1a9
wait
test al, 0x42
add byte [eax + 0x5f123ac], al
pop ebx
inc edx
in eax, dx
mov ecx, dword [esi]
add byte [edx], bl
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
clc
add byte [eax], al
add al, bh
aaa
sar dh, 0x1a
test al, 0x42
add byte [eax + 0x7d], al
fstp xword [ebp - 0x74bda55c]
cli
sbb dword [eax], eax
sbb al, byte [eax]
add byte [eax], al
add byte [esi], dl
je 0xaad1f1
wait
test al, 0x42
add byte [eax], al
lodsd eax, dword [esi]
and esi, ecx
add eax, 0x73dc425b
sbb al, byte [eax]
sbb al, byte [ebx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx + 0x2144e1e4], ch
mov ah, 0x42
add byte [eax + 0x4cb11eed], al
pop ecx
inc edx
cli
sbb al, 0
sbb bh, byte [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x2144e1e4], bh
mov ah, 0x42
add byte [eax], al
out dx, al
push ds
mov cl, 0x4c
pop ecx
inc edx
pushfd
or byte [eax], al
sbb bh, byte [edx]
add byte [eax], al
add byte [esi + ebp*2], al
stosb byte es:[edi], al
push edi
aas
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax + 0x20688e39], al
dec edx
inc edx
sbb eax, 0x1a0017ca
and eax, dword [eax]
add byte [eax], al
mov dh, ah
mov dl, 0x37
sbb al, 0xb4
inc edx
add byte [eax + 0x29211bc7], al
pop ecx
inc edx
cmc
ljmp 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov esi, 0x1afec038
test al, 0x42
add byte [eax], al
sbb bl, 0xbd
movsb byte es:[edi], byte [esi]
pop edx
inc edx
invalid
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
xchg dword [ecx], esp
adc byte [edi + 0x42b44a], dh
adc bh, 0xca
js 0xaad3ae
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [edi + 0x4ab71021], al
mov ah, 0x42
add byte [eax + 0x7078cad7], al
pop edx
inc edx
add word [bx + si], ax
sbb ch, byte [eax + eax]
add byte [eax], al
or al, 0xe5
loope 0xaad391
and dword [edx + eax*2 + 0x1ef04000], esi
mov cl, 0x4c
pop ecx
inc edx
sti
sbb al, 0
sbb bl, byte [eax + eax]
add byte [eax], al
lodsb al, byte [esi]
salc
cmc
jg 0xaad2e9
mov esp, 0xbe400042
int 0xfe
sbb al, 0x5a
inc eax
mov esi, 0x5a1cfecd
inc edx
js 0xaad369
sbb eax, 0x1f1a00
add byte [eax], al
pmovmskb esi, mm5
add byte [edx], bl
pop ds
add byte [eax], al
add byte [edi], cl
xlatb
cmc
jg 0xaad301
mov esp, 0xc1000042
add cl, al
int 0xfe
sbb al, 0x5a
inc edx
jns 0xaad381
sbb eax, 0x21a00
add byte [eax], al
add dl, cl
outsb dx, byte [esi]
stosb byte es:[edi], al
push edi
aas
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], al
aas
mov gs, word [eax + 0x20]
dec edx
inc edx
push ds
retf 0x17
retf 0xaa6e
mov ah, 0x42
add byte [eax - 0x36], al
sbb esp, dword [ecx]
sub dword [ecx + 0x42], ebx
imul dl
push cs
add byte [edx], bl
sbb al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + 0x75], bh