Function at 0x27b1d2e
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x44
mov eax, dword [0x2a00294]
xor eax, esp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
push ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x18], ebx
push ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x20], ebp
push esi
push edi
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10], edi
test eax, eax
je 0x27b1d70
test edi, edi
jne 0x27b1d84
push 0x6a
push 0x288f7c8
push 0x288f8b0
call fcn.02810043
add esp, 0xc
mov esi, dword [esp + 0x60]
test esi, esi
je 0x27b1da8
test ebx, ebx
je 0x27b1d94
test ebp, ebp
jne 0x27b1da8
push 0x6b
push 0x288f7c8
push 0x288f8e8
call fcn.02810043
add esp, 0xc
cmp ebx, ebp
jae 0x27b1dc7
lea eax, [ebx + esi]
cmp eax, ebp
jbe 0x27b1dc7
push 0x70
push 0x288f7c8
push 0x288f938
call fcn.02810043
add esp, 0xc
cmp ebx, 0x20
jb 0x27b1dd3
lea eax, [ebx - 0x20]
cmp ebp, eax
jbe 0x27b1ddb
cmp ebx, ebp
jae 0x27b1e79
mov eax, edi
push 0x10
pop edi
mov dword [esp + 0x1c], eax
cmp esi, edi
jb 0x27b1e66
mov eax, esi
shr eax, 4
mov dword [esp + 0x18], eax
push dword [esp + 0x30]
push ebp
push ebx
call dword [esp + 0x40]
mov edi, dword [esp + 0x28]
add esp, 0xc
mov ebx, ebp
sub edi, ebp
push 4
pop ebp
lea eax, [edi + ebx]
push eax
call fcn.027c716f
push ebx
mov esi, eax
call fcn.027c716f
xor esi, eax
lea eax, [esp + 0x1c]
push 4
push eax
push ebx
mov dword [esp + 0x28], esi
call fcn.02808da0
add esp, 0x14
add ebx, 4
sub ebp, 1
jne 0x27b1e09
mov ebx, dword [esp + 0x24]
mov eax, ebx
mov esi, dword [esp + 0x60]
mov ebp, dword [esp + 0x28]
push 0x10
pop edi
mov dword [esp + 0x1c], ebx
sub esi, edi
add ebx, edi
mov dword [esp + 0x60], esi
add ebp, edi
mov dword [esp + 0x24], ebx
sub dword [esp + 0x18], 1
mov dword [esp + 0x28], ebp
jne 0x27b1df1
push edi
push eax
push dword [esp + 0x18]
call fcn.02808da0
add esp, 0xc
jmp 0x27b1f65
push 0x10
pop edi
cmp esi, edi
jb 0x27b1f65
mov ecx, ebp
mov eax, esi
sub ecx, dword [esp + 0x10]
shr eax, 4
mov dword [esp + 0x1c], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
shl eax, 4
add ebp, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x10]
push dword [esp + 0x30]
lea eax, [esp + 0x44]
push eax
push ebx
call dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
mov esi, ebp
mov ebp, dword [esp + 0x28]
add esp, 0xc
and dword [esp + 0x2c], 0
mov dword [esp + 0x20], esi
lea eax, [ebx + esi]
push eax
call fcn.027c716f
push dword [esp + 0x24]
mov esi, eax
call fcn.027c716f
mov ecx, dword [esp + 0x34]
shr ecx, 2
push 4
xor eax, dword [esp + ecx*4 + 0x4c]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x30]
add eax, ebp
push eax
call fcn.02808da0
push 4
lea eax, [esp + 0x54]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x38]
push eax
push esi
call fcn.02808da0
mov eax, dword [esp + 0x4c]
add esi, 4
add eax, 4
mov dword [esp + 0x40], esi
add esp, 0x20
mov dword [esp + 0x2c], eax
cmp eax, edi
jb 0x27b1ed2
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x24]
sub esi, edi
add dword [esp + 0x18], edi
add ebx, edi
add dword [esp + 0x1c], edi
sub dword [esp + 0x14], 1
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x60], esi
mov dword [esp + 0x24], ebx
jne 0x27b1eae
mov ebp, dword [esp + 0x28]
test esi, esi
je 0x27b1fdb
lea eax, [esp + 0x40]
sub ebp, eax
push dword [esp + 0x30]
lea eax, [esp + 0x44]
push eax
push ebx
call dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x14], eax
cmp eax, esi
jae 0x27b1fb7
mov edi, dword [esp + 0x10]
mov cl, byte [esp + eax + 0x40]
mov dl, byte [ebx + eax]
push 0x10
xor cl, byte [edi + eax]
add eax, ebp
mov byte [esp + eax + 0x44], cl
mov ecx, edi
mov eax, dword [esp + 0x18]
pop edi
mov byte [ecx + eax], dl
inc eax
mov dword [esp + 0x14], eax
cmp eax, edi
jb 0x27b1f8a
cmp esi, edi
jbe 0x27b1fc5
add ebx, edi
add ebp, edi
sub esi, edi
jne 0x27b1f6f
jmp 0x27b1fdb
cmp eax, edi
jae 0x27b1fdb
sub ebx, ecx
lea edx, [ecx + eax]
sub edi, eax
mov al, byte [edx + ebx]
mov byte [edx], al
inc edx
sub edi, 1
jne 0x27b1fd0
mov ecx, dword [esp + 0x50]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.027f10fe
add esp, 0x44
ret