Function at 0x1002105c
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x634
xor esi, esi
lea eax, [esp + 0x2c]
mov dword [eax], esi
mov word [eax + 4], si
mov edi, 0x200
lea eax, [esp + 0x234]
push edi
push esi
push eax
call fcn.10031f20
add esp, 0xc
lea ebx, [esp + 0x434]
push edi
push esi
push ebx
call fcn.10031f20
add esp, 0xc
lea ebp, [esp + 0x34]
push edi
push esi
push ebp
call fcn.10031f20
add esp, 0xc
mov eax, 0x100
push eax
push ebp
push eax
push ebx
push eax
lea eax, [esp + 0x248]
push eax
push 3
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x668]
call fcn.10032461
add esp, 0x24
mov eax, 0x48c0481
mov ebx, esp
mov dword [ebx + 4], eax
mov word [ebx + 8], 0x4f0
mov word [ebx + 0x12], si
mov edi, 0x489002e
mov dword [ebx], edi
movups xmm0, xmmword [ebx + 2]
xorps xmm0, xmmword [0x100418c0]
movups xmmword [ebx + 2], xmm0
push ebx
push ebp
call fcn.100326e3
add esp, 8
mov dword [esp + 0x28], eax
mov eax, 0x48c0481
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0x4f10488
mov word [ebx + 0x16], si
mov dword [ebx], edi
xor eax, eax
inc eax
lea ecx, [eax + 0x4ec]
xor word [esp + eax*2], cx
inc eax
cmp eax, 0xb
jne 0x10021122
xor esi, esi
mov word [esp + 0x16], si
push ebx
lea eax, [esp + 0x38]
push eax
call fcn.100326e3
add esp, 8
mov dword [esp + 0x24], eax
mov edi, 0x49c0482
mov dword [esp + 4], edi
mov word [esp + 8], 0x4f0
mov word [esp + 0x12], si
mov ebp, 0x495002e
mov dword [esp], ebp
movups xmm0, xmmword [esp + 2]
xorps xmm0, xmmword [0x100418c0]
movups xmmword [esp + 2], xmm0
push ebx
lea eax, [esp + 0x38]
push eax
call fcn.100326e3
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 4], edi
mov dword [esp + 8], 0x4f10488
mov word [esp + 0x16], si
mov dword [esp], ebp
xor eax, eax
inc eax
lea ecx, [eax + 0x4ec]
xor word [esp + eax*2], cx
inc eax
cmp eax, 0xb
jne 0x100211a2
xor edi, edi
mov word [esp + 0x16], di
push ebx
lea eax, [esp + 0x38]
push eax
call fcn.100326e3
add esp, 8
mov dword [esp + 0x1c], eax
mov ebp, 0x49b049e
mov dword [esp + 4], ebp
mov word [esp + 8], 0x4f0
mov word [esp + 0x12], di
mov esi, 0x49d002e
mov dword [esp], esi
movups xmm0, xmmword [esp + 2]
xorps xmm0, xmmword [0x100418c0]
movups xmmword [esp + 2], xmm0
push ebx
lea eax, [esp + 0x38]
push eax
call fcn.100326e3
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x4f10488
mov word [esp + 0x16], di
mov dword [esp], esi
xor eax, eax
inc eax
lea ecx, [eax + 0x4ec]
xor word [esp + eax*2], cx
inc eax
cmp eax, 0xb
jne 0x10021222
xor esi, esi
mov word [esp + 0x16], si
push ebx
lea edi, [esp + 0x38]
push edi
call fcn.100326e3
add esp, 8
mov dword [esp + 4], 0x489048a
mov word [esp + 8], 0x4f0
mov word [esp + 0x12], si
mov dword [esp], 0x49d002e
movups xmm0, xmmword [esp + 2]
xorps xmm0, xmmword [0x100418c0]
movups xmmword [esp + 2], xmm0
xor ecx, ecx
cmp dword [esp + 0x28], 0
sete cl
cmp dword [esp + 0x24], 0
mov edx, 2
cmovne edx, ecx
cmp dword [esp + 0x20], 0
mov ecx, 4
cmovne ecx, edx
cmp dword [esp + 0x1c], 0
mov edx, 8
cmovne edx, ecx
cmp dword [esp + 0x18], 0
mov ecx, 0x10
cmovne ecx, edx
test eax, eax
mov esi, 0x20
cmovne esi, ecx
push ebx
push edi
call fcn.100326e3
add esp, 8
test eax, eax
mov edi, 0x40
cmovne edi, esi
call fcn.10023e58
xor ecx, ecx
test edi, eax
setne cl
mov eax, ecx
add esp, 0x634
pop esi
pop edi
pop ebx
pop ebp
ret