Function at 0x10006150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], edi
mov eax, dword [edi + 4]
cdq
and edx, 3
lea esi, [edx + eax]
sar esi, 2
mov dword [ebp - 0x20], esi
movsx edx, byte [esi + 0x100127dc]
movsx eax, byte [edx*8 + 0x100127ee]
movsx ecx, byte [edx*8 + 0x100127ea]
movsx ebx, byte [edx*8 + 0x100127ec]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], eax
test esi, esi
jle 0x100061f7
lea eax, [edi + 0x10]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
lea esp, [esp]
movzx ebx, byte [eax]
lea eax, [eax + 4]
movzx edi, byte [eax - 3]
movzx esi, byte [eax - 2]
movzx edx, byte [eax - 1]
mov ecx, dword [ebp - 0x10]
add dword [ebp - 0x10], 4
shl ebx, 8
or ebx, edi
shl ebx, 8
or ebx, esi
shl ebx, 8
or ebx, edx
mov edx, dword [ebp - 0x18]
xor ebx, dword [edx]
add edx, 4
sub dword [ebp - 0x1c], 1
mov dword [ecx], ebx
mov dword [ebp - 0x18], edx
jne 0x100061b0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 0x14]
cmp dword [edi + 8], 1
mov dword [ebp - 0x18], 1
jle 0x100062e4
lea edx, [edi + 0x30]
lea eax, [esi*4]
mov dword [ebp - 0x10], edx
jmp 0x10006220
mov dword [ebp + 8], 0
test esi, esi
jle 0x100062ad
mov eax, dword [ebp - 0xc]
sub ebx, ecx
sub eax, ecx
mov dword [ebp - 0x1c], edx
mov edi, ecx
mov dword [ebp - 0x20], eax
mov edi, edi
lea eax, [ebx + edi]
cdq
idiv esi
mov eax, dword [ebp + edx*4 - 0x40]
sar eax, 8
movzx ecx, al
mov eax, dword [ebp - 0x20]
add eax, edi
cdq
idiv esi
mov ecx, dword [ecx*4 + 0x1000f938]
movzx eax, byte [ebp + edx*4 - 0x40]
xor ecx, dword [eax*4 + 0x1000fd38]
mov eax, edi
cdq
inc edi
idiv esi
movzx eax, byte [ebp + edx*4 - 0x3e]
mov edx, dword [ebp + 8]
xor ecx, dword [eax*4 + 0x1000f538]
movzx eax, byte [ebp + edx*4 - 0x3d]
xor ecx, dword [eax*4 + 0x1000f138]
mov eax, dword [ebp - 0x1c]
xor ecx, dword [eax]
add eax, 4
mov dword [ebp + edx*4 - 0x60], ecx
inc edx
mov dword [ebp + 8], edx
mov dword [ebp - 0x1c], eax
cmp edx, esi
jl 0x10006240
mov edi, dword [ebp - 0x14]
lea eax, [esi*4]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10001c80
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov edx, dword [ebp - 0x10]
inc eax
mov ecx, dword [ebp - 8]
add edx, 0x20
cmp eax, dword [edi + 8]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x18], eax
lea eax, [esi*4]
mov dword [ebp - 0x10], edx
jl 0x10006220
xor ebx, ebx
mov dword [ebp + 8], ebx
test esi, esi
jle 0x10006392
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
sub edx, eax
mov edi, dword [ebp + 0xc]
sub dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 0x14]
lea edi, [edi + 4]
mov eax, dword [ecx + 8]
lea eax, [ebx + eax*8]
mov ebx, dword [ecx + eax*4 + 0x10]
mov ecx, ebx
mov eax, dword [ebp + 8]
sar ecx, 0x18
movzx eax, byte [ebp + eax*4 - 0x3d]
xor cl, byte [eax + 0x1000df38]
mov eax, dword [ebp - 4]
add eax, edx
mov byte [edi - 4], cl
cdq
mov ecx, ebx
idiv esi
sar ecx, 0x10
movzx eax, byte [ebp + edx*4 - 0x3e]
xor cl, byte [eax + 0x1000df38]
mov eax, dword [ebp - 4]
cdq
idiv esi
mov byte [edi - 3], cl
mov ecx, ebx
sar ecx, 8
mov eax, dword [ebp + edx*4 - 0x40]
sar eax, 8
movzx eax, al
xor cl, byte [eax + 0x1000df38]
mov eax, dword [ebp - 0xc]
mov byte [edi - 2], cl
mov ecx, dword [ebp - 4]
add eax, ecx
cdq
inc ecx
idiv esi
mov dword [ebp - 4], ecx
movzx eax, byte [ebp + edx*4 - 0x40]
mov edx, dword [ebp - 8]
mov al, byte [eax + 0x1000df38]
xor al, bl
mov ebx, dword [ebp + 8]
inc ebx
mov byte [edi - 1], al
mov dword [ebp + 8], ebx
cmp ebx, esi
jl 0x10006302
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8