Function at 0x10132d20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc
call fcn.101b79b0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10133399
cmp dword [esp + 0x14], 0
je 0x10133399
push edi
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x10133398
mov ecx, dword [edi + 0x110]
cmp ecx, 0xc
mov dword [esp + 8], ecx
je 0x10132d6b
cmp ecx, 0xe
je 0x10132d6b
cmp ecx, 0x10
jne 0x10133398
movzx edx, byte [eax + 1]
push ebx
xor ecx, ecx
mov ch, byte [eax]
xor ebx, ebx
mov bh, byte [eax + 8]
push ebp
push esi
movzx esi, byte [eax + 5]
xor ecx, edx
movzx edx, byte [eax + 2]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
xor ecx, edx
xor edx, edx
mov dh, byte [eax + 4]
xor ecx, dword [edi]
add edi, 0x10
xor edx, esi
movzx esi, byte [eax + 6]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 7]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 9]
xor ebx, esi
movzx esi, byte [eax + 0xa]
shl ebx, 8
xor ebx, esi
movzx esi, byte [eax + 0xb]
shl ebx, 8
xor ebx, esi
xor ebx, dword [edi - 8]
movzx esi, byte [eax + 0xd]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov bh, byte [eax + 0xc]
xor edx, dword [edi - 0xc]
xor ebx, esi
movzx esi, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
shl ebx, 8
xor ebx, esi
mov esi, dword [esp + 0x20]
shl ebx, 8
xor ebx, eax
xor ebx, dword [edi - 4]
shr esi, 0x18
mov ebp, dword [esi*4 + 0x1022b410]
mov eax, ebx
mov ebx, dword [esp + 0x20]
shr ebx, 0x10
movzx ebx, bl
xor ebp, dword [ebx*4 + 0x1022b810]
mov ebx, dword [esp + 0x20]
shr ebx, 8
movzx esi, bl
xor ebp, dword [esi*4 + 0x1022bc10]
movzx esi, byte [esp + 0x20]
xor ebp, dword [esi*4 + 0x1022c010]
mov ebx, eax
shr ebx, 0x10
movzx ebx, bl
mov esi, eax
shr esi, 0x18
mov esi, dword [esi*4 + 0x1022b410]
xor esi, dword [ebx*4 + 0x1022b810]
mov ebx, eax
shr ebx, 8
movzx ebx, bl
xor esi, dword [ebx*4 + 0x1022bc10]
movzx eax, al
xor esi, dword [eax*4 + 0x1022c010]
mov eax, edx
mov ebx, edx
shr eax, 0x18
shr ebx, 0x10
movzx ebx, bl
mov eax, dword [eax*4 + 0x1022b410]
xor eax, dword [ebx*4 + 0x1022b810]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor eax, dword [ebx*4 + 0x1022bc10]
movzx edx, dl
xor eax, dword [edx*4 + 0x1022c010]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1022b410]
xor edx, dword [ebx*4 + 0x1022b810]
mov ebx, ecx
shr ebx, 8
xor eax, ebp
movzx ebx, bl
xor edx, dword [ebx*4 + 0x1022bc10]
xor ebp, esi
xor esi, eax
movzx ecx, cl
xor edx, dword [ecx*4 + 0x1022c010]
mov ebx, esi
xor edx, eax
xor ebp, edx
xor eax, ebp
rol ebp, 0x10
mov ecx, ebp
mov ebp, esi
shr ebx, 0x10
and ebp, 0xff0000
xor ebp, ebx
mov ebx, esi
shl esi, 0x10
and ebx, 0xff00
xor ebx, esi
shr ebp, 8
shl ebx, 8
xor ebp, ebx
mov esi, eax
mov ebx, eax
shr esi, 8
shl ebx, 8
xor esi, ebx
shl eax, 8
and esi, 0xff00ff
xor esi, eax
mov eax, dword [edi + 4]
xor esi, ecx
xor ecx, ebp
xor edx, esi
xor ecx, edx
xor edx, dword [edi]
xor ebp, esi
xor ebp, dword [edi + 0xc]
xor eax, ecx
xor ecx, dword [edi + 8]
mov dword [esp + 0x20], esi
xor dword [esp + 0x20], eax
add edi, 0x10
sub dword [esp + 0x14], 2
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], edi
je 0x10133201
mov edi, edi
mov ebx, ecx
shr ebx, 0x10
movzx esi, bl
mov eax, ecx
mov ebx, ecx
shr ebx, 8
shr eax, 0x18
mov eax, dword [eax*4 + 0x1022bc10]
xor eax, dword [esi*4 + 0x1022c010]
movzx esi, bl
xor eax, dword [esi*4 + 0x1022b410]
movzx ecx, cl
xor eax, dword [ecx*4 + 0x1022b810]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
shr ebx, 0x10
movzx edi, bl
mov esi, ecx
shr esi, 0x18
mov esi, dword [esi*4 + 0x1022bc10]
xor esi, dword [edi*4 + 0x1022c010]
mov ebx, ecx
shr ebx, 8
movzx edi, bl
xor esi, dword [edi*4 + 0x1022b410]
mov edi, dword [esp + 0x20]
movzx ecx, cl
xor esi, dword [ecx*4 + 0x1022b810]
mov ebx, edi
shr ebx, 0x10
movzx ebx, bl
mov ecx, edi
shr ecx, 0x18
mov ecx, dword [ecx*4 + 0x1022bc10]
xor ecx, dword [ebx*4 + 0x1022c010]
mov ebx, edi
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*4 + 0x1022b410]
movzx edi, byte [esp + 0x20]
xor ecx, dword [edi*4 + 0x1022b810]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x1022bc10]
xor edi, dword [ebx*4 + 0x1022c010]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x1022b410]
xor ecx, eax
xor eax, esi
xor esi, ecx
movzx edx, dl
xor edi, dword [edx*4 + 0x1022b810]
mov edx, esi
mov ebx, esi
shl ebx, 8
shr edx, 8
xor edx, ebx
shl esi, 8
xor edi, ecx
xor eax, edi
xor ecx, eax
and edx, 0xff00ff
xor edx, esi
mov ebx, ecx
and ebx, 0xff0000
mov esi, ecx
shr esi, 0x10
xor ebx, esi
mov esi, ecx
and esi, 0xff00
shl ecx, 0x10
xor esi, ecx
shr ebx, 8
shl esi, 8
xor ebx, esi
xor ebx, eax
xor eax, edx
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
xor edx, ebx
rol edi, 0x10
xor edi, ebx
xor eax, edi
mov dword [esp + 0x20], edi
xor dword [esp + 0x20], ecx
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 4]
xor edx, dword [edi + 0xc]
xor ecx, eax
xor eax, dword [edi + 8]
xor ebx, ecx
mov ecx, eax
shr ecx, 0x18
mov ebp, dword [ecx*4 + 0x1022b410]
mov dword [esp + 0x18], ebx
mov ebx, eax
mov ecx, eax
shr ebx, 0x10
shr ecx, 8
movzx esi, bl
xor ebp, dword [esi*4 + 0x1022b810]
mov ebx, dword [esp + 0x18]
movzx ecx, cl
xor ebp, dword [ecx*4 + 0x1022bc10]
movzx eax, al
xor ebp, dword [eax*4 + 0x1022c010]
mov ecx, edx
mov eax, edx
shr eax, 0x10
shr ecx, 0x18
mov esi, dword [ecx*4 + 0x1022b410]
mov ecx, edx
movzx eax, al
xor esi, dword [eax*4 + 0x1022b810]
shr ecx, 8
movzx eax, cl
xor esi, dword [eax*4 + 0x1022bc10]
movzx ecx, dl
xor esi, dword [ecx*4 + 0x1022c010]
mov eax, ebx
mov edx, ebx
shr edx, 0x18
shr eax, 0x10
movzx ecx, al
mov eax, dword [edx*4 + 0x1022b410]
xor eax, dword [ecx*4 + 0x1022b810]
mov edx, ebx
shr edx, 8
movzx ecx, dl
xor eax, dword [ecx*4 + 0x1022bc10]
mov ecx, dword [esp + 0x20]
movzx edx, bl
xor eax, dword [edx*4 + 0x1022c010]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x1022b410]
xor edx, dword [ebx*4 + 0x1022b810]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x1022bc10]
xor eax, ebp
movzx ecx, cl
xor edx, dword [ecx*4 + 0x1022c010]
xor ebp, esi
xor edx, eax
xor esi, eax
xor ebp, edx
add edi, 0x10
xor eax, ebp
rol ebp, 0x10
mov ebx, esi
mov ecx, ebp
and ebx, 0xff0000
mov ebp, esi
shr ebp, 0x10
xor ebx, ebp
mov ebp, esi
and ebp, 0xff00
shl esi, 0x10
xor ebp, esi
shr ebx, 8
shl ebp, 8
xor ebx, ebp
mov esi, ebx
mov ebx, eax
mov ebp, eax
shr ebx, 8
shl ebp, 8
xor ebx, ebp
shl eax, 8
and ebx, 0xff00ff
xor ebx, eax
xor ebx, ecx
mov eax, ebx
xor ecx, esi
xor edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [edi + 4]
xor ecx, edx
xor edx, dword [edi]
xor esi, ebx
xor esi, dword [edi + 0xc]
xor eax, ecx
xor ecx, dword [edi + 8]
xor dword [esp + 0x20], eax
add edi, 0x10
sub dword [esp + 0x14], 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
jne 0x10132f50
mov eax, edx
mov ebx, edx
shr ebx, 0x18
shr eax, 0x10
mov ebp, dword [esp + 0x20]
movzx eax, al
movzx eax, byte [eax*4 + 0x1022c011]
mov ah, byte [ebx*4 + 0x1022bc10]
mov ebx, edx
shr ebx, 8
movzx edx, dl
movzx edx, byte [edx*4 + 0x1022b810]
movzx ebx, bl
movzx ebx, byte [ebx*4 + 0x1022b410]
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x20]
shr ebx, 8
shl eax, 8
or eax, edx
movzx ebx, bl
movzx ebx, byte [ebx*4 + 0x1022b410]
mov edx, ebp
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx*4 + 0x1022c011]
shr ebp, 0x18
mov dh, byte [ebp*4 + 0x1022bc10]
mov ebp, dword [esp + 0x10]
xor eax, dword [edi]
mov esi, dword [esp + 0x24]
shl edx, 8
or edx, ebx
movzx ebx, byte [esp + 0x20]
movzx ebx, byte [ebx*4 + 0x1022b810]
shl edx, 8
or edx, ebx
xor edx, dword [edi + 4]
mov ebx, ecx
mov dword [esp + 0x20], edx
shr ebx, 0x18
mov edx, ecx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx*4 + 0x1022c011]
mov dh, byte [ebx*4 + 0x1022bc10]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
movzx ebx, byte [ebx*4 + 0x1022b410]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x10]
shl edx, 8
movzx ecx, cl
movzx ecx, byte [ecx*4 + 0x1022b810]
or edx, ecx
xor edx, dword [edi + 8]
shr ebx, 8
mov ecx, edx
mov edx, ebp
shr edx, 0x10
movzx edx, dl
movzx edx, byte [edx*4 + 0x1022c011]
movzx ebx, bl
movzx ebx, byte [ebx*4 + 0x1022b410]
shr ebp, 0x18
mov dh, byte [ebp*4 + 0x1022bc10]
shl edx, 8
or edx, ebx
movzx ebx, byte [esp + 0x10]
movzx ebx, byte [ebx*4 + 0x1022b810]
shl edx, 8
or edx, ebx
xor edx, dword [edi + 0xc]
mov ebx, eax
shr ebx, 0x18
mov byte [esi], bl
mov ebx, eax
shr ebx, 0x10
mov byte [esi + 1], bl
mov ebx, eax
mov byte [esi + 3], al
mov eax, dword [esp + 0x20]
shr ebx, 8
mov byte [esi + 2], bl
mov ebx, eax
shr ebx, 0x18
mov byte [esi + 4], bl
mov ebx, eax
mov byte [esi + 7], al
shr ebx, 0x10
mov byte [esi + 5], bl
mov ebx, eax
mov eax, ecx
shr eax, 0x18
mov byte [esi + 8], al
mov eax, ecx
shr eax, 0x10
mov byte [esi + 9], al
mov eax, ecx
mov byte [esi + 0xb], cl
shr eax, 8
mov ecx, edx
shr ecx, 0x18
mov byte [esi + 0xa], al
mov byte [esi + 0xc], cl
shr ebx, 8
mov eax, edx
shr eax, 0x10
mov ecx, edx
shr ecx, 8
mov byte [esi + 6], bl
mov byte [esi + 0xd], al
mov byte [esi + 0xe], cl
mov byte [esi + 0xf], dl
pop esi
pop ebp
pop ebx
pop edi
add esp, 0xc
ret