Function at 0x10211b40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x890
mov eax, dword [0x102a8930]
xor eax, esp
mov dword [esp + 0x88c], eax
mov eax, dword [esp + 0x894]
mov ecx, dword [esp + 0x89c]
mov edx, dword [esp + 0x8a4]
push ebx
push ebp
mov ebp, dword [esp + 0x8a8]
push esi
mov esi, dword [esp + 0x8b4]
push edi
mov edi, dword [esp + 0x8bc]
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
call fcn.101ec180
dec eax
mov dword [esp + 0x28], eax
add eax, 7
cdq
and edx, 7
add eax, edx
mov ebx, eax
push 0x3f
lea eax, [esp + 0x865]
push 0
sar ebx, 3
push eax
mov dword [ebp], ebx
mov byte [esp + 0x86c], 0
call fcn.10228aa0
lea ecx, [edi + esi + 2]
add esp, 0x10
cmp ebx, ecx
jge 0x10211bd6
or eax, 0xffffffff
jmp 0x10211dd4
lea edx, [ebx + ebx*2]
lea eax, [edx + edi*2]
sub eax, esi
add eax, 0xb
push 1
push eax
call fcn.10227692
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10211bfe
mov eax, 0xfffffffe
jmp 0x10211dd4
lea ecx, [edi + eax + 1]
lea edx, [edi + esi]
lea ebp, [edx + ecx + 9]
mov ecx, ebp
sub ecx, esi
add ecx, ebx
mov dword [esp + 0x14], ecx
sub ecx, esi
add ecx, ebx
mov dword [esp + 0x1c], ecx
test edi, edi
je 0x10211c2d
push edi
push eax
call fcn.101ef540
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x18]
push esi
lea eax, [edi + eax + 1]
push ecx
add eax, 8
push eax
call fcn.10228b20
mov eax, dword [esp + 0x1c]
push edi
push eax
lea eax, [edi + eax + 1]
lea edx, [esi + eax + 8]
push edx
call fcn.10228b20
mov eax, dword [esp + 0x8c0]
add esp, 0x18
cmp eax, 4
je 0x10211c88
cmp eax, 6
je 0x10211c88
mov ecx, dword [esp + 0x10]
lea eax, [edi + esi + 8]
push eax
lea eax, [edi + ecx + 1]
push eax
lea edx, [esp + 0x864]
push edx
call fcn.101fc890
add esp, 0xc
jmp 0x10211cae
mov ecx, dword [esp + 0x10]
lea eax, [edi + esi + 8]
push eax
lea eax, [edi + ecx + 1]
push eax
lea edx, [esi*8]
push edx
lea eax, [esp + 0x868]
push eax
call fcn.101fb430
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, ebp
sub ecx, edi
sub ecx, esi
lea eax, [ecx + ebx]
push edi
mov byte [eax - 2], 1
push edx
dec eax
push eax
call fcn.10228b20
mov edx, dword [esp + 0x8b4]
push esi
lea ecx, [esp + 0x86c]
mov eax, ebx
sub eax, esi
push ecx
mov ecx, dword [esp + 0x28]
lea edi, [eax - 1]
push edx
mov dword [esp + 0x30], eax
call fcn.10211380
mov edx, dword [esp + 0x30]
add esp, 0x18
test edx, edx
jle 0x10211d11
mov edi, dword [esp + 0x14]
mov eax, ebp
sub edi, ebp
mov dword [esp + 0x14], edx
mov cl, byte [edi + eax]
xor byte [eax], cl
inc eax
sub dword [esp + 0x14], 1
jne 0x10211d04
mov edi, dword [esp + 0x1c]
lea ecx, [ebx*8]
sub ecx, dword [esp + 0x24]
dec edx
mov eax, 0xff
push edx
sar eax, cl
push ebp
push edi
and byte [ebp], al
call fcn.10228b20
mov edx, edi
push esi
lea ecx, [esp + 0x86c]
sub edx, esi
push ecx
lea eax, [edx + ebx - 1]
push eax
call fcn.10228b20
push ebx
lea ecx, [esp + 0x460]
push edi
push ecx
mov byte [edi + ebx - 1], 0xbc
call fcn.101ebf30
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x20bc]
add esp, 0x24
test eax, eax
je 0x10211d95
cmp eax, 1
jne 0x10211d7d
cmp dword [ecx + 0x1cac], 0
je 0x10211d95
push ecx
lea edx, [esp + 0x448]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.102102a0
add esp, 0xc
jmp 0x10211db2
push ecx
add ecx, 0x830
push ecx
lea ecx, [esp + 0x44c]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.101f0790
add esp, 0x10
mov ecx, dword [esp + 0x20]
push ebx
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.101ecb60
mov edx, dword [esp + 0x1c]
push edx
call fcn.102264a9
add esp, 0x10
mov eax, 1
mov ecx, dword [esp + 0x89c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1022649a
add esp, 0x890
ret