Function at 0x1010aae0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x310
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push 0x10262c00
call fcn.1010d0f0
add esp, 4
push 0x10262c00
call fcn.1010d0f0
add esp, 4
movsd xmm1, qword [edi + 8]
movsd xmm2, qword [edi + 0x10]
movsd xmm0, qword [edi]
mov edx, dword [edi + 0x50]
movsd xmm3, qword [edi + 8]
movsd qword [esp + 0x68], xmm1
movsd xmm1, qword [edi + 0x18]
movsd qword [esp + 0x70], xmm2
movsd xmm2, qword [edi + 0x20]
movsd qword [esp + 0x60], xmm0
cmp edx, ebx
mov dword [esp + 8], edx
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [edi + 0x28]
movsd qword [esp + 0x80], xmm2
movsd xmm2, qword [edi + 0x30]
movsd qword [esp + 0x88], xmm1
movsd xmm1, qword [edi + 0x38]
movsd qword [esp + 0x90], xmm2
movsd xmm2, qword [edi + 0x18]
movsd qword [esp + 0x98], xmm1
movsd xmm1, qword [edi + 0x10]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], edi
movsd qword [esp + 0x28], xmm2
movsd xmm2, qword [edi + 0x28]
movsd qword [esp + 0x18], xmm3
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [edi + 0x20]
movsd qword [esp + 0x38], xmm2
movsd xmm2, qword [edi + 0x38]
movsd qword [esp + 0x30], xmm1
movsd xmm1, qword [edi + 0x30]
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x40], xmm1
movsd xmm1, qword [edi]
movsd qword [esp + 0x10], xmm1
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], edi
jae 0x1010ad7c
push 0x10262c00
call fcn.1010d0f0
add esp, 4
movsd xmm1, qword [edi + 8]
xorps xmm0, xmm0
movsd xmm2, qword [edi + 0x10]
movsd xmm3, qword [edi]
movaps xmmword [esp + 0x190], xmm0
movaps xmmword [esp + 0x1a0], xmm0
movaps xmmword [esp + 0x1b0], xmm0
movaps xmmword [esp + 0x1c0], xmm0
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1e0], xmm0
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x200], xmm0
movsd qword [esp + 0x218], xmm1
movsd xmm1, qword [edi + 0x18]
movsd qword [esp + 0x220], xmm2
movsd xmm2, qword [edi + 0x20]
movsd qword [esp + 0x210], xmm3
movsd qword [esp + 0x228], xmm1
movsd xmm1, qword [edi + 0x28]
movsd qword [esp + 0x230], xmm2
movsd xmm2, qword [edi + 0x30]
movsd qword [esp + 0x238], xmm1
movsd xmm1, qword [edi + 0x38]
movsd qword [esp + 0x240], xmm2
movsd qword [esp + 0x248], xmm1
mov dword [esp + 0x254], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0x258], edi
mov dword [esp + 0x260], 0
lea edi, [esp + 0x190]
push ebx
push esi
push edi
call fcn.10105980
add esp, 0xc
lea ebx, [esp + 0xb0]
push 0xd8
push edi
push ebx
call fcn.10193640
add esp, 0xc
mov eax, dword [esp + 0x178]
lea esi, [esp + 0x130]
mov ecx, 0x14
mov edx, dword [eax + 0x50]
lea eax, [esp + 0x270]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
cmp edx, 0x81
jae 0x1010ae79
lea esi, [esp + 0x2c0]
push dword [esp + 0x180]
push edx
push ebx
push eax
push esi
call fcn.10105580
add esp, 0x14
mov eax, dword [esp + 0x300]
mov ebx, dword [eax + 0x48]
cmp ebx, 0x41
jae 0x1010ae86
mov edx, dword [esp + 8]
mov edi, dword [ebp + 0xc]
movaps xmm0, xmmword [str.6666666666666666jjjjjjjjjjjjjjjjjjjjjjjj]
cmp edx, 0x81
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
jae 0x1010ae72
cmp edx, ebx
cmovb ebx, edx
test ebx, ebx
je 0x1010aea8
xor eax, eax
cmp ebx, 8
jb 0x1010ae98
xor eax, eax
cmp ebx, 0x20
jb 0x1010ae3f
mov eax, ebx
xor ecx, ecx
and eax, 0xffffffe0
nop word cs:[eax + eax]
nop
movups xmm0, xmmword [esi + ecx]
movups xmm2, xmmword [esp + ecx + 0xb0]
movups xmm1, xmmword [esi + ecx + 0x10]
movups xmm3, xmmword [esp + ecx + 0xc0]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esp + ecx + 0xb0], xmm2
movups xmmword [esp + ecx + 0xc0], xmm3
add ecx, 0x20
cmp eax, ecx
jne 0x1010ae00
cmp ebx, eax
je 0x1010aea8
test bl, 0x18
je 0x1010ae98
mov ecx, eax
mov eax, ebx
and eax, 0xfffffff8
nop word cs:[eax + eax]
movsd xmm0, qword [esi + ecx]
movsd xmm1, qword [esp + ecx + 0xb0]
xorps xmm1, xmm0
movlps qword [esp + ecx + 0xb0], xmm1
add ecx, 8
cmp eax, ecx
jne 0x1010ae50
jmp 0x1010aea4
push 0x101cd7c0
jmp 0x1010ae7e
push 0x101cc8e8
push 0x80
push edx
jmp 0x1010ae8e
push 0x101cd7b0
push 0x40
push ebx
call fcn.101af5d0
add esp, 0xc
ud2
movzx ecx, byte [esi + eax]
xor byte [esp + eax + 0xb0], cl
inc eax
cmp ebx, eax
jne 0x1010ae98
test edx, edx
je 0x1010b01b
mov eax, edi
lea esi, [esp + 0xb0]
lea edi, [esp + 0x10]
push 1
push esi
push edi
call dword [eax + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add eax, 1
adc ecx, 0
jb 0x1010b031
mov dword [esp + 0x50], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x54], ecx
cmp eax, 8
jb 0x1010af83
xor ebx, ebx
cmp eax, 0x20
jb 0x1010af38
movaps xmm0, xmmword [0x101cce40]
mov ebx, eax
lea ecx, [esp + 0xc0]
and ebx, 0xffffffe0
mov edx, ebx
nop dword [eax]
movups xmm1, xmmword [ecx - 0x10]
movups xmm2, xmmword [ecx]
xorps xmm1, xmm0
xorps xmm2, xmm0
movups xmmword [ecx - 0x10], xmm1
movups xmmword [ecx], xmm2
add ecx, 0x20
add edx, 0xffffffe0
jne 0x1010af10
mov eax, dword [esp + 8]
cmp eax, ebx
je 0x1010af98
test al, 0x18
je 0x1010af7c
movaps xmm0, xmmword [0x101cce50]
mov ecx, eax
lea edx, [esp + ebx + 0xb0]
and ecx, 0xfffffff8
lea esi, [esp + ecx + 0xb0]
sub ebx, ecx
nop word cs:[eax + eax]
nop
movsd xmm1, qword [edx]
xorps xmm1, xmm0
movlps qword [edx], xmm1
add edx, 8
add ebx, 8
jne 0x1010af60
mov eax, dword [esp + 8]
cmp eax, ecx
jne 0x1010af83
jmp 0x1010af98
lea esi, [esp + ebx + 0xb0]
lea ecx, [esp + eax + 0xb0]
nop word [eax + eax]
xor byte [esi], 0x6a
inc esi
cmp esi, ecx
jne 0x1010af90
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + 0x50]
test ebx, ebx
je 0x1010b01b
xor edx, edx
div ebx
mov edx, dword [esp + 8]
mov esi, eax
imul eax, ebx
mov dword [esp + 0xc], eax
cmp eax, edx
mov dword [esp + 0x270], edx
jne 0x1010b047
cmp ebx, edx
ja 0x1010afff
lea eax, [esp + 0x60]
lea edx, [esp + 0xb0]
push esi
push edx
push eax
call dword [ecx + 0x40]
add esp, 0xc
mov eax, dword [esp + 0xa4]
add esi, dword [esp + 0xa0]
adc eax, 0
jb 0x1010b031
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], eax
mov esi, dword [ebp + 8]
push 0xa0
push edi
push esi
call fcn.10193640
add esp, 0xc
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x101cd2a0
push 0x19
push 0x101cd2b0
call fcn.101af1e0
add esp, 0xc
ud2
push 0x101cd308
push 0x2b
push 0x101cd2dc
call fcn.101af1e0
add esp, 0xc
ud2
mov dword [esp + 0x190], 0
lea eax, [esp + 0x190]
lea ecx, [esp + 0x270]
lea edx, [esp + 0xc]
push 0x101cd2cc
push eax
push ecx
push edx
push 0
call fcn.101ac320
add esp, 0x14
ud2