Function at 0x10060e20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x38]
test edi, edi
je 0x10061082
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x10061082
cmp byte [ecx], 0
je 0x10061082
mov esi, dword [esp + 0x40]
test esi, esi
je 0x10061078
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x10061078
mov edx, eax
and edx, 0x8000000f
jns 0x10060e6f
dec edx
or edx, 0xfffffff0
inc edx
je 0x10060e7e
pop edi
pop esi
pop ebp
mov eax, 0xfffffff8
pop ebx
add esp, 0x24
ret
cdq
and edx, 0xf
add eax, edx
xor edx, edx
mov dl, byte [edi]
sar eax, 4
dec edx
mov dword [esp + 0x40], eax
je 0x10060fcd
dec edx
jne 0x10061082
inc edi
dec eax
mov edx, edi
test eax, eax
mov ebx, dword [edx]
mov edi, dword [edx + 4]
mov ebp, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x1c], edx
jle 0x10060f45
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x4c]
add ecx, 0x54
push eax
push ecx
lea ecx, [esp + 0x28]
push ecx
push esi
call fcn.10076880
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
xor ecx, edi
mov edi, dword [esp + 0x3c]
xor eax, ebx
mov ebx, dword [esp + 0x38]
xor edi, edx
xor ebx, ebp
mov edx, esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
mov ebx, dword [edx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
add esp, 0x10
mov edi, dword [edx + 4]
add esi, 0x10
mov ebp, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [edx], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 0xc], ecx
mov ecx, edx
add ecx, 0x10
dec eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
jne 0x10060ebc
mov edx, dword [ecx + 0x4c]
add ecx, 0x54
push edx
lea eax, [esp + 0x24]
push ecx
push eax
push esi
call fcn.10076880
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
xor edx, ecx
xor eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x3f]
add esp, 0x10
xor ebx, edi
xor esi, ebp
and edx, 0xff
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], esi
jle 0x10061022
cmp edx, 0x10
jg 0x10061022
mov esi, 0x10
sub esi, edx
mov eax, esi
cmp eax, 0x10
jge 0x10060fbe
xor ecx, ecx
mov cl, byte [esp + eax + 0x20]
cmp ecx, edx
jne 0x10061022
inc eax
cmp eax, 0x10
jl 0x10060fae
mov edi, dword [esp + 0x48]
mov ecx, esi
lea esi, [esp + 0x20]
jmp 0x10061059
lea ebx, [eax - 1]
test ebx, ebx
jle 0x1006102f
mov edi, dword [esp + 0x48]
lea ebp, [ecx + 0x54]
jmp 0x10060fe1
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x4c]
push ecx
push ebp
push edi
push esi
call fcn.10076880
add esp, 0x10
add esi, 0x10
add edi, 0x10
dec ebx
jne 0x10060fdd
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x4c]
add ecx, 0x54
push edx
lea eax, [esp + 0x24]
push ecx
push eax
push esi
call fcn.10076880
mov edx, dword [esp + 0x3f]
add esp, 0x10
and edx, 0xff
cmp edx, 0x10
jl 0x10061035
pop edi
pop esi
pop ebp
mov eax, 0xfffffff8
pop ebx
add esp, 0x24
ret
mov edi, dword [esp + 0x48]
jmp 0x10060ffd
mov esi, 0x10
sub esi, edx
mov eax, esi
cmp eax, 0x10
jge 0x10061053
xor ecx, ecx
mov cl, byte [esp + eax + 0x20]
cmp ecx, edx
jne 0x10061022
inc eax
cmp eax, 0x10
jl 0x10061043
mov ecx, esi
lea esi, [esp + 0x20]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
shl eax, 4
pop ebp
sub eax, edx
pop ebx
add esp, 0x24
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x24
ret