Function at 0x10063fe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x350
mov esi, dword [ebp + 8]
mov eax, dword [0x1018fc64]
xor eax, ebp
mov dword [esp + 0x348], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x330], xmm0
movdqa xmmword [esp + 0x320], xmm0
movdqa xmmword [esp + 0x310], xmm0
movdqa xmmword [esp + 0x300], xmm0
movdqa xmmword [esp + 0x2f0], xmm0
movdqa xmmword [esp + 0x2e0], xmm0
movdqa xmmword [esp + 0x2d0], xmm0
movdqa xmmword [esp + 0x2c0], xmm0
movdqa xmmword [esp + 0x2b0], xmm0
movdqa xmmword [esp + 0x2a0], xmm0
movdqa xmmword [esp + 0x290], xmm0
movdqa xmmword [esp + 0x280], xmm0
movdqa xmmword [esp + 0x270], xmm0
movdqa xmmword [esp + 0x260], xmm0
movdqa xmmword [esp + 0x250], xmm0
movdqa xmmword [esp + 0x240], xmm0
movdqa xmmword [esp + 0x230], xmm0
movdqa xmmword [esp + 0x220], xmm0
lea eax, [esp + 0x20]
push 0x200
push 0xff
push eax
call fcn.10105ec0
add esp, 0xc
cmp dword [ebp + 0x14], 0
mov eax, 0x10064880
mov ecx, 0x10064760
cmove ecx, eax
mov dword [esi + 0x114], ecx
cmp dword [0x10248c3c], 0
je 0x10064465
mov esi, dword [ebp + 0x10]
cmp esi, 0x80
je 0x10064105
cmp esi, 0x100
je 0x10064105
mov edi, 0xffffffea
cmp esi, 0xc0
jne 0x10064742
sar esi, 5
lea ecx, [esi + 6]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x18], ecx
mov dword [ebx + 0x110], ecx
lea edi, [esi*4]
lea eax, [esp + 0x320]
push edi
push dword [ebp + 0xc]
push eax
call fcn.101053c0
add esp, 0xc
push edi
push dword [ebp + 0xc]
push ebx
call fcn.101053c0
add esp, 0xc
lea eax, [esi + 7]
mov dword [esp + 0x1c], eax
shl eax, 4
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
cmp edi, eax
jge 0x100642af
xor edx, edx
mov edi, dword [esp + 0x10]
jmp 0x1006419b
mov eax, dword [ebp + 8]
add eax, edi
mov ebx, dword [esp + 0x10]
push ebx
lea ecx, [esp + 0x324]
push ecx
push eax
call fcn.101053c0
add esp, 0xc
add edi, ebx
cmp edi, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jge 0x100642af
movzx eax, byte [esp + esi*4 + 0x31d]
mov cl, byte [esp + 0x320]
xor cl, byte [eax + 0x10248d40]
mov byte [esp + 0x320], cl
movzx eax, byte [esp + esi*4 + 0x31e]
mov al, byte [eax + 0x10248d40]
xor byte [esp + 0x321], al
movzx eax, byte [esp + esi*4 + 0x31f]
mov al, byte [eax + 0x10248d40]
xor byte [esp + 0x322], al
movzx eax, byte [esp + esi*4 + 0x31c]
mov al, byte [eax + 0x10248d40]
xor byte [esp + 0x323], al
xor cl, byte [edx + 0x10159750]
add edx, 1
mov dword [esp + 0xc], edx
mov byte [esp + 0x320], cl
mov eax, 1
lea ecx, [esp + 0x323]
jmp 0x1006424c
movzx edx, byte [ecx - 3]
mov dh, byte [ecx - 2]
xor byte [ecx + 1], dl
xor byte [ecx + 2], dh
movzx edx, byte [ecx - 1]
xor byte [ecx + 3], dl
lea edx, [ecx + 4]
mov ebx, ecx
movzx ebx, byte [ebx]
xor byte [edx], bl
add eax, 1
add ecx, 4
cmp esi, eax
je 0x10064170
cmp esi, 8
jne 0x10064220
cmp eax, 4
jne 0x10064220
movzx edx, byte [esp + 0x32c]
movzx edx, byte [edx + 0x10248d40]
xor byte [esp + 0x330], dl
movzx edx, byte [esp + 0x32d]
movzx edx, byte [edx + 0x10248d40]
xor byte [esp + 0x331], dl
movzx edx, byte [esp + 0x32e]
movzx edx, byte [edx + 0x10248d40]
xor byte [esp + 0x332], dl
movzx edx, byte [esp + 0x32f]
lea ebx, [edx + 0x10248d40]
lea edx, [esp + 0x333]
jmp 0x10064239
xor edi, edi
cmp dword [ebp + 0x14], 0
je 0x100646a8
cmp dword [ebp + 0x10], 0xffffff80
jl 0x10064742
mov eax, dword [esp + 0x18]
cmp eax, 2
mov ecx, 2
cmovg ecx, eax
add ecx, 0xffffffff
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 8]
add eax, 0x18
nop word cs:[eax + eax]
nop dword [eax + eax]
mov dword [esp + 0xc], eax
mov ecx, dword [eax - 8]
mov ebx, ecx
shr ebx, 0x18
movzx edx, cl
movzx edi, byte [ebx + 0x10248d40]
movzx ebx, ch
shr ecx, 0x10
movzx ecx, cl
mov eax, dword [eax - 4]
movzx edx, byte [edx + 0x10248d40]
movzx ebx, byte [ebx + 0x10248d40]
mov esi, dword [ebx*4 + 0x10249240]
xor esi, dword [edx*4 + 0x10248e40]
mov edx, eax
shr edx, 0x10
movzx ecx, byte [ecx + 0x10248d40]
xor esi, dword [ecx*4 + 0x10249640]
xor esi, dword [edi*4 + 0x10249a40]
movzx ecx, dl
mov edx, eax
movzx edi, al
movzx eax, ah
shr edx, 0x18
movzx edi, byte [edi + 0x10248d40]
movzx ecx, byte [ecx + 0x10248d40]
movzx eax, byte [eax + 0x10248d40]
mov eax, dword [eax*4 + 0x10249240]
xor eax, dword [edi*4 + 0x10248e40]
xor eax, dword [ecx*4 + 0x10249640]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
movzx edi, cl
movzx edi, byte [edi + 0x10248d40]
movzx edx, byte [edx + 0x10248d40]
xor eax, dword [edx*4 + 0x10249a40]
movzx edx, ch
movzx edx, byte [edx + 0x10248d40]
mov edx, dword [edx*4 + 0x10249240]
xor edx, dword [edi*4 + 0x10248e40]
mov ebx, ecx
shr ecx, 0x18
movzx ecx, byte [ecx + 0x10248d40]
shr ebx, 0x10
movzx edi, bl
movzx edi, byte [edi + 0x10248d40]
xor edx, dword [edi*4 + 0x10249640]
xor edx, dword [ecx*4 + 0x10249a40]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
movzx edi, cl
movzx edi, byte [edi + 0x10248d40]
mov dword [esp + 0x10], edi
movzx ebx, ch
mov edi, ecx
movzx ebx, byte [ebx + 0x10248d40]
mov ebx, dword [ebx*4 + 0x10249240]
mov ecx, dword [esp + 0x10]
xor ebx, dword [ecx*4 + 0x10248e40]
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
movzx ecx, byte [ecx + 0x10248d40]
xor ebx, dword [ecx*4 + 0x10249640]
mov ecx, edi
shr ecx, 0x18
movzx ecx, byte [ecx + 0x10248d40]
xor ebx, dword [ecx*4 + 0x10249a40]
mov ecx, dword [esp + 0xc]
mov dword [ecx - 4], eax
mov eax, dword [esp + 0xc]
mov dword [eax - 8], esi
mov eax, dword [esp + 0xc]
mov dword [eax + 4], ebx
mov dword [eax], edx
add eax, 0x10
add dword [esp + 0x14], 0xffffffff
jne 0x100642f0
xor edi, edi
jmp 0x10064742
mov ecx, 1
xor eax, eax
nop dword [eax]
mov byte [esp + eax + 0x11f], cl
mov byte [esp + eax + 0x20], cl
mov byte [esp + ecx + 0x220], al
lea edx, [ecx + ecx]
xor edx, ecx
mov ecx, edx
xor ecx, 0x11b
cmp edx, 0xff
cmovle ecx, edx
lea edx, [eax + 1]
cmp edx, 0xff
je 0x100644d1
mov byte [esp + eax + 0x120], cl
mov byte [esp + eax + 0x21], cl
mov byte [esp + ecx + 0x220], dl
lea eax, [ecx + ecx]
xor eax, ecx
mov ecx, eax
xor ecx, 0x11b
cmp eax, 0xff
cmovle ecx, eax
add edx, 1
mov eax, edx
jmp 0x10064470
mov byte [0x10248ca3], 0
mov byte [0x10248d40], 0x63
mov eax, 1
nop word cs:[eax + eax]
nop
movzx ecx, byte [esp + eax + 0x220]
xor ecx, 0xff
movzx edx, byte [esp + ecx + 0x20]
lea esi, [edx + edx]
lea ecx, [edx*4]
xor esi, ecx
lea edi, [edx*8]
mov ecx, edx
shl ecx, 4
xor ecx, edi
xor ecx, esi
xor edx, ecx
shr ecx, 8
xor ecx, edx
movzx ecx, cl
xor ecx, 0x63
mov byte [ecx + 0x10248c40], al
mov byte [eax + 0x10248d40], cl
add eax, 1
cmp eax, 0x100
jne 0x100644f0
movzx eax, byte [esp + 0x22e]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x229]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x22d]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x22b]
mov dword [esp + 0x18], eax
mov edi, 0xffffff00
jmp 0x10064583
inc edi
je 0x100645fc
movzx ebx, byte [edi + 0x10248d40]
test ebx, ebx
je 0x10064580
movzx ebx, byte [esp + ebx + 0x220]
mov eax, dword [esp + 0xc]
add eax, ebx
movzx eax, byte [esp + eax + 0x20]
mov ecx, dword [esp + 0x10]
add ecx, ebx
movzx ecx, byte [esp + ecx + 0x20]
mov edx, dword [esp + 0x14]
add edx, ebx
movzx edx, byte [esp + edx + 0x20]
add ebx, dword [esp + 0x18]
movzx esi, byte [esp + ebx + 0x20]
shl ecx, 8
or ecx, eax
shl edx, 0x10
or edx, ecx
mov ebx, esi
shl ebx, 0x18
or ebx, edx
shl edx, 8
or edx, esi
mov dword [edi*4 + 0x10249240], ebx
mov dword [edi*4 + 0x10249640], edx
shld ecx, ebx, 0x10
mov dword [edi*4 + 0x10249a40], ecx
shrd ebx, eax, 8
mov dword [edi*4 + 0x10249e40], ebx
jmp 0x10064580
movzx eax, byte [esp + 0x222]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x221]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x223]
mov dword [esp + 0x14], eax
mov esi, 0xffffff00
jmp 0x10064637
inc esi
je 0x100640e1
movzx edi, byte [esi + 0x10248e40]
test edi, edi
je 0x10064630
movzx edi, byte [esp + edi + 0x220]
mov eax, dword [esp + 0xc]
lea ebx, [eax + edi]
movzx ebx, byte [esp + ebx + 0x20]
mov eax, dword [esp + 0x10]
add eax, edi
movzx eax, byte [esp + eax + 0x20]
add edi, dword [esp + 0x14]
movzx edx, byte [esp + edi + 0x20]
mov ecx, eax
shl ecx, 8
or ecx, ebx
shl eax, 0x10
or eax, ecx
mov edi, edx
shl edi, 0x18
or edi, eax
shl eax, 8
or eax, edx
mov dword [esi*4 + 0x10248040], edi
mov dword [esi*4 + 0x10248440], eax
shld ecx, edi, 0x10
mov dword [esi*4 + 0x10248840], ecx
shrd edi, ebx, 8
mov dword [esi*4 + 0x10248c40], edi
jmp 0x10064630
mov edx, dword [ebp + 0x10]
cmp edx, 0xffffff60
jl 0x10064742
mov ecx, dword [esp + 0x1c]
sar ecx, 1
test ecx, ecx
mov eax, 1
cmovg eax, ecx
mov ecx, 0
cmp edx, 0xffffffa0
mov esi, dword [ebp + 8]
jl 0x1006471b
mov edx, eax
and edx, 0x7ffffffe
mov edi, dword [esp + 0x18]
shl edi, 4
add edi, esi
lea ebx, [esi + 0x10]
xor ecx, ecx
nop word [eax + eax]
movaps xmm0, xmmword [edi]
movaps xmm1, xmmword [ebx - 0x10]
movaps xmmword [edi], xmm1
movaps xmmword [ebx - 0x10], xmm0
movdqa xmm0, xmmword [edi - 0x10]
movaps xmm1, xmmword [ebx]
movaps xmmword [edi - 0x10], xmm1
movdqa xmmword [ebx], xmm0
add ecx, 2
add edi, 0xffffffe0
add ebx, 0x20
cmp edx, ecx
jne 0x100646f0
test al, 1
mov edi, 0
je 0x10064742
mov eax, dword [esp + 0x18]
sub eax, ecx
shl eax, 4
movdqa xmm0, xmmword [esi + eax]
shl ecx, 4
movaps xmm1, xmmword [esi + ecx]
movaps xmmword [esi + eax], xmm1
movdqa xmmword [esi + ecx], xmm0
mov ecx, dword [esp + 0x348]
xor ecx, ebp
call fcn.10102288
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret