Function at 0x10065b07
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x350
mov eax, dword [0x101c0814]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov eax, 0x10065a09
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, esi
mov dword [ebp - 0x338], 0x1006594b
sar edi, 5
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x344], ebx
cmovne eax, dword [ebp - 0x338]
lea ecx, [edi + 6]
mov dword [ebx + 0x114], eax
cmp dword [0x102c2284], 0
mov dword [ebp - 0x33c], edx
mov dword [ebp - 0x34c], ecx
jne 0x10065c62
xor ecx, ecx
inc ecx
xor edx, edx
lea eax, [ecx + ecx]
mov byte [ebp + edx - 0x205], cl
mov byte [ebp + edx - 0x304], cl
mov byte [ebp + ecx - 0x104], dl
xor ecx, eax
mov eax, 0xff
cmp ecx, eax
jle 0x10065b9b
xor ecx, 0x11b
inc edx
cmp edx, eax
jl 0x10065b72
xor edx, edx
test edx, edx
je 0x10065bbb
movzx eax, byte [ebp + edx - 0x104]
lea ecx, [ebp - 0x205]
sub ecx, eax
movzx ecx, byte [ecx]
jmp 0x10065bbd
xor ecx, ecx
lea eax, [ecx + ecx]
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor ecx, eax
mov eax, ecx
xor eax, 0x6300
sar eax, 8
xor eax, ecx
movzx eax, al
mov byte [edx + 0x102c1088], al
mov byte [eax + 0x102c1188], dl
inc edx
cmp edx, 0x100
jl 0x10065ba2
movaps xmm0, xmmword [0x1017c330]
lea eax, [ebp - 0x304]
push 0x102c1188
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x314]
push eax
push 0x102c2288
movups xmmword [ebp - 0x314], xmm0
call fcn.10065e82
movaps xmm0, xmmword [0x1017c320]
lea eax, [ebp - 0x304]
push 0x102c1088
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x314]
push eax
push 0x102c1288
movups xmmword [ebp - 0x314], xmm0
call fcn.10065e82
mov edx, dword [ebp - 0x33c]
lea ecx, [edi + 6]
add esp, 0x28
cmp esi, 0x80
je 0x10065c82
cmp esi, 0xc0
je 0x10065c82
cmp esi, 0x100
je 0x10065c82
push 0xffffffffffffffea
pop eax
jmp 0x10065e71
mov esi, edi
mov dword [ebx + 0x110], ecx
shl esi, 2
lea eax, [ebp - 0x324]
push esi
push edx
push eax
call fcn.10133dc0
push esi
push dword [ebp - 0x33c]
push ebx
call fcn.10133dc0
lea ecx, [edi + 6]
mov eax, esi
mov edx, ecx
mov dword [ebp - 0x33c], eax
shl edx, 4
add esp, 0x18
mov dword [ebp - 0x350], edx
lea esi, [edx + 0x10]
mov dword [ebp - 0x348], esi
cmp eax, esi
lea esi, [edi*4]
jge 0x10065dce
xor eax, eax
mov dword [ebp - 0x338], 0x1017c308
inc eax
lea ecx, [ebp - 0x324]
sub eax, ecx
mov dword [ebp - 0x340], eax
mov ebx, dword [ebp - 0x340]
xor edx, edx
lea ecx, [ebp - 0x324]
add ecx, edx
lea eax, [ebx + ecx]
and eax, 3
add eax, esi
movzx eax, byte [ebp + eax - 0x328]
mov al, byte [eax + 0x102c1088]
xor byte [ecx], al
inc edx
cmp edx, 4
jl 0x10065cfc
mov ecx, dword [ebp - 0x338]
xor edx, edx
mov ebx, dword [ebp - 0x344]
inc edx
mov al, byte [ecx]
xor byte [ebp - 0x324], al
inc ecx
mov dword [ebp - 0x338], ecx
cmp edi, edx
jle 0x10065d8f
cmp edi, 8
jne 0x10065d6d
cmp edx, 4
jne 0x10065d6d
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x318]
mov al, byte [eax + 0x102c1088]
xor byte [ebp + ecx - 0x314], al
inc ecx
cmp ecx, 4
jl 0x10065d50
jmp 0x10065d85
lea esi, [ebp - 0x324]
xor ecx, ecx
lea esi, [esi + edx*4]
mov al, byte [esi + ecx - 4]
xor byte [esi + ecx], al
inc ecx
cmp ecx, 4
jl 0x10065d78
inc edx
cmp edx, edi
jl 0x10065d44
mov esi, edi
shl esi, 2
push esi
lea eax, [ebp - 0x324]
push eax
mov eax, dword [ebp - 0x33c]
add eax, ebx
push eax
call fcn.10133dc0
mov eax, dword [ebp - 0x33c]
add esp, 0xc
add eax, esi
mov dword [ebp - 0x33c], eax
cmp eax, dword [ebp - 0x348]
jl 0x10065cf4
mov ecx, dword [ebp - 0x34c]
mov edx, dword [ebp - 0x350]
cmp dword [ebp + 0x14], 0
je 0x10065e38
cmp ecx, 1
jle 0x10065e6f
add ebx, 0x10
dec ecx
mov dword [ebp - 0x338], ecx
mov esi, ebx
lea edi, [ebp - 0x314]
push 0x102c1088
lea eax, [ebp - 0x324]
push 0
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1006600b
push 3
push 1
lea eax, [ebp - 0x334]
push 0x102c2288
push eax
call fcn.10065f35
mov edi, ebx
lea esi, [ebp - 0x334]
add esp, 0x1c
add ebx, 0x10
sub dword [ebp - 0x338], 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x10065de7
jmp 0x10065e6f
lea eax, [ecx + 1]
sar eax, 1
test eax, eax
jle 0x10065e6f
lea ecx, [edx + ebx]
mov esi, ecx
lea edi, [ebp - 0x314]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ebx
mov edi, ecx
sub ecx, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ebx
lea esi, [ebp - 0x314]
add ebx, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub eax, 1
jne 0x10065e44
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10132731
mov esp, ebp
pop ebp
ret