Function at 0x10060540
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x20
test ecx, ecx
push ebx
push ebp
push esi
push edi
je 0x10060899
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x10060899
cmp byte [ebp], 1
je 0x10060899
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x1006088f
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x1006088f
cdq
and edx, 0x7f
add eax, edx
mov ebx, eax
xor eax, eax
mov al, byte [ecx]
sar ebx, 7
dec eax
mov dword [esp + 0x34], ebx
je 0x1006084f
dec eax
je 0x10060793
dec eax
jne 0x10060899
mov eax, dword [ecx + 1]
mov edx, dword [ecx + 5]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 9]
mov ecx, dword [ecx + 0xd]
mov dword [esp + 0x14], edx
test ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jle 0x10060786
mov dword [esp + 0x38], ebx
xor edi, edi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x2c], ecx
lea eax, [ebp + 0x54]
mov dword [esp + 0x30], edx
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.10076400
mov eax, edi
mov ecx, dword [esp + 0x54]
cdq
and edx, 7
mov ebx, edi
add eax, edx
mov dl, byte [esp + 0x30]
sar eax, 3
and ebx, 7
and dl, 0x80
lea esi, [eax + ecx]
mov cl, bl
shr dl, cl
mov al, byte [esi]
mov cl, byte [esp + 0x21]
shr cl, 7
add esp, 0x10
xor al, dl
mov dl, byte [esp + 0x10]
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x11]
mov byte [esp + 0x10], cl
mov cl, byte [esp + 0x12]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x12]
mov byte [esp + 0x11], cl
mov cl, byte [esp + 0x13]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x13]
mov byte [esp + 0x12], cl
mov cl, byte [esp + 0x14]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x14]
mov byte [esp + 0x13], cl
mov cl, byte [esp + 0x15]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x15]
mov byte [esp + 0x14], cl
mov cl, byte [esp + 0x16]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x16]
mov byte [esp + 0x15], cl
mov cl, byte [esp + 0x17]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x17]
mov byte [esp + 0x16], cl
mov cl, byte [esp + 0x18]
shr cl, 7
shl dl, 1
mov byte [esi], al
or cl, dl
mov dl, byte [esp + 0x18]
mov byte [esp + 0x17], cl
mov cl, byte [esp + 0x19]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x19]
mov byte [esp + 0x18], cl
mov cl, byte [esp + 0x1a]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x1a]
mov byte [esp + 0x19], cl
mov cl, byte [esp + 0x1b]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x1b]
mov byte [esp + 0x1a], cl
mov cl, byte [esp + 0x1c]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x1c]
mov byte [esp + 0x1b], cl
mov cl, byte [esp + 0x1d]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x1d]
mov byte [esp + 0x1c], cl
mov cl, byte [esp + 0x1e]
shr cl, 7
shl dl, 1
or cl, dl
mov dl, byte [esp + 0x1e]
mov byte [esp + 0x1d], cl
mov cl, byte [esp + 0x1f]
shr cl, 7
shl dl, 1
or cl, dl
mov byte [esp + 0x1e], cl
mov cl, 7
sub cl, bl
shr al, cl
mov cl, byte [esp + 0x1f]
shl cl, 1
and al, 1
or al, cl
inc edi
cmp edi, 0x80
mov byte [esp + 0x1f], al
jl 0x100605d3
mov eax, dword [esp + 0x38]
dec eax
mov dword [esp + 0x38], eax
jne 0x100605d1
mov ebx, dword [esp + 0x34]
pop edi
mov eax, ebx
pop esi
pop ebp
shl eax, 7
pop ebx
add esp, 0x20
ret
mov edx, dword [ecx + 1]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
xor edx, eax
mov eax, dword [ecx + 5]
mov edi, dword [esi + 8]
xor eax, ebx
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 9]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0xd]
mov ecx, dword [esi + 0xc]
xor eax, ecx
mov ecx, dword [ebp + 0x4c]
xor edx, edi
mov edi, dword [esp + 0x44]
lea ebx, [ebp + 0x54]
mov dword [esp + 0x28], edx
push ecx
push ebx
lea edx, [esp + 0x28]
push edi
push edx
mov dword [esp + 0x3c], eax
call fcn.10076400
mov eax, dword [esp + 0x44]
add esp, 0x10
add esi, 0x10
dec eax
test eax, eax
jle 0x10060782
mov dword [esp + 0x44], eax
mov ecx, dword [esi]
mov edx, dword [edi]
mov eax, dword [edi + 4]
xor ecx, edx
mov edx, dword [esi + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 8]
xor edx, eax
mov eax, dword [esi + 8]
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 0x4c]
xor eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0xc]
add edi, 0x10
xor ecx, eax
push edx
push ebx
lea eax, [esp + 0x28]
push edi
push eax
mov dword [esp + 0x3c], ecx
call fcn.10076400
mov eax, dword [esp + 0x54]
add esp, 0x10
add esi, 0x10
dec eax
mov dword [esp + 0x44], eax
jne 0x100607ec
mov ebx, dword [esp + 0x34]
pop edi
mov eax, ebx
pop esi
pop ebp
pop ebx
shl eax, 7
add esp, 0x20
ret
test ebx, ebx
jle 0x10060786
mov edi, dword [esp + 0x44]
mov dword [esp + 0x34], ebx
mov ecx, dword [ebp + 0x4c]
lea eax, [ebp + 0x54]
push ecx
push eax
push edi
push esi
call fcn.10076400
mov eax, dword [esp + 0x44]
add esp, 0x10
add esi, 0x10
add edi, 0x10
dec eax
mov dword [esp + 0x34], eax
jne 0x1006085f
pop edi
mov eax, ebx
pop esi
pop ebp
shl eax, 7
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x20
ret