Function at 0x4ad0f0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffec
mov dword [esp + 4], ecx
mov dword [esp], edx
lea ebx, [esp + 0x10]
lea esi, [esp + 8]
lea ecx, [esp + 0xc]
mov edx, dword [esp]
mov dword [esi], 0x9e3779b9
mov edi, dword [esi]
mov dword [ecx], edi
mov edi, dword [esp + 4]
mov dword [ebx], edi
cmp edx, 0xc
jb 0x4ad21e
movzx edi, byte [eax]
movzx ebp, byte [eax + 1]
shl ebp, 8
add edi, ebp
movzx ebp, byte [eax + 2]
shl ebp, 0x10
add edi, ebp
movzx ebp, byte [eax + 3]
shl ebp, 0x18
add edi, ebp
add dword [esi], edi
movzx edi, byte [eax + 4]
movzx ebp, byte [eax + 5]
shl ebp, 8
add edi, ebp
movzx ebp, byte [eax + 6]
shl ebp, 0x10
add edi, ebp
movzx ebp, byte [eax + 7]
shl ebp, 0x18
add edi, ebp
add dword [ecx], edi
movzx edi, byte [eax + 8]
movzx ebp, byte [eax + 9]
shl ebp, 8
add edi, ebp
movzx ebp, byte [eax + 0xa]
shl ebp, 0x10
add edi, ebp
movzx ebp, byte [eax + 0xb]
shl ebp, 0x18
add edi, ebp
add dword [ebx], edi
mov edi, dword [ecx]
sub dword [esi], edi
mov edi, dword [ebx]
sub dword [esi], edi
mov edi, dword [ebx]
shr edi, 0xd
xor dword [esi], edi
mov edi, dword [ebx]
sub dword [ecx], edi
mov edi, dword [esi]
sub dword [ecx], edi
mov edi, dword [esi]
shl edi, 8
xor dword [ecx], edi
mov edi, dword [esi]
sub dword [ebx], edi
mov edi, dword [ecx]
sub dword [ebx], edi
mov edi, dword [ecx]
shr edi, 0xd
xor dword [ebx], edi
mov edi, dword [ecx]
sub dword [esi], edi
mov edi, dword [ebx]
sub dword [esi], edi
mov edi, dword [ebx]
shr edi, 0xc
xor dword [esi], edi
mov edi, dword [ebx]
sub dword [ecx], edi
mov edi, dword [esi]
sub dword [ecx], edi
mov edi, dword [esi]
shl edi, 0x10
xor dword [ecx], edi
mov edi, dword [esi]
sub dword [ebx], edi
mov edi, dword [ecx]
sub dword [ebx], edi
mov edi, dword [ecx]
shr edi, 5
xor dword [ebx], edi
mov edi, dword [ecx]
sub dword [esi], edi
mov edi, dword [ebx]
sub dword [esi], edi
mov edi, dword [ebx]
shr edi, 3
xor dword [esi], edi
mov edi, dword [ebx]
sub dword [ecx], edi
mov edi, dword [esi]
sub dword [ecx], edi
mov edi, dword [esi]
shl edi, 0xa
xor dword [ecx], edi
mov edi, dword [esi]
sub dword [ebx], edi
mov edi, dword [ecx]
sub dword [ebx], edi
mov edi, dword [ecx]
shr edi, 0xf
xor dword [ebx], edi
add eax, 0xc
sub edx, 0xc
cmp edx, 0xc
jae 0x4ad126
mov edi, dword [esp]
add dword [ebx], edi
cmp edx, 0xb
jb 0x4ad231
movzx edi, byte [eax + 0xa]
shl edi, 0x18
add dword [ebx], edi
cmp edx, 0xa
jb 0x4ad23f
movzx edi, byte [eax + 9]
shl edi, 0x10
add dword [ebx], edi
cmp edx, 9
jb 0x4ad24d
movzx edi, byte [eax + 8]
shl edi, 8
add dword [ebx], edi
cmp edx, 8
jb 0x4ad25b
movzx edi, byte [eax + 7]
shl edi, 0x18
add dword [ecx], edi
cmp edx, 7
jb 0x4ad269
movzx edi, byte [eax + 6]
shl edi, 0x10
add dword [ecx], edi
cmp edx, 6
jb 0x4ad277
movzx edi, byte [eax + 5]
shl edi, 8
add dword [ecx], edi
cmp edx, 5
jb 0x4ad282
movzx edi, byte [eax + 4]
add dword [ecx], edi
cmp edx, 4
jb 0x4ad290
movzx edi, byte [eax + 3]
shl edi, 0x18
add dword [esi], edi
cmp edx, 3
jb 0x4ad29e
movzx edi, byte [eax + 2]
shl edi, 0x10
add dword [esi], edi
cmp edx, 2
jb 0x4ad2ac
movzx edi, byte [eax + 1]
shl edi, 8
add dword [esi], edi
cmp edx, 1
jb 0x4ad2b6
movzx eax, byte [eax]
add dword [esi], eax
mov eax, dword [ecx]
sub dword [esi], eax
mov eax, dword [ebx]
sub dword [esi], eax
mov eax, dword [ebx]
shr eax, 0xd
xor dword [esi], eax
mov eax, dword [ebx]
sub dword [ecx], eax
mov eax, dword [esi]
sub dword [ecx], eax
mov eax, dword [esi]
shl eax, 8
xor dword [ecx], eax
mov eax, dword [esi]
sub dword [ebx], eax
mov eax, dword [ecx]
sub dword [ebx], eax
mov eax, dword [ecx]
shr eax, 0xd
xor dword [ebx], eax
mov eax, dword [ecx]
sub dword [esi], eax
mov eax, dword [ebx]
sub dword [esi], eax
mov eax, dword [ebx]
shr eax, 0xc
xor dword [esi], eax
mov eax, dword [ebx]
sub dword [ecx], eax
mov eax, dword [esi]
sub dword [ecx], eax
mov eax, dword [esi]
shl eax, 0x10
xor dword [ecx], eax
mov eax, dword [esi]
sub dword [ebx], eax
mov eax, dword [ecx]
sub dword [ebx], eax
mov eax, dword [ecx]
shr eax, 5
xor dword [ebx], eax
mov eax, dword [ecx]
sub dword [esi], eax
mov eax, dword [ebx]
sub dword [esi], eax
mov eax, dword [ebx]
shr eax, 3
xor dword [esi], eax
mov eax, dword [ebx]
sub dword [ecx], eax
mov eax, dword [esi]
sub dword [ecx], eax
mov eax, dword [esi]
shl eax, 0xa
xor dword [ecx], eax
mov eax, dword [esi]
sub dword [ebx], eax
mov eax, dword [ecx]
sub dword [ebx], eax
mov eax, dword [ecx]
shr eax, 0xf
xor dword [ebx], eax
mov eax, dword [ebx]
add esp, 0x14
pop ebp
pop edi
pop esi
pop ebx
ret