Function at 0x100d13c0
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
push ebx
mov ebx, dword [ebp + 0x10]
push edi
test bl, 7
je 0x100d13de
mov eax, 0xffffffce
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 1
jne 0x100d1726
test ebx, ebx
je 0x100d17b4
lea eax, [edx + 2]
sub edx, ecx
lea edi, [ecx + 2]
lea ecx, [ebx - 1]
add edx, 0xfffffffe
shr ecx, 3
inc ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [edi - 2]
xor cl, byte [esi]
mov byte [edx + edi], cl
movzx ecx, byte [edi - 1]
xor cl, byte [esi + 1]
mov byte [eax - 1], cl
movzx ecx, byte [edi]
xor cl, byte [esi + 2]
mov byte [eax], cl
movzx ecx, byte [edi + 1]
xor cl, byte [esi + 3]
mov byte [eax + 1], cl
movzx ecx, byte [edi + 2]
xor cl, byte [esi + 4]
mov byte [eax + 2], cl
movzx ecx, byte [edi + 3]
xor cl, byte [esi + 5]
mov byte [eax + 3], cl
movzx ecx, byte [edi + 4]
xor cl, byte [esi + 6]
mov byte [eax + 4], cl
movzx ecx, byte [edi + 5]
xor cl, byte [esi + 7]
mov byte [eax + 5], cl
mov ecx, dword [ebp + 8]
movzx ebx, byte [eax + 3]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edx + edi]
movzx edx, byte [eax - 1]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 1]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 2]
shl edx, 8
or edx, ebx
movzx ebx, byte [eax + 4]
shl edx, 8
or edx, ebx
movzx ebx, byte [eax + 5]
shl edx, 8
or edx, ebx
mov ebx, ecx
shr ebx, 4
xor ebx, edx
and ebx, 0xf0f0f0f
xor edx, ebx
shl ebx, 4
xor ecx, ebx
mov ebx, ecx
shr ebx, 0x10
xor ebx, edx
and ebx, 0xffff
xor edx, ebx
shl ebx, 0x10
xor ecx, ebx
mov ebx, edx
shr ebx, 2
xor ebx, ecx
and ebx, 0x33333333
xor ecx, ebx
add ebx, ebx
add ebx, ebx
xor edx, ebx
mov ebx, edx
shr ebx, 8
xor ebx, ecx
and ebx, 0xff00ff
xor ecx, ebx
shl ebx, 8
xor ebx, edx
rol ebx, 1
mov edx, ebx
xor edx, ecx
and edx, 0xaaaaaaaa
xor ebx, edx
mov dword [esp + 0x14], ebx
xor edx, ecx
rol edx, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 8
mov edx, dword [esp + 0xc]
mov ecx, dword [edx]
xor ecx, ebx
add edx, 4
mov dword [esp + 0xc], edx
mov edx, ecx
shr edx, 0x18
and edx, 0x3f
mov edx, dword [edx*4 + 0x10297460]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297660]
mov ebx, ecx
shr ebx, 8
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297860]
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x10297a60]
mov ecx, dword [esp + 0x14]
xor dword [esp + 0x10], edx
mov edx, dword [esp + 0xc]
add edx, 4
ror ecx, 4
xor ecx, dword [edx - 4]
mov dword [esp + 0xc], edx
mov edx, ecx
shr edx, 0x18
and edx, 0x3f
mov edx, dword [edx*4 + 0x10297360]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297560]
mov ebx, ecx
shr ebx, 8
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297760]
mov ebx, dword [esp + 0x10]
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x10297960]
mov ecx, dword [esp + 0xc]
xor ebx, edx
mov edx, dword [ecx]
xor edx, ebx
add ecx, 4
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov ecx, edx
mov ebx, edx
shr ebx, 0x10
shr ecx, 0x18
and ebx, 0x3f
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x10297460]
xor ecx, dword [ebx*4 + 0x10297660]
mov ebx, edx
shr ebx, 8
and ebx, 0x3f
xor ecx, dword [ebx*4 + 0x10297860]
and edx, 0x3f
xor ecx, dword [edx*4 + 0x10297a60]
mov edx, dword [esp + 0xc]
xor dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add edx, 4
ror ecx, 4
xor ecx, dword [edx - 4]
mov dword [esp + 0xc], edx
mov edx, ecx
shr edx, 0x18
and edx, 0x3f
mov edx, dword [edx*4 + 0x10297360]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297560]
mov ebx, ecx
shr ebx, 8
and ebx, 0x3f
xor edx, dword [ebx*4 + 0x10297760]
mov ebx, dword [esp + 0x14]
and ecx, 0x3f
xor edx, dword [ecx*4 + 0x10297960]
xor ebx, edx
dec dword [esp + 0x18]
mov dword [esp + 0x14], ebx
jne 0x100d150e
ror ebx, 1
mov ecx, ebx
mov ebx, dword [esp + 0x10]
mov edx, ecx
xor edx, ebx
and edx, 0xaaaaaaaa
xor ecx, edx
xor edx, ebx
ror edx, 1
mov ebx, edx
shr ebx, 8
xor ebx, ecx
and ebx, 0xff00ff
xor ecx, ebx
shl ebx, 8
xor edx, ebx
mov ebx, edx
shr ebx, 2
xor ebx, ecx
and ebx, 0x33333333
xor ecx, ebx
add ebx, ebx
add ebx, ebx
xor edx, ebx
mov ebx, ecx
shr ebx, 0x10
xor ebx, edx
and ebx, 0xffff
xor edx, ebx
shl ebx, 0x10
xor ecx, ebx
mov ebx, ecx
shr ebx, 4
xor ebx, edx
and ebx, 0xf0f0f0f
xor edx, ebx
shl ebx, 4
xor ecx, ebx
mov ebx, ecx
shr ebx, 0x18
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
mov byte [edx + edi], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [eax - 1], bl
mov ebx, ecx
shr ebx, 8
mov byte [eax], bl
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x10]
mov ebx, ecx
shr ebx, 0x18
mov byte [eax + 2], bl
mov ebx, ecx
shr ebx, 0x10
mov byte [eax + 3], bl
mov ebx, ecx
mov byte [eax + 5], cl
mov ecx, dword [edx + edi]
shr ebx, 8
mov byte [eax + 4], bl
mov dword [esi], ecx
mov ecx, dword [edx + edi + 4]
add edi, 8
add eax, 8
dec dword [esp + 0x20]
mov dword [esi + 4], ecx
jne 0x100d140a
xor eax, eax
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x100d17b4
sub ecx, edx
lea eax, [ebx - 1]
add ecx, 0xfffffffe
shr eax, 3
inc eax
lea edi, [edx + 2]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x24]
mov eax, dword [edx + edi]
mov ecx, dword [edx + edi + 4]
add edx, edi
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
lea ebx, [edi - 2]
push ebx
mov dword [esp + 0x20], ecx
call fcn.100d1160
movzx edx, byte [esi]
xor byte [ebx], dl
movzx eax, byte [esi + 1]
xor byte [edi - 1], al
movzx ecx, byte [esi + 2]
xor byte [edi], cl
movzx edx, byte [esi + 3]
xor byte [edi + 1], dl
movzx eax, byte [esi + 4]
xor byte [edi + 2], al
movzx ecx, byte [esi + 5]
xor byte [edi + 3], cl
movzx edx, byte [esi + 6]
xor byte [edi + 4], dl
movzx eax, byte [esi + 7]
xor byte [edi + 5], al
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 4
add edi, 8
dec dword [esp + 0x20]
mov dword [esi], ecx
mov dword [esi + 4], edx
jne 0x100d1745
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret