Function at 0x4aa0d0
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebp
push ebx
push esi
mov ebp, dword [0x573d48]
xor ecx, ecx
mov eax, dword [0x573d6c]
cmp eax, 0xc
jg 0x4aa301
mov edx, dword [0x573d70]
test edx, edx
je 0x4aa2fd
mov eax, dword [0x573d68]
test eax, eax
jne 0x4aa10f
mov eax, dword [0x573d4c]
test eax, eax
jne 0x4aa2fd
mov edi, dword [0x562908]
mov ebx, dword [0x573d64]
mov esi, dword [0x573d58]
imul ebx, dword [0x562908]
mov eax, dword [0x573d54]
add ebx, dword [0x573d60]
imul edi, dword [0x573d5c]
lea ecx, [esi + edi]
test eax, eax
je 0x4aa20b
cmp ecx, 0x1fffff
jle 0x4aa35e
lea eax, [esi + edi - 0x1fffff]
cmp eax, 0xc00000
jl 0x4aa354
mov eax, dword [0x562918]
nop
lea esi, [esi]
mov esi, eax
shl esi, 6
mov edi, eax
shl edi, 5
xor esi, edi
and esi, 0x40
sar eax, 1
or esi, eax
mov edi, esi
shl edi, 6
mov eax, esi
shl eax, 5
xor edi, eax
and edi, 0x40
sar esi, 1
or edi, esi
mov eax, edi
shl eax, 6
mov esi, edi
shl esi, 5
xor eax, esi
and eax, 0x40
sar edi, 1
or eax, edi
mov esi, eax
shl esi, 6
mov edi, eax
shl edi, 5
xor esi, edi
and esi, 0x40
sar eax, 1
or esi, eax
mov eax, esi
shl eax, 6
mov edi, esi
shl edi, 5
xor eax, edi
and eax, 0x40
sar esi, 1
or eax, esi
add ecx, 0xff600000
cmp ecx, 0xdfffff
jge 0x4aa170
lea esi, [esi]
mov edi, eax
shl edi, 6
mov esi, eax
shl esi, 5
xor edi, esi
and edi, 0x40
sar eax, 1
or eax, edi
add ecx, 0xffe00000
cmp ecx, 0x1fffff
jg 0x4aa1e0
mov dword [0x562918], eax
jmp 0x4aa2d9
cmp ecx, 0x1fffff
jle 0x4aa372
lea eax, [esi + edi - 0x1fffff]
cmp eax, 0xc00000
jl 0x4aa368
mov eax, dword [0x562918]
mov esi, esi
mov esi, eax
shl esi, 0xe
mov edi, eax
shl edi, 0xd
xor esi, edi
and esi, 0x4000
sar eax, 1
or esi, eax
mov eax, esi
shl eax, 0xe
mov edi, esi
shl edi, 0xd
xor eax, edi
and eax, 0x4000
sar esi, 1
or eax, esi
mov edi, eax
shl edi, 0xe
mov esi, eax
shl esi, 0xd
xor edi, esi
and edi, 0x4000
sar eax, 1
or edi, eax
mov esi, edi
shl esi, 0xe
mov eax, edi
shl eax, 0xd
xor esi, eax
and esi, 0x4000
sar edi, 1
or esi, edi
mov eax, esi
shl eax, 0xe
mov edi, esi
shl edi, 0xd
xor eax, edi
and eax, 0x4000
sar esi, 1
or eax, esi
add ecx, 0xff600000
cmp ecx, 0xdfffff
jge 0x4aa230
lea esi, [esi]
mov esi, eax
shl esi, 0xe
mov edi, eax
shl edi, 0xd
xor esi, edi
and esi, 0x4000
sar eax, 1
or eax, esi
add ecx, 0xffe00000
cmp ecx, 0x1fffff
jg 0x4aa2b0
mov dword [0x562918], eax
and ebx, 0x1fffff
and ecx, 0x1fffff
and eax, 1
mov dword [0x573d60], ebx
mov dword [0x573d58], ecx
lea ecx, [eax + eax - 1]
imul ecx, ebp
jmp 0x4aa307
xor ecx, ecx
jmp 0x4aa307
mov edx, dword [0x573d70]
mov eax, dword [0x573e04]
test edx, edx
mov byte [eax + 0x6f9cbd], cl
je 0x4aa34c
mov edx, dword [0x573d68]
test edx, edx
je 0x4aa331
mov eax, dword [0x562908]
sub edx, eax
test edx, edx
mov dword [0x573d68], edx
jle 0x4aa37c
mov edx, dword [0x573d44]
test edx, edx
je 0x4aa34c
mov eax, dword [0x562908]
sub edx, eax
test edx, edx
jle 0x4aa3a5
mov dword [0x573d44], edx
add esp, 4
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [0x562918]
jmp 0x4aa1e0
mov eax, dword [0x562918]
jmp 0x4aa2d9
mov eax, dword [0x562918]
jmp 0x4aa2b0
mov eax, dword [0x562918]
jmp 0x4aa2d9
mov eax, dword [0x573d4c]
test eax, eax
je 0x4aa331
mov edx, dword [0x573bdc]
mov al, byte [edx + 0x84]
and al, 0xfd
mov byte [edx + 0x84], al
mov dword [0x573d70], 0
jmp 0x4aa331
mov eax, dword [0x573d40]
test eax, eax
je 0x4aa3c0
mov eax, dword [0x573d48]
cmp eax, 0xf
jge 0x4aa3cf
inc eax
mov dword [0x573d48], eax
jmp 0x4aa3cf
mov eax, dword [0x573d48]
test eax, eax
je 0x4aa3cf
dec eax
mov dword [0x573d48], eax
mov eax, dword [0x573d3c]
add edx, eax
mov dword [0x573d44], edx
add esp, 4
pop ebx
pop ebp
pop esi
pop edi
ret