Function at 0x100157c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [ebp + 8]
lea edx, [ecx + 0x3c]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x60], edx
push ebx
lea ebx, [eax + 0x3c]
push esi
push edi
cmp eax, edx
ja 0x10015800
cmp ebx, ecx
jb 0x10015800
mov edi, ecx
mov edx, eax
sub edi, eax
mov esi, 0x10
nop dword [eax + eax]
mov ecx, dword [edi + edx]
lea edx, [edx + 4]
mov dword [edx - 4], ecx
sub esi, 1
jne 0x100157f0
jmp 0x1001581e
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 0x30]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 0x14]
mov esi, dword [eax]
mov edi, dword [eax + 0x20]
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x34], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebx]
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], 0xa
lea ecx, [ebx + esi]
xor eax, ecx
mov edx, eax
shl eax, 0x10
shr edx, 0x10
or edx, eax
mov eax, dword [ebp - 0x10]
add edi, edx
xor ebx, edi
mov esi, ebx
shl ebx, 0xc
shr esi, 0x14
or esi, ebx
mov ebx, dword [ebp - 8]
add ecx, esi
mov dword [ebp - 0x3c], ecx
xor ecx, edx
mov edx, ecx
shl ecx, 8
shr edx, 0x18
or edx, ecx
mov dword [ebp - 4], edx
lea ecx, [edi + edx]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x4c], ecx
xor ecx, esi
mov edx, ecx
shl ecx, 7
shr edx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0xc]
add ecx, ebx
mov dword [ebp - 0x54], edx
xor eax, ecx
mov edx, eax
shl eax, 0x10
shr edx, 0x10
or edx, eax
mov eax, dword [ebp - 0x34]
add edi, edx
xor ebx, edi
mov esi, ebx
shl ebx, 0xc
shr esi, 0x14
or esi, ebx
mov ebx, dword [ebp - 0x18]
add ecx, esi
mov dword [ebp - 0x14], ecx
xor ecx, edx
mov edx, ecx
shl ecx, 8
shr edx, 0x18
or edx, ecx
mov dword [ebp - 0x48], edx
lea ecx, [edi + edx]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x5c], ecx
xor ecx, esi
mov edx, ecx
shl ecx, 7
shr edx, 0x19
or edx, ecx
mov ecx, dword [ebp - 0x1c]
add ecx, ebx
mov dword [ebp - 0x40], edx
xor eax, ecx
mov edx, eax
shl eax, 0x10
shr edx, 0x10
or edx, eax
add edi, edx
xor ebx, edi
mov esi, ebx
shl ebx, 0xc
shr esi, 0x14
or esi, ebx
add ecx, esi
mov dword [ebp - 0x10], ecx
xor ecx, edx
mov edx, ecx
shr edx, 0x18
shl ecx, 8
or edx, ecx
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x58], edx
lea ecx, [edi + edx]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x34], ecx
add edi, eax
xor ecx, esi
mov edx, ecx
shl ecx, 7
shr edx, 0x19
or edx, ecx
mov ecx, edi
xor ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], edx
mov edx, ecx
shl ecx, 0x10
shr edx, 0x10
or edx, ecx
add ebx, edx
xor eax, ebx
mov esi, eax
shl eax, 0xc
shr esi, 0x14
or esi, eax
lea ecx, [edi + esi]
mov dword [ebp - 0x50], ecx
xor ecx, edx
mov edx, ecx
shl ecx, 8
shr edx, 0x18
or edx, ecx
lea ecx, [ebx + edx]
mov dword [ebp - 0x30], ecx
xor ecx, esi
mov esi, dword [ebp - 0x3c]
mov ebx, ecx
add esi, dword [ebp - 0x40]
shl ecx, 7
shr ebx, 0x19
or ebx, ecx
mov ecx, esi
xor ecx, edx
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x34]
mov edx, ecx
shl ecx, 0x10
shr edx, 0x10
or edx, ecx
add ebx, edx
mov ecx, ebx
xor ecx, dword [ebp - 0x40]
mov edi, ecx
shl ecx, 0xc
shr edi, 0x14
or edi, ecx
lea eax, [esi + edi]
mov ecx, eax
mov dword [ebp - 0x3c], eax
xor ecx, edx
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 0x18
shl ecx, 8
or eax, ecx
mov ecx, edx
xor ecx, dword [ebp - 4]
mov dword [ebp - 0x2c], eax
add eax, ebx
mov dword [ebp - 0x20], eax
mov ebx, ecx
xor eax, edi
shr ebx, 0x10
mov edi, dword [ebp - 0x30]
ror eax, 0x19
shl ecx, 0x10
mov dword [ebp - 8], eax
or ebx, ecx
add edi, ebx
mov ecx, edi
xor ecx, dword [ebp - 0x1c]
mov esi, ecx
shl ecx, 0xc
shr esi, 0x14
or esi, ecx
lea eax, [esi + edx]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x28]
xor ebx, eax
mov dword [ebp - 0xc], eax
mov eax, ebx
shl ebx, 8
shr eax, 0x18
or eax, ebx
lea ecx, [edi + eax]
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x30], ecx
xor ecx, esi
ror ecx, 0x19
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x48]
xor ecx, edx
mov ebx, ecx
shl ecx, 0x10
shr ebx, 0x10
or ebx, ecx
add edi, ebx
mov ecx, edi
xor ecx, dword [ebp - 0x28]
mov esi, ecx
shl ecx, 0xc
shr esi, 0x14
or esi, ecx
lea ecx, [esi + edx]
mov edx, dword [ebp - 0x50]
xor ebx, ecx
add edx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
shr ecx, 0x18
shl ebx, 8
or ecx, ebx
mov dword [ebp - 0x10], ecx
add ecx, edi
mov dword [ebp - 0x40], ecx
xor ecx, esi
mov esi, dword [ebp - 0x5c]
ror ecx, 0x19
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x58]
xor ecx, edx
mov edi, ecx
shl ecx, 0x10
shr edi, 0x10
or edi, ecx
add esi, edi
mov ecx, esi
xor ecx, dword [ebp - 0x54]
mov ebx, ecx
shl ecx, 0xc
shr ebx, 0x14
or ebx, ecx
lea ecx, [ebx + edx]
xor edi, ecx
mov dword [ebp - 0x28], ecx
mov edx, edi
shl edi, 8
shr edx, 0x18
or edx, edi
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x34], edx
lea ecx, [esi + edx]
mov esi, dword [ebp - 0x3c]
xor ebx, ecx
mov dword [ebp - 0x14], ecx
ror ebx, 0x19
sub dword [ebp - 0x38], 1
jne 0x10015883
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x24]
mov dword [eax], esi
mov esi, dword [ebp - 0x14]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x24], esi
mov esi, dword [ebp - 0x20]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0xc], ecx
lea ecx, [eax + 0x3c]
mov dword [eax + 0x28], esi
mov esi, dword [ebp - 0x30]
mov dword [ecx], edx
mov edx, dword [ebp - 0x44]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x20], edi
mov dword [eax + 0x2c], esi
cmp eax, dword [ebp - 0x60]
ja 0x10015b73
cmp ecx, edx
jb 0x10015b73
mov edi, edx
mov esi, 0x10
sub edi, eax
mov ecx, dword [edi + eax]
lea eax, [eax + 4]
add dword [eax - 4], ecx
sub esi, 1
jne 0x10015b63
jmp 0x10015bb0
movups xmm0, xmmword [edx]
movups xmm1, xmmword [eax]
paddd xmm1, xmm0
movups xmmword [eax], xmm1
movups xmm0, xmmword [eax + 0x10]
movups xmm1, xmmword [edx + 0x10]
paddd xmm1, xmm0
movups xmmword [eax + 0x10], xmm1
movups xmm0, xmmword [eax + 0x20]
movups xmm1, xmmword [edx + 0x20]
paddd xmm1, xmm0
movups xmmword [eax + 0x20], xmm1
movups xmm1, xmmword [edx + 0x30]
movups xmm0, xmmword [eax + 0x30]
paddd xmm1, xmm0
movups xmmword [eax + 0x30], xmm1
add dword [edx + 0x30], 1
pop edi
pop esi
pop ebx
jne 0x10015bbc
inc dword [edx + 0x34]
mov esp, ebp
pop ebp
ret 4