Function at 0x1020c160
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, dword [0x102a8930]
xor eax, esp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x50]
push edi
mov edi, dword [esp + 0x50]
add edi, 0xfffffff0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov ebx, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
js 0x1020c2af
lea edx, [esp + 0x2c]
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, edx
sub ecx, eax
lea eax, [edi + 0x10]
shr eax, 4
mov dword [esp + 0x24], eax
neg eax
shl eax, 4
add edi, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x2c]
push ecx
push esi
push edx
call fcn.10207fd0
mov ebp, dword [esp + 0x1c]
add esp, 0xc
xor ecx, ecx
lea edi, [ebx + 1]
sub ebp, ebx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
lea eax, [esp + ecx + 0x2c]
movzx edx, byte [eax + edx]
xor dl, byte [eax]
add ecx, 4
mov byte [eax + ebx], dl
movzx edx, byte [edi + ebp]
xor dl, byte [eax + 1]
add edi, 4
mov byte [edi - 4], dl
mov edx, dword [esp + 0x10]
mov bl, byte [edx + ecx - 2]
xor bl, byte [eax + 2]
mov byte [edi - 3], bl
movzx edx, byte [edx + ecx - 1]
xor dl, byte [eax + 3]
cmp ecx, 0x10
mov byte [edi - 2], dl
jl 0x1020c1e2
mov dl, 1
mov eax, 0xf
lea esp, [esp]
mov bl, byte [esi + eax]
mov cl, bl
add cl, dl
cmp cl, bl
setb bl
mov byte [esi + eax], cl
test bl, bl
je 0x1020c287
mov dl, byte [esi + eax - 1]
mov cl, dl
add cl, bl
cmp cl, dl
setb bl
mov byte [esi + eax - 1], cl
test bl, bl
je 0x1020c287
mov dl, byte [esi + eax - 2]
mov cl, dl
add cl, bl
cmp cl, dl
setb bl
mov byte [esi + eax - 2], cl
test bl, bl
je 0x1020c287
mov dl, byte [esi + eax - 3]
mov cl, dl
add cl, bl
cmp cl, dl
setb dl
mov byte [esi + eax - 3], cl
test dl, dl
je 0x1020c287
sub eax, 4
jns 0x1020c230
mov eax, 0x10
add dword [esp + 0x14], eax
add dword [esp + 0x10], eax
add dword [esp + 0x1c], eax
add dword [esp + 0x18], eax
sub dword [esp + 0x24], 1
mov ebx, dword [esp + 0x14]
jne 0x1020c1c4
mov edi, dword [esp + 0x28]
cmp edi, 0xfffffff0
je 0x1020c357
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x2c]
push eax
push esi
push ecx
call fcn.10207fd0
add edi, 0x10
add esp, 0xc
xor ecx, ecx
test edi, edi
jle 0x1020c2f3
mov ebp, dword [esp + 0x10]
lea edx, [esp + 0x2c]
mov eax, edx
sub ebp, edx
sub ebx, eax
lea eax, [esp + ecx + 0x2c]
mov dl, byte [eax + ebp]
xor dl, byte [eax]
inc ecx
cmp ecx, edi
mov byte [ebx + eax], dl
jl 0x1020c2e2
mov dl, 1
mov eax, 0xf
lea ebx, [ebx]
mov bl, byte [esi + eax]
mov cl, bl
add cl, dl
cmp cl, bl
setb bl
mov byte [esi + eax], cl
test bl, bl
je 0x1020c357
mov dl, byte [esi + eax - 1]
mov cl, dl
add cl, bl
cmp cl, dl
setb bl
mov byte [esi + eax - 1], cl
test bl, bl
je 0x1020c357
mov dl, byte [esi + eax - 2]
mov cl, dl
add cl, bl
cmp cl, dl
setb bl
mov byte [esi + eax - 2], cl
test bl, bl
je 0x1020c357
mov dl, byte [esi + eax - 3]
mov cl, dl
add cl, bl
cmp cl, dl
setb dl
mov byte [esi + eax - 3], cl
test dl, dl
je 0x1020c357
sub eax, 4
jns 0x1020c300
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1022649a
add esp, 0x30
ret