Function at 0x1000208a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x100e6dd4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov edx, ecx
mov eax, dword [edx + 4]
push esi
push edi
mov dword [ebp - 0x28], edx
push 0x20
test eax, eax
jne 0x100020d2
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
pop eax
mov byte [ebp - 5], 1
mov byte [ebp - 6], 1
mov word [ebp - 8], ax
jmp 0x100022d0
pop ebx
cmp eax, 1
jne 0x10002134
mov eax, dword [edx]
cmp word [eax + 0x14], bx
jne 0x10002134
mov edx, dword [eax]
mov esi, dword [ebp + 8]
cmp esi, edx
jne 0x100020f9
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov al, 1
jmp 0x100022e6
xor edx, esi
push 0x1f
pop edi
test edx, edx
js 0x10002112
mov edx, dword [eax]
dec edi
mov ebx, edx
xor ebx, esi
mov ecx, edi
shr ebx, cl
test bl, 1
je 0x10002104
push 0x1f
pop ecx
sub ecx, edi
mov word [eax + 0x14], cx
mov ecx, edi
mov edx, esi
shr edx, cl
mov ecx, dword [ebp + 0xc]
and edx, 1
mov dword [eax + edx*4 + 0xc], ecx
mov dword [eax + edx*4 + 4], esi
jmp 0x100022e4
mov edx, dword [edx]
movzx esi, word [edx + 0x14]
mov edi, dword [ebp + 8]
push esi
sub ebx, esi
push edi
mov ecx, ebx
mov dword [ebp - 0x20], edx
call fcn.10001f40
push esi
push dword [edx]
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.10001f40
mov ecx, dword [ebp - 0x24]
jmp 0x1000219b
dec ebx
mov esi, edi
mov ecx, ebx
shr esi, cl
and esi, 1
cmp byte [esi + edx + 0x16], 0
jne 0x10002230
mov edx, dword [edx + esi*4 + 4]
imul edx, edx, 0x18
add edx, dword [ebp - 0x20]
movzx esi, word [edx + 0x14]
push esi
sub ebx, esi
push edi
mov ecx, ebx
call fcn.10001f40
push esi
push dword [edx]
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.10001f40
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
je 0x1000215d
movzx eax, word [edx + 0x14]
mov dword [ebp - 0x24], eax
movzx eax, ax
dec eax
lea esi, [eax + ebx]
mov dword [ebp - 0x20], eax
mov eax, dword [edx]
xor eax, edi
mov ecx, esi
shr eax, cl
test al, 1
jne 0x100021cf
mov edi, dword [edx]
dec dword [ebp - 0x20]
dec esi
mov eax, edi
xor eax, dword [ebp + 8]
mov ecx, esi
shr eax, cl
test al, 1
je 0x100021be
mov eax, dword [ebp - 0x24]
push 6
pop ecx
mov esi, edx
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp + 8]
sub eax, ecx
mov word [ebp - 8], cx
add ecx, ebx
dec eax
mov word [edx + 0x14], ax
mov eax, esi
shr eax, cl
mov ecx, dword [ebp + 0xc]
push 2
and eax, 1
mov dword [edx + eax*4 + 0xc], ecx
mov byte [eax + edx + 0x16], 1
mov ecx, edx
sub ecx, eax
mov byte [ecx + 0x17], 0
pop ecx
sub ecx, eax
mov dword [edx + eax*4 + 4], esi
mov eax, dword [ebp - 0x28]
mov esi, dword [eax + 4]
sub esp, 0x18
mov dword [edx + ecx*4], esi
push 6
pop ecx
lea esi, [ebp - 0x1c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x100022df
lea eax, [edx + esi*4 + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
cmp edi, eax
jne 0x10002249
mov eax, dword [ebp + 0xc]
mov dword [edx + esi*4 + 0xc], eax
jmp 0x100020f2
lea ecx, [ebx - 1]
xor eax, edi
shr eax, cl
mov dword [ebp - 0x20], ecx
test al, 1
jne 0x1000226d
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, edi
xor eax, dword [ebp + 8]
shr eax, cl
test al, 1
je 0x1000225c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
shr eax, cl
sub ebx, dword [ebp - 0x20]
and eax, 1
mov ecx, eax
shl ecx, 2
mov dword [ebp + ecx - 0x10], edi
mov dword [ebp - 0x2c], ecx
lea edi, [ebp - 0xc]
sub edi, ecx
mov ecx, dword [edx + esi*4 + 0xc]
mov dword [edi], ecx
lea ecx, [ebp - 5]
sub ecx, eax
mov byte [ecx], 1
mov ecx, dword [ebp - 0x2c]
mov byte [ebp + eax - 6], 1
mov eax, dword [ebp + 8]
mov dword [ebp + ecx - 0x18], eax
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
mov dword [ebp - 0x1c], edi
lea edi, [ebp - 0x14]
sub edi, ecx
mov ecx, dword [ebp - 0x1c]
mov byte [esi + edx + 0x16], 0
mov edx, dword [ebp - 0x28]
mov dword [edi], ecx
mov ecx, dword [edx + 4]
dec ebx
mov word [ebp - 8], bx
mov dword [eax], ecx
sub esp, 0x18
push 6
pop ecx
mov edi, esp
lea esi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
call fcn.10002039
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b0660
leave
ret 8