Function at 0x10206890
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov ebp, dword [esp + 0x50]
movzx ebx, byte [ebp]
movzx eax, byte [ebp + 1]
inc ebp
movzx ecx, byte [ebp + 1]
inc ebp
movzx edx, byte [ebp + 1]
inc ebp
inc ebp
shl edx, 0x18
inc ebp
shl ecx, 0x10
shl eax, 8
or ebx, eax
movzx eax, byte [ebp - 1]
or ebx, ecx
movzx ecx, byte [ebp]
or ebx, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 0x10
inc ebp
shl ecx, 8
or eax, ecx
movzx ecx, byte [ebp]
or eax, edx
inc ebp
movzx edx, byte [ebp + 1]
shl ecx, 0x18
inc ebp
or eax, ecx
movzx ecx, byte [ebp - 1]
shl edx, 8
or ecx, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 0x10
or ecx, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 0x18
inc ebp
movzx esi, byte [ebp]
or ecx, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 8
or esi, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 0x10
or esi, edx
movzx edx, byte [ebp + 1]
inc ebp
shl edx, 0x18
or esi, edx
mov edx, dword [esp + 0x4c]
inc ebp
add edx, 0xfffffff0
mov edi, dword [esp + 0x44]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], edx
js 0x10206add
lea eax, [edx + 0x10]
shr eax, 4
mov dword [esp + 0x4c], eax
neg eax
shl eax, 4
add edx, eax
mov dword [esp + 0x18], edx
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
inc esi
movzx edx, byte [esi + 1]
inc esi
shl ecx, 8
or eax, ecx
movzx ecx, byte [esi + 1]
inc esi
shl edx, 0x10
or eax, edx
shl ecx, 0x18
or eax, ecx
mov dword [esp + 0x1c], eax
inc esi
movzx edx, byte [esi + 1]
mov dword [esp + 0x2c], eax
movzx eax, byte [esi]
inc esi
movzx ecx, byte [esi + 1]
inc esi
shl edx, 8
or eax, edx
movzx edx, byte [esi + 1]
inc esi
shl ecx, 0x10
or eax, ecx
shl edx, 0x18
or eax, edx
mov dword [esp + 0x20], eax
inc esi
movzx ecx, byte [esi + 1]
mov dword [esp + 0x30], eax
movzx eax, byte [esi]
inc esi
movzx edx, byte [esi + 1]
inc esi
shl ecx, 8
or eax, ecx
movzx ecx, byte [esi + 1]
inc esi
shl edx, 0x10
or eax, edx
shl ecx, 0x18
or eax, ecx
mov dword [esp + 0x24], eax
inc esi
movzx edx, byte [esi + 1]
mov dword [esp + 0x34], eax
movzx eax, byte [esi]
inc esi
movzx ecx, byte [esi + 1]
inc esi
shl edx, 8
or eax, edx
movzx edx, byte [esi + 1]
inc esi
shl ecx, 0x10
or eax, ecx
mov ecx, dword [esp + 0x40]
shl edx, 0x18
or eax, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x2c]
push eax
push ecx
inc esi
call fcn.102053b0
mov edx, dword [esp + 0x3c]
xor edx, dword [esp + 0x58]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor ecx, dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x40]
xor edx, dword [esp + 0x1c]
xor eax, ebx
add esp, 8
mov byte [edi], al
inc edi
mov ebx, eax
inc edi
inc edi
shr ebx, 8
mov byte [edi - 2], bl
mov ebx, eax
shr eax, 0x18
inc edi
inc edi
shr ebx, 0x10
mov byte [edi - 3], bl
mov byte [edi - 2], al
mov byte [edi - 1], cl
mov eax, ecx
shr eax, 8
mov byte [edi], al
inc edi
mov eax, ecx
inc edi
shr eax, 0x10
mov byte [edi - 1], al
mov eax, dword [esp + 0x50]
shr ecx, 0x18
mov byte [edi], cl
mov byte [edi + 1], al
inc edi
inc edi
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 8
mov byte [edi], cl
inc edi
mov ecx, eax
shr ecx, 0x10
mov byte [edi], cl
inc edi
shr eax, 0x18
mov byte [edi], al
mov byte [edi + 1], dl
inc edi
inc edi
mov eax, edx
shr eax, 8
mov byte [edi], al
mov eax, dword [esp + 0x24]
mov ecx, edx
inc edi
shr ecx, 0x10
mov byte [edi], cl
mov ecx, dword [esp + 0x28]
inc edi
shr edx, 0x18
mov byte [edi], dl
mov edx, dword [esp + 0x20]
inc edi
sub dword [esp + 0x4c], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], ecx
jne 0x10206961
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x10]
cmp edx, 0xfffffff0
je 0x10206c50
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
inc esi
movzx ecx, byte [esi + 1]
shl edx, 8
or eax, edx
inc esi
movzx edx, byte [esi + 1]
inc esi
shl edx, 0x18
shl ecx, 0x10
or eax, ecx
or eax, edx
inc esi
movzx ecx, byte [esi + 1]
mov dword [esp + 0x2c], eax
movzx eax, byte [esi]
inc esi
movzx edx, byte [esi + 1]
inc esi
shl ecx, 8
or eax, ecx
movzx ecx, byte [esi + 1]
shl edx, 0x10
or eax, edx
inc esi
shl ecx, 0x18
or eax, ecx
inc esi
movzx edx, byte [esi + 1]
mov dword [esp + 0x30], eax
movzx eax, byte [esi]
inc esi
movzx ecx, byte [esi + 1]
shl edx, 8
or eax, edx
inc esi
movzx edx, byte [esi + 1]
inc esi
shl edx, 0x18
shl ecx, 0x10
or eax, ecx
or eax, edx
inc esi
movzx ecx, byte [esi + 1]
mov dword [esp + 0x34], eax
movzx eax, byte [esi]
inc esi
movzx edx, byte [esi + 2]
shl ecx, 8
inc esi
or eax, ecx
movzx ecx, byte [esi]
shl edx, 8
or edx, ecx
shl edx, 0x10
or edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.102053b0
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
xor edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
xor ecx, dword [esp + 0x58]
xor eax, ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x1c]
lea edi, [edi + esi + 0x10]
add esi, 0xf
add esp, 8
mov dword [esp + 0x28], edx
cmp esi, 0xf
ja case.default.0x10206bc7
jmp dword [esi*4 + 0x10206cd4]
dec edi
mov edx, eax
shr edx, 0x18
mov byte [edi], dl
dec edi
mov edx, eax
shr edx, 0x10
mov byte [edi], dl
dec edi
mov edx, eax
shr edx, 8
mov byte [edi], dl
mov edx, dword [esp + 0x28]
dec edi
mov byte [edi], al
dec edi
mov eax, ecx
shr eax, 0x18
mov byte [edi], al
dec edi
mov eax, ecx
shr eax, 0x10
mov byte [edi], al
dec edi
mov eax, ecx
shr eax, 8
mov byte [edi], al
dec edi
mov byte [edi], cl
dec edi
mov ecx, edx
shr ecx, 0x18
mov byte [edi], cl
dec edi
mov eax, edx
shr eax, 0x10
mov byte [edi], al
dec edi
mov ecx, edx
shr ecx, 8
mov byte [edi], cl
dec edi
mov byte [edi], dl
mov edx, dword [esp + 0x4c]
dec edi
shr edx, 0x18
mov byte [edi], dl
mov eax, dword [esp + 0x4c]
dec edi
shr eax, 0x10
mov byte [edi], al
mov ecx, dword [esp + 0x4c]
dec edi
shr ecx, 8
mov byte [edi], cl
mov dl, byte [esp + 0x4c]
mov byte [edi - 1], dl
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
mov byte [ebp - 0x10], bl
sub ebp, 0x10
inc ebp
inc ebp
inc ebp
mov edx, ebx
shr edx, 8
mov byte [ebp - 2], dl
inc ebp
mov edx, ebx
shr edx, 0x10
mov byte [ebp - 2], dl
inc ebp
shr ebx, 0x18
mov byte [ebp - 2], bl
mov byte [ebp - 1], al
mov edx, eax
shr edx, 8
mov byte [ebp], dl
inc ebp
mov edx, eax
inc ebp
shr edx, 0x10
mov byte [ebp - 1], dl
inc ebp
shr eax, 0x18
mov byte [ebp - 1], al
mov byte [ebp], cl
inc ebp
mov eax, ecx
inc ebp
shr eax, 8
mov byte [ebp - 1], al
mov eax, dword [esp + 0x14]
mov edx, ecx
shr edx, 0x10
mov byte [ebp], dl
inc ebp
shr ecx, 0x18
mov byte [ebp], cl
inc ebp
mov byte [ebp], al
inc ebp
mov ecx, eax
shr ecx, 8
mov byte [ebp], cl
inc ebp
mov edx, eax
pop edi
shr edx, 0x10
mov byte [ebp], dl
shr eax, 0x18
pop esi
mov byte [ebp + 1], al
pop ebp
pop ebx
add esp, 0x2c
ret