Function at 0x1000b070
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov bl, byte [esp + 0x14]
push ebp
push esi
test bl, 2
push edi
je 0x1000b08b
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x1000b118
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov esi, ecx
mov edx, eax
shr esi, 4
and edx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor edx, esi
xor eax, edx
shl edx, 4
xor ecx, edx
mov esi, eax
mov edx, ecx
and edx, 0xffff
shr esi, 0x10
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov esi, ecx
mov edx, eax
shr esi, 2
and edx, 0x33333333
and esi, 0x33333333
xor edx, esi
xor eax, edx
shl edx, 2
xor ecx, edx
mov esi, eax
mov edx, ecx
shr esi, 8
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, esi
xor ecx, edx
shl edx, 8
xor eax, edx
mov esi, ecx
mov edx, eax
shr esi, 1
and edx, 0x55555555
and esi, 0x55555555
xor edx, esi
xor eax, edx
add edx, edx
xor ecx, edx
mov edi, ecx
mov esi, eax
shr edi, 0x1f
add ecx, ecx
lea edx, [eax + eax]
shr esi, 0x1f
or edi, ecx
or esi, edx
test bl, 1
je 0x1000b26a
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], 8
lea ebp, [eax + 8]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
xor edx, esi
xor ecx, esi
mov eax, edx
add ebp, 0x10
shl eax, 0x1c
shr edx, 4
add eax, edx
mov edx, ecx
shr edx, 8
mov ebx, eax
and edx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x1000ee98]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000ef98]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f098]
mov ebx, eax
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f198]
mov ebx, ecx
shr ebx, 0x18
and ebx, 0x3f
and ecx, 0x3f
or edx, dword [ebx*4 + 0x1000f298]
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
and eax, 0x3f
or edx, dword [ebx*4 + 0x1000f398]
mov ebx, dword [eax*4 + 0x1000ed98]
mov eax, dword [ecx*4 + 0x1000ec98]
mov ecx, dword [ebp - 0x10]
or edx, ebx
or edx, eax
xor edi, edx
mov edx, dword [ebp - 0xc]
xor edx, edi
xor ecx, edi
mov eax, edx
shl eax, 0x1c
shr edx, 4
add eax, edx
mov edx, ecx
shr edx, 8
mov ebx, eax
and edx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x1000ee98]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000ef98]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f098]
mov ebx, eax
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f198]
mov ebx, ecx
shr ebx, 0x18
and ebx, 0x3f
and ecx, 0x3f
or edx, dword [ebx*4 + 0x1000f298]
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
and eax, 0x3f
or edx, dword [ebx*4 + 0x1000f398]
mov ebx, dword [eax*4 + 0x1000ed98]
mov eax, dword [ecx*4 + 0x1000ec98]
or edx, ebx
or edx, eax
mov eax, dword [esp + 0x1c]
xor esi, edx
dec eax
mov dword [esp + 0x1c], eax
jne 0x1000b143
jmp 0x1000b3a8
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x78
lea ebp, [eax + 0x78]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
xor edx, esi
xor ecx, esi
mov eax, edx
shl eax, 0x1c
shr edx, 4
add eax, edx
mov edx, ecx
shr edx, 8
mov ebx, eax
and edx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x1000ee98]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000ef98]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f098]
mov ebx, eax
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f198]
mov ebx, ecx
shr ebx, 0x18
and ebx, 0x3f
and ecx, 0x3f
or edx, dword [ebx*4 + 0x1000f298]
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
and eax, 0x3f
or edx, dword [ebx*4 + 0x1000f398]
mov ebx, dword [eax*4 + 0x1000ed98]
mov eax, dword [ecx*4 + 0x1000ec98]
mov ecx, dword [esp + 0x14]
or edx, ebx
or edx, eax
mov eax, dword [esp + 0x1c]
xor edi, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ecx + eax - 8]
xor edx, edi
mov eax, edx
xor ecx, edi
shl eax, 0x1c
shr edx, 4
add eax, edx
mov edx, ecx
shr edx, 8
mov ebx, eax
and edx, 0x3f
shr ebx, 8
mov edx, dword [edx*4 + 0x1000ee98]
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000ef98]
mov ebx, ecx
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f098]
mov ebx, eax
shr ebx, 0x10
and ebx, 0x3f
or edx, dword [ebx*4 + 0x1000f198]
mov ebx, ecx
shr ebx, 0x18
and ebx, 0x3f
and ecx, 0x3f
or edx, dword [ebx*4 + 0x1000f298]
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
and eax, 0x3f
or edx, dword [ebx*4 + 0x1000f398]
mov ebx, dword [eax*4 + 0x1000ed98]
mov eax, dword [esp + 0x14]
or edx, ebx
mov ebx, dword [ecx*4 + 0x1000ec98]
or edx, ebx
xor esi, edx
sub eax, 0x10
sub ebp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jg 0x1000b279
mov dl, byte [esp + 0x20]
mov eax, edi
mov ecx, esi
shl eax, 0x1f
shr edi, 1
shl ecx, 0x1f
shr esi, 1
or eax, edi
or ecx, esi
test dl, 4
je 0x1000b3d1
mov edx, dword [esp + 0x18]
mov dword [edx + 4], eax
mov dword [edx], ecx
pop edi
pop esi
pop ebp
pop ebx
ret
mov esi, ecx
mov edx, eax
shr esi, 1
and edx, 0x55555555
and esi, 0x55555555
xor edx, esi
pop edi
xor eax, edx
add edx, edx
xor ecx, edx
mov esi, eax
mov edx, ecx
shr esi, 8
and edx, 0xff00ff
and esi, 0xff00ff
xor edx, esi
xor ecx, edx
shl edx, 8
xor eax, edx
mov esi, ecx
mov edx, eax
shr esi, 2
and edx, 0x33333333
and esi, 0x33333333
xor edx, esi
xor eax, edx
shl edx, 2
xor ecx, edx
mov esi, eax
mov edx, ecx
and edx, 0xffff
shr esi, 0x10
xor edx, esi
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov esi, ecx
mov edx, eax
shr esi, 4
and edx, 0xf0f0f0f
and esi, 0xf0f0f0f
xor edx, esi
mov esi, edx
xor esi, eax
mov eax, dword [esp + 0x14]
shl edx, 4
mov dword [eax], esi
xor edx, ecx
pop esi
pop ebp
mov dword [eax + 4], edx
pop ebx
ret