Function at 0x6a02f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov edi, dword [esp + 0x3c]
push edi
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.0069f860
add esp, 0xc
test eax, eax
jne 0x6a057b
mov eax, dword [edi + 0x110]
mov esi, eax
shl esi, 4
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + esi]
movups xmmword [edi], xmm1
movups xmmword [edi + esi], xmm0
cmp eax, 3
jl 0x6a04f3
mov eax, esi
neg eax
mov ebx, eax
lea eax, [esi - 0x10]
mov dword [esp + 4], eax
add esi, 0xffffffe0
xor eax, eax
mov edx, 0x10
nop dword [eax]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp], edx
mov eax, dword [edi + edx]
mov ecx, eax
rol ecx, 0x18
xor eax, ecx
rol eax, 0x10
mov ebp, dword [edi + edx + 4]
mov edx, ebp
rol edx, 0x18
xor ebp, edx
rol ebp, 0x10
mov esi, dword [esp + 0x3c]
mov edi, dword [esp]
mov edi, dword [esi + edi + 8]
mov esi, edi
rol esi, 0x18
xor eax, ecx
xor edi, esi
rol edi, 0x10
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp]
mov ecx, dword [ecx + ebx + 0xc]
mov ebx, ecx
rol ebx, 0x18
xor ebp, edx
xor ecx, ebx
rol ecx, 0x10
xor edi, esi
xor ecx, ebx
xor ebp, edi
xor edi, ecx
xor ecx, ebp
xor ebp, eax
mov dword [esp + 8], ebp
mov edx, edi
xor edx, ebp
xor edi, eax
bswap edi
ror edi, 0x10
rol edx, 0x10
bswap ecx
xor edi, edx
xor edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
xor edi, ecx
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + ecx]
mov edx, dword [eax + ecx + 4]
mov esi, ecx
mov dword [esp + 4], ecx
mov eax, ebx
rol eax, 0x18
xor ebx, eax
rol ebx, 0x10
xor ebx, eax
mov eax, edx
rol eax, 0x18
xor edx, eax
rol edx, 0x10
xor edx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + ecx + 8]
mov eax, ecx
rol eax, 0x18
xor ecx, eax
rol ecx, 0x10
xor ecx, eax
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + esi + 0xc]
mov eax, esi
rol eax, 0x18
xor esi, eax
rol esi, 0x10
xor esi, eax
xor edx, ecx
xor ecx, esi
xor esi, edx
xor edx, ebx
mov eax, ecx
xor ecx, ebx
bswap ecx
ror ecx, 0x10
xor eax, edx
rol eax, 0x10
bswap esi
xor ecx, eax
xor eax, esi
mov ebx, ecx
xor ecx, esi
xor ebx, edx
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp]
mov dword [esi + ebp], ebx
xor ebx, eax
xor eax, edx
mov edx, dword [esp + 0x3c]
mov esi, dword [esp]
mov dword [edx + esi + 4], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp]
mov eax, dword [esp + 0x3c]
mov dword [eax + edx + 8], ebx
mov dword [eax + edx + 0xc], ecx
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
xor ebx, ecx
mov ebp, dword [esp + 4]
mov dword [eax + ebp], ebx
mov eax, ebx
mov ebx, dword [esp + 0x10]
xor eax, ebx
xor ebx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + ebp + 4], ebx
mov dword [ecx + ebp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + ebp + 0xc], edi
mov edi, dword [esp + 0x3c]
lea eax, [edi + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [edi + edx]
add ecx, 0x10
add edx, 0x10
mov ebx, dword [esp + 0x18]
add ebx, 0x10
add ebp, 0xfffffff0
mov dword [esp + 4], ebp
add esi, 0xfffffff0
cmp ecx, dword [esp + 8]
jb 0x6a0350
add edx, edi
mov ecx, edi
add dword [esp + 4], edi
mov esi, edi
sub esi, eax
sub ecx, ebx
mov dword [esp], ecx
mov edi, esi
jmp 0x6a0506
lea eax, [edi + esi]
mov dword [esp], eax
lea eax, [edi + esi]
add eax, 0xfffffff0
mov dword [esp + 4], eax
lea edx, [edi + 0x10]
mov edx, dword [edx]
mov esi, edx
rol esi, 0x18
xor edx, esi
rol edx, 0x10
mov eax, dword [edi + 0x14]
mov ebx, eax
rol ebx, 0x18
xor eax, ebx
rol eax, 0x10
mov ecx, dword [edi + 0x18]
mov ebp, ecx
rol ebp, 0x18
xor edx, esi
xor ecx, ebp
rol ecx, 0x10
mov esi, dword [edi + 0x1c]
mov edi, esi
rol edi, 0x18
xor eax, ebx
xor esi, edi
rol esi, 0x10
xor ecx, ebp
xor esi, edi
xor eax, ecx
xor ecx, esi
xor esi, eax
xor eax, edx
mov ebx, ecx
xor ebx, eax
xor ecx, edx
bswap ecx
ror ecx, 0x10
rol ebx, 0x10
bswap esi
xor ecx, ebx
xor ebx, esi
mov edx, ecx
xor edx, eax
xor ecx, esi
mov esi, dword [esp + 4]
mov dword [esi], edx
xor edx, ebx
xor ebx, eax
mov eax, dword [esp]
mov dword [eax - 0xc], ebx
mov dword [eax - 8], edx
mov dword [eax - 4], ecx
xor eax, eax
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret