Function at 0x5aa970
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, ecx
push ebx
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], ebx
cmp dword [eax], ebx
jle 0x5aac1d
push esi
mov esi, dword [ebp + 8]
push edi
nop
mov eax, dword [esi]
add eax, ebx
mov dword [ebp - 0x10], eax
mov cl, byte [eax]
mov eax, dword [esi + 4]
mov byte [ebp - 2], cl
mov al, byte [ebx + eax]
mov byte [ebp - 4], al
mov eax, dword [esi + 8]
mov al, byte [ebx + eax]
mov byte [ebp - 3], al
mov eax, dword [esi + 0xc]
mov al, byte [ebx + eax]
xor bh, bh
mov byte [ebp - 1], al
mov ah, cl
xor edi, edi
nop dword [eax]
test ah, 1
je 0x5aa9ed
mov al, 2
test edi, edi
jle 0x5aa9eb
mov esi, edi
nop dword [eax]
mov bl, al
add bl, bl
mov cl, bl
xor cl, 0x1b
test al, al
movzx edx, cl
movzx ecx, bl
cmovns edx, ecx
mov al, dl
sub esi, 1
jne 0x5aa9d0
xor bh, al
inc edi
shr ah, 1
cmp edi, 8
jl 0x5aa9c0
mov dh, byte [ebp - 4]
mov byte [ebp - 5], bh
xor bh, bh
xor edi, edi
nop
test dh, 1
je 0x5aaa2c
mov bl, 3
test edi, edi
jle 0x5aaa2a
mov esi, edi
nop dword [eax]
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aaa10
xor bh, bl
inc edi
shr dh, 1
cmp edi, 8
jl 0x5aaa00
mov al, byte [ebp - 3]
xor al, byte [ebp - 1]
mov dh, byte [ebp - 4]
xor al, bh
xor al, byte [ebp - 5]
xor bh, bh
mov byte [ebp - 6], al
xor edi, edi
nop dword [eax]
test dh, 1
je 0x5aaa7c
mov bl, 2
test edi, edi
jle 0x5aaa7a
mov esi, edi
nop dword [eax]
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aaa60
xor bh, bl
inc edi
shr dh, 1
cmp edi, 8
jl 0x5aaa50
mov dh, byte [ebp - 3]
mov byte [ebp - 5], bh
xor bh, bh
xor edi, edi
nop
test dh, 1
je 0x5aaabc
mov bl, 3
test edi, edi
jle 0x5aaaba
mov esi, edi
nop dword [eax]
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aaaa0
xor bh, bl
inc edi
shr dh, 1
cmp edi, 8
jl 0x5aaa90
mov al, byte [ebp - 1]
xor al, byte [ebp - 2]
mov dh, byte [ebp - 3]
xor al, bh
xor al, byte [ebp - 5]
xor bh, bh
mov byte [ebp - 7], al
xor edi, edi
nop dword [eax]
test dh, 1
je 0x5aab0c
mov bl, 2
test edi, edi
jle 0x5aab0a
mov esi, edi
nop dword [eax]
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aaaf0
xor bh, bl
inc edi
shr dh, 1
cmp edi, 8
jl 0x5aaae0
mov dh, byte [ebp - 1]
mov byte [ebp - 5], bh
xor bh, bh
xor edi, edi
nop
test dh, 1
je 0x5aab4c
mov bl, 3
test edi, edi
jle 0x5aab4a
mov esi, edi
nop dword [eax]
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aab30
xor bh, bl
inc edi
shr dh, 1
cmp edi, 8
jl 0x5aab20
mov al, byte [ebp - 4]
mov cl, byte [ebp - 2]
xor al, cl
xor al, bh
xor bh, bh
xor al, byte [ebp - 5]
xor edi, edi
mov byte [ebp - 5], al
test cl, 1
je 0x5aab94
mov bl, 3
test edi, edi
jle 0x5aab92
mov esi, edi
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aab75
mov cl, byte [ebp - 2]
xor bh, bl
shr cl, 1
inc edi
mov byte [ebp - 2], cl
cmp edi, 8
jl 0x5aab68
mov al, byte [ebp - 1]
xor dh, dh
xor edi, edi
test al, 1
je 0x5aabd1
mov bl, 2
test edi, edi
jle 0x5aabcf
mov esi, edi
mov dl, bl
add dl, dl
mov al, dl
xor al, 0x1b
test bl, bl
movzx ecx, al
movzx eax, dl
cmovns ecx, eax
mov bl, cl
sub esi, 1
jne 0x5aabb2
mov al, byte [ebp - 1]
xor dh, bl
shr al, 1
inc edi
mov byte [ebp - 1], al
cmp edi, 8
jl 0x5aaba6
mov dl, byte [ebp - 3]
xor dl, byte [ebp - 4]
mov ecx, dword [ebp - 0x10]
xor dl, dh
mov esi, dword [ebp + 8]
xor dl, bh
mov al, byte [ebp - 6]
mov ebx, dword [ebp - 0xc]
mov byte [ecx], al
mov eax, dword [esi + 4]
mov cl, byte [ebp - 7]
mov byte [ebx + eax], cl
mov eax, dword [esi + 8]
mov cl, byte [ebp - 5]
mov byte [ebx + eax], cl
mov eax, dword [esi + 0xc]
mov byte [ebx + eax], dl
inc ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], ebx
cmp ebx, dword [eax]
jl 0x5aa990
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4