Function at 0x100013a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov eax, ecx
mov esi, edx
shr eax, 4
and eax, 0xf0f0f0f
and esi, 0xf0f0f0f
xor eax, esi
xor edx, eax
shl eax, 4
xor ecx, eax
mov eax, edx
mov esi, ecx
shr eax, 0x10
and esi, 0xffff
xor eax, esi
xor ecx, eax
shl eax, 0x10
xor edx, eax
mov eax, ecx
shr eax, 2
mov esi, edx
and eax, 0x33333333
and esi, 0x33333333
xor eax, esi
xor edx, eax
shl eax, 2
xor ecx, eax
mov eax, edx
shr eax, 8
mov esi, ecx
and eax, 0xff00ff
and esi, 0xff00ff
xor eax, esi
xor ecx, eax
shl eax, 8
xor edx, eax
mov eax, ecx
shr eax, 1
mov esi, edx
and eax, 0x55555555
and esi, 0x55555555
xor eax, esi
xor edx, eax
add eax, eax
xor ecx, eax
mov eax, ecx
add ecx, ecx
shr eax, 0x1f
or eax, ecx
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or ecx, edx
mov edx, dword [esp + 0x2c]
test edx, edx
mov edx, dword [esp + 0x28]
je 0x1000162f
lea esi, [edx + 0xc]
mov dword [esp + 0x28], 8
mov edx, dword [esi - 8]
xor edx, ecx
mov dword [esp + 0x10], edx
mov ebp, edx
mov bl, byte [esp + 0x12]
and edx, 3
shr ebp, 4
and ebx, 3
and ebp, 0xf3f
shl ebx, 0xc
or ebp, ebx
mov ebx, dword [esp + 0x12]
shr ebx, 4
and ebx, 0xf3f
mov word [esp + 0x18], bp
shl edx, 0xc
or ebx, edx
mov edx, dword [esi - 0xc]
xor edx, ecx
mov word [esp + 0x1a], bx
and edx, 0x3f3f3f3f
mov dword [esp + 0x10], edx
and edx, 0xff
mov ebx, dword [esp + 0x13]
mov ebp, dword [esp + 0x12]
and ebx, 0xff
and ebp, 0xff
mov ebx, dword [ebx*4 + 0x10006630]
or ebx, dword [ebp*4 + 0x10006430]
mov ebp, dword [esp + 0x11]
and ebp, 0xff
or ebx, dword [ebp*4 + 0x10006230]
mov ebp, dword [edx*4 + 0x10006030]
mov edx, dword [esp + 0x1b]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006730]
mov edx, dword [esp + 0x1a]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006530]
mov edx, dword [esp + 0x19]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006330]
mov edx, dword [esp + 0x18]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006130]
mov edx, dword [esi]
or ebx, ebp
xor eax, ebx
xor edx, eax
mov dword [esp + 0x10], edx
mov ebp, edx
mov bl, byte [esp + 0x12]
and edx, 3
shr ebp, 4
and ebx, 3
and ebp, 0xf3f
shl ebx, 0xc
or ebp, ebx
mov ebx, dword [esp + 0x12]
shr ebx, 4
and ebx, 0xf3f
mov word [esp + 0x18], bp
shl edx, 0xc
or ebx, edx
mov edx, dword [esi - 4]
xor edx, eax
mov word [esp + 0x1a], bx
and edx, 0x3f3f3f3f
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x13]
mov ebp, dword [esp + 0x12]
and ebx, 0xff
and ebp, 0xff
mov ebx, dword [ebx*4 + 0x10006630]
or ebx, dword [ebp*4 + 0x10006430]
mov ebp, dword [esp + 0x11]
and ebp, 0xff
or ebx, dword [ebp*4 + 0x10006230]
and edx, 0xff
add esi, 0x10
mov ebp, dword [edx*4 + 0x10006030]
mov edx, dword [esp + 0x1b]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006730]
mov edx, dword [esp + 0x1a]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006530]
mov edx, dword [esp + 0x19]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006330]
mov edx, dword [esp + 0x18]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006130]
mov edx, dword [esp + 0x28]
or ebx, ebp
xor ecx, ebx
dec edx
mov dword [esp + 0x28], edx
jne 0x1000145d
jmp 0x100017fe
lea esi, [edx + 0x74]
mov edi, 8
mov edx, dword [esi + 8]
xor edx, ecx
mov dword [esp + 0x10], edx
mov ebp, edx
mov bl, byte [esp + 0x12]
and edx, 3
shr ebp, 4
and ebx, 3
and ebp, 0xf3f
shl ebx, 0xc
or ebp, ebx
mov ebx, dword [esp + 0x12]
shr ebx, 4
and ebx, 0xf3f
mov word [esp + 0x18], bp
shl edx, 0xc
or ebx, edx
mov edx, dword [esi + 4]
xor edx, ecx
mov word [esp + 0x1a], bx
and edx, 0x3f3f3f3f
mov dword [esp + 0x10], edx
and edx, 0xff
mov ebx, dword [esp + 0x13]
mov ebp, dword [esp + 0x12]
and ebx, 0xff
and ebp, 0xff
mov ebx, dword [ebx*4 + 0x10006630]
or ebx, dword [ebp*4 + 0x10006430]
mov ebp, dword [esp + 0x11]
and ebp, 0xff
or ebx, dword [ebp*4 + 0x10006230]
mov ebp, dword [edx*4 + 0x10006030]
mov edx, dword [esp + 0x1b]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006730]
mov edx, dword [esp + 0x1a]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006530]
mov edx, dword [esp + 0x19]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006330]
mov edx, dword [esp + 0x18]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006130]
mov edx, dword [esi]
or ebx, ebp
xor eax, ebx
xor edx, eax
mov dword [esp + 0x10], edx
mov ebp, edx
mov bl, byte [esp + 0x12]
and edx, 3
shr ebp, 4
and ebx, 3
and ebp, 0xf3f
shl ebx, 0xc
or ebp, ebx
mov ebx, dword [esp + 0x12]
shr ebx, 4
and ebx, 0xf3f
mov word [esp + 0x18], bp
shl edx, 0xc
or ebx, edx
mov edx, dword [esi - 4]
xor edx, eax
mov word [esp + 0x1a], bx
and edx, 0x3f3f3f3f
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x13]
mov ebp, dword [esp + 0x12]
and ebx, 0xff
and ebp, 0xff
mov ebx, dword [ebx*4 + 0x10006630]
or ebx, dword [ebp*4 + 0x10006430]
mov ebp, dword [esp + 0x11]
and ebp, 0xff
or ebx, dword [ebp*4 + 0x10006230]
and edx, 0xff
sub esi, 0x10
mov ebp, dword [edx*4 + 0x10006030]
mov edx, dword [esp + 0x1b]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006730]
mov edx, dword [esp + 0x1a]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006530]
mov edx, dword [esp + 0x19]
and edx, 0xff
or ebx, ebp
mov ebp, dword [edx*4 + 0x10006330]
mov edx, dword [esp + 0x18]
and edx, 0xff
or ebx, ebp
or ebx, dword [edx*4 + 0x10006130]
xor ecx, ebx
dec edi
jne 0x10001637
mov edi, dword [esp + 0x24]
mov edx, eax
shl edx, 0x1f
shr eax, 1
or edx, eax
mov eax, ecx
shl eax, 0x1f
shr ecx, 1
or eax, ecx
mov esi, edx
mov ecx, eax
and esi, 0x55555555
shr ecx, 1
and ecx, 0x55555555
xor ecx, esi
xor edx, ecx
add ecx, ecx
xor eax, ecx
mov ecx, edx
shr ecx, 8
mov esi, eax
and ecx, 0xff00ff
and esi, 0xff00ff
xor ecx, esi
xor eax, ecx
shl ecx, 8
xor edx, ecx
mov ecx, eax
shr ecx, 2
mov esi, edx
and ecx, 0x33333333
and esi, 0x33333333
xor ecx, esi
xor edx, ecx
shl ecx, 2
xor eax, ecx
mov ecx, edx
mov esi, eax
shr ecx, 0x10
and esi, 0xffff
xor ecx, esi
xor eax, ecx
shl ecx, 0x10
xor edx, ecx
mov ecx, eax
shr ecx, 4
mov esi, edx
and ecx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor ecx, esi
mov esi, ecx
shl ecx, 4
xor esi, edx
xor ecx, eax
mov dword [edi], esi
mov dword [edi + 4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret