Function at 0x10009750
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
mov eax, dword [esp + 0x24]
push ebp
mov byte [esp + 8], al
push esi
sar eax, 6
mov byte [esp + 0xd], al
push edi
sar eax, 6
mov byte [esp + 0x12], al
push 4
sar eax, 6
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x14]
and eax, 0xff3f3f3f
push 0x100535f0
shl eax, 2
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov byte [esp + 0x20], cl
mov cl, byte [eax + 2]
mov byte [esp + 0x21], dl
mov dl, byte [eax + 3]
mov byte [esp + 0x22], cl
mov cl, byte [eax + 4]
mov byte [esp + 0x23], dl
mov dl, byte [eax + 5]
mov byte [esp + 0x24], cl
mov cl, byte [eax + 6]
mov byte [esp + 0x25], dl
mov dl, byte [eax + 7]
mov byte [esp + 0x26], cl
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x27], dl
mov eax, dword [esp + 0x24]
mov esi, eax
mov edx, ecx
sar eax, 1
xor eax, edx
and ecx, 0xd5555555
and eax, 0x55555555
and esi, 0x55555555
shl ecx, 1
xor eax, edx
or ecx, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.100096f0
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
push 4
lea edx, [esp + 0x24]
push 0x100535f0
lea eax, [esp + 0x34]
push edx
push eax
call fcn.100096f0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add esp, 0x20
test edx, edx
jl 0x10009847
mov ebp, 0x10053570
mov dword [esp + 0x34], 8
mov dword [esp + 0x28], ebp
jmp 0x1000985a
mov ebp, 0x100535e8
mov dword [esp + 0x34], 0xfffffff8
neg edx
mov dword [esp + 0x28], ebp
dec edx
js 0x10009a79
inc edx
push ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 8
mov edx, dword [esp + 0x34]
mov ebx, eax
xor ebx, ecx
and ebx, edx
mov edx, dword [ebp]
xor edx, ebx
xor edx, ecx
mov dword [esp + 0x1c], edx
mov ebp, dword [ebp + 4]
xor ebp, ebx
mov ebx, dword [esp + 0x38]
xor ebp, eax
and edx, 0xff
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x2c]
add ebp, ebx
mov ebx, dword [edx + 0x100541f0]
xor edi, ebx
mov ebx, dword [edx + 0x100549f0]
mov edx, dword [esp + 0x1d]
xor esi, ebx
and edx, 0xff
mov dword [esp + 0x2c], ebp
mov ebx, dword [edx + 0x100542f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054af0]
mov edx, dword [esp + 0x1e]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100543f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054bf0]
mov edx, dword [esp + 0x1f]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100544f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054cf0]
mov edx, dword [esp + 0x20]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100545f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054df0]
mov edx, dword [esp + 0x21]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100546f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054ef0]
mov edx, dword [esp + 0x22]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100547f0]
xor edi, ebx
mov ebx, dword [edx + 0x10054ff0]
mov edx, dword [esp + 0x23]
xor esi, ebx
and edx, 0xff
mov ebx, dword [edx + 0x100548f0]
xor edi, ebx
mov ebx, dword [edx + 0x100550f0]
mov edx, dword [esp + 0x34]
xor esi, ebx
mov ebx, esi
xor ebx, edi
and ebx, edx
mov edx, dword [ebp]
xor edx, ebx
xor edx, edi
mov dword [esp + 0x1c], edx
mov ebp, dword [ebp + 4]
xor ebp, ebx
mov ebx, dword [esp + 0x38]
xor ebp, esi
and edx, 0xff
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x2c]
add ebp, ebx
xor ecx, dword [edx + 0x100541f0]
mov dword [esp + 0x2c], ebp
xor eax, dword [edx + 0x100549f0]
mov edx, dword [esp + 0x1d]
and edx, 0xff
xor ecx, dword [edx + 0x100542f0]
xor eax, dword [edx + 0x10054af0]
mov edx, dword [esp + 0x1e]
and edx, 0xff
xor ecx, dword [edx + 0x100543f0]
xor eax, dword [edx + 0x10054bf0]
mov edx, dword [esp + 0x1f]
and edx, 0xff
xor ecx, dword [edx + 0x100544f0]
xor eax, dword [edx + 0x10054cf0]
mov edx, dword [esp + 0x20]
and edx, 0xff
xor ecx, dword [edx + 0x100545f0]
xor eax, dword [edx + 0x10054df0]
mov edx, dword [esp + 0x21]
and edx, 0xff
xor ecx, dword [edx + 0x100546f0]
xor eax, dword [edx + 0x10054ef0]
mov edx, dword [esp + 0x22]
and edx, 0xff
xor ecx, dword [edx + 0x100547f0]
xor eax, dword [edx + 0x10054ff0]
mov edx, dword [esp + 0x23]
and edx, 0xff
xor ecx, dword [edx + 0x100548f0]
xor eax, dword [edx + 0x100550f0]
mov edx, dword [esp + 0x10]
dec edx
mov dword [esp + 0x10], edx
jne 0x1000986f
mov edx, dword [esp + 0x14]
xor edi, ecx
neg ebx
xor esi, eax
xor ecx, edi
shl ebx, 4
xor eax, esi
add ebp, ebx
xor edi, ecx
xor esi, eax
dec edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x14], edx
jne 0x10009867
pop ebx
and eax, 0xf8787878
and esi, 0xf8787878
sar ecx, 3
shl eax, 1
and ecx, 0xf0f0f0f
push 8
sar edi, 3
or eax, ecx
and edi, 0xf0f0f0f
shl esi, 1
lea ecx, [esp + 0x14]
push 0x100539f0
lea edx, [esp + 0x20]
or esi, edi
push ecx
push edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
call fcn.100096f0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x23]
add esp, 0x10
mov byte [eax], cl
mov cl, byte [esp + 0x12]
mov byte [eax + 1], ch
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x14]
mov byte [eax + 3], dl
mov dl, byte [esp + 0x17]
mov byte [eax + 4], cl
mov cl, byte [esp + 0x16]
pop edi
mov byte [eax + 5], ch
mov byte [eax + 6], cl
mov byte [eax + 7], dl
pop esi
xor eax, eax
pop ebp
add esp, 0x18
ret