Function at 0x101471d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x1029e9c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 1
mov eax, dword [ebx + 0x2c]
mov edi, dword [ebx + 0x28]
mov dword [ebp - 0x18], eax
cdq
mov esi, eax
mov dword [ebp - 0x24], ebx
mov ecx, edx
mov dword [ebp - 0x28], edi
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.10161f80
push edx
push eax
call fcn.10140ad0
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x30], esi
test esi, esi
je 0x101473e4
mov edx, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x2c], edx
cmp edx, 1
jle 0x101473d8
lea eax, [edi - 1]
mov dword [ebp - 0x44], 1
lea ecx, [esi + edi]
mov dword [ebp - 0x38], eax
lea esi, [edi*8]
mov dword [ebp - 0x20], ecx
lea eax, [esi + 8]
mov dword [ebp - 0x40], 2
dec edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x48], 3
cmp dword [ebp - 0x38], 1
mov dword [ebp - 0x34], 1
jle 0x10147351
mov edi, dword [ebp - 0x20]
mov ecx, eax
mov dword [ebp - 0x3c], ecx
lea ebx, [ebx]
mov edx, dword [ebx + 0x5288]
xorps xmm0, xmm0
add edx, ecx
mov ecx, edx
sub ecx, esi
movdqu xmmword [ebp - 0x14], xmm0
mov ebx, dword [edx]
shr ebx, 5
mov eax, dword [ecx - 8]
and ebx, 3
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [ecx]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [ecx + 8]
shr eax, 5
and eax, 3
mov ecx, dword [ebp - 0x3c]
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [edx - 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [edx + 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [esi + edx - 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [esi + edx]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
mov eax, dword [esi + edx + 8]
shr eax, 5
and eax, 3
inc dword [ebp + eax*4 - 0x14]
xor eax, eax
cmp dword [ebp - 0x14], 5
cmovge ebx, eax
cmp dword [ebp - 0x10], 5
mov eax, dword [ebp - 0x34]
cmovge ebx, dword [ebp - 0x44]
cmp dword [ebp - 0xc], 5
cmovge ebx, dword [ebp - 0x40]
cmp dword [ebp - 8], 5
cmovge ebx, dword [ebp - 0x48]
add ecx, 8
mov byte [edi + eax], bl
inc eax
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], ecx
cmp eax, dword [ebp - 0x38]
jl 0x10147280
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
add eax, esi
add ecx, edi
dec edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], edx
jne 0x10147261
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
cmp edx, 1
jle 0x101473d8
mov eax, dword [ebp - 0x28]
lea ebx, [edi - 1]
shl eax, 3
add edi, esi
dec edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], edx
lea ecx, [eax + 8]
mov dword [ebp - 0x18], ecx
jmp 0x10147390
mov eax, 1
cmp ebx, eax
jle 0x101473c9
mov esi, ecx
jmp 0x101473a0
mov ecx, dword [ebp - 0x24]
lea esi, [esi + 8]
mov edx, dword [ecx + 0x5288]
movzx ecx, byte [edi + eax]
inc eax
shl ecx, 5
xor ecx, dword [edx + esi - 8]
and ecx, 0x60
xor dword [edx + esi - 8], ecx
cmp eax, ebx
jl 0x101473a0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x2c]
add edi, dword [ebp - 0x28]
dec edx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
jne 0x10147390
push dword [ebp - 0x30]
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1016159e
mov esp, ebp
pop ebp
ret